CLI reference¶
The manifest command is installed with the cli extra.
Commands¶
manifest create¶
Create and sign a new agent manifest.
manifest create [OPTIONS]
Options:
--agent-id TEXT SPIFFE URI identifying this agent role [required]
--issuer TEXT SPIFFE URI of the signing authority [required]
--model TEXT Model identifier (e.g. gpt-4o-2024-08-06)
--prompt-file PATH Path to the system prompt file (hashed, not stored)
--ttl-hours INTEGER Manifest validity window in hours [default: 8]
--crypto-profile TEXT standard | post-quantum | hybrid [default: standard]
--out PATH Output path for the signed manifest JSON
--help Show this message and exit.
manifest sign¶
Sign an existing manifest JSON with a key loaded from a file or environment variable.
manifest sign [OPTIONS] MANIFEST_FILE
Options:
--key-file PATH Path to Ed25519 private key (base64url, no padding)
--key-env TEXT Environment variable holding the private key
--out PATH Output path (defaults to overwriting MANIFEST_FILE)
--help Show this message and exit.
manifest verify¶
Verify a manifest against its signature and optional runtime context.
manifest verify [OPTIONS] MANIFEST_FILE
Options:
--revocation-url TEXT CRL endpoint to check for revocation
--public-key PATH Path to a trusted raw Ed25519 public key hex file
--enforce-hitl Fail if no valid HITL approval is present
--enforce-attestation Fail if no attestation report is present
--min-slsa-level INT Minimum SLSA level required [default: 0]
--help Show this message and exit.
For local signature verification, pass the public key generated by manifest keygen. Without a trusted public key, signed manifests fail closed as UNVERIFIABLE.
manifest revoke¶
Append a signed revocation record to a local CRL file.
manifest revoke [OPTIONS] MANIFEST_ID
Options:
--crl-file PATH Path to the JSON-Lines CRL file [required]
--reason TEXT Revocation reason [required]
--revoked-by TEXT SPIFFE URI or email of the revoking authority [required]
--key-file PATH Path to the signing key [required]
--help Show this message and exit.
manifest keygen¶
Generate a new Ed25519 key pair and write the private key to a file.
manifest keygen [OPTIONS]
Options:
--out PATH Output path for the private key (base64url, no padding)
--print-pub Print the public key to stdout after generation
--help Show this message and exit.
manifest attest¶
Run the auto-provider and print the attestation report as JSON.
manifest attest [OPTIONS]
Options:
--provider TEXT tpm | sev-snp | tdx | opaque | auto [default: auto]
--manifest-file PATH Manifest to extend into the attestation register
--help Show this message and exit.
Source¶
cli ¶
Agent Manifest CLI — issue #15.
Commands
manifest create Build a draft manifest from a config file manifest sign Sign a draft manifest with Ed25519 (or hybrid) manifest attest Extend manifest hash into hardware + append attestation block manifest verify Call the verification endpoint and print the result manifest revoke Publish a revocation record
All commands write JSON to stdout and accept --output/-o to write to a file.
create ¶
Create a draft manifest from a JSON config file.
CONFIG must be a JSON file with at minimum: agent_id, issuer, issued_at, expires_at, and an artifacts block.
Example
manifest create config.json -o draft.json
sign ¶
Sign a draft manifest with Ed25519.
KEY must be a file containing the 64-hex-character (32-byte) Ed25519 private key seed.
Example
manifest sign draft.json --key private.hex -o signed.json
keygen ¶
Generate a new Ed25519 key pair for manifest signing.
Writes
private.hex — 64-hex private key seed (keep secret, mode 0600) public.hex — 64-hex public key bytes
Example
manifest keygen -d ./keys/
attest ¶
Extend the manifest hash into hardware and append the attestation block.
For TPM: requires tpm2-tools (apt-get install tpm2-tools). For swtpm in CI: set TPM2TOOLS_TCTI=swtpm: before running.
Example
manifest attest signed.json --provider tpm --level 1 -o attested.json
verify ¶
verify(manifest_file: str, enforce_hitl: bool, enforce_attestation: bool, crl_path: Optional[str], public_key: Optional[str], output: Optional[str]) -> None
Verify a manifest against the local verification engine.
Prints the VerificationResult as JSON. Exits with code 0 on VALID, 1 on any other result.
Use --crl-path to load a revocation list and check for revoked manifests.
Example
manifest verify attested.json --crl-path revocations.jsonl
revoke ¶
Generate a revocation record for a manifest ID.
The record JSON can be submitted to your revocation registry or passed to a RevocationStore instance in the verification endpoint.
Example
manifest revoke 018f4a3b-... --reason "key compromise" --revoked-by [email protected]