Skip to content

Latest commit

 

History

History
216 lines (157 loc) · 7.7 KB

File metadata and controls

216 lines (157 loc) · 7.7 KB

CLI reference

The manifest command is installed with the cli extra.

pip install "agent-manifest[cli]"

Every command is invoked directly: manifest verify signed.json. Releases up to 0.5.0 nested them under a second manifest group; that spelling still works and prints a deprecation warning.

Commands

manifest create

Create a draft manifest from a JSON config file.

Usage: manifest create [OPTIONS] CONFIG

  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

Options:
  -o, --output TEXT  Write output to file (default: stdout)
  --help             Show this message and exit.

manifest sign

Sign a draft manifest with Ed25519.

Usage: manifest sign [OPTIONS] MANIFEST_FILE

  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

Options:
  -k, --key TEXT     Path to raw 32-byte Ed25519 private key (hex file)  [required]
  -o, --output TEXT  Write output to file (default: stdout)
  --help             Show this message and exit.

manifest keygen

Generate a new Ed25519 key pair for manifest signing.

Usage: manifest keygen [OPTIONS]

  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/

Options:
  -d, --output-dir TEXT  Directory to write key files
  --help                 Show this message and exit.

manifest attest

Extend the manifest hash into hardware and append the attestation block.

Usage: manifest attest [OPTIONS] MANIFEST_FILE

  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

Options:
  -p, --provider [auto|azure-cvm|tpm|sev-snp|tdx|opaque|software]
                                  Attestation provider (default: auto)
  --level INTEGER                 Minimum conformance level (0-3)
  -o, --output TEXT               Write output to file (default: stdout)
  --help                          Show this message and exit.

manifest verify

Verify a manifest against the local verification engine.

Usage: manifest verify [OPTIONS] MANIFEST_FILE

  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. Pass --crl-
  trusted-key with it to authenticate each record present in the CRL against the
  revoking authority's public key (spec Section 3.7 / REVOC-003): a record with a
  missing, malformed, or invalid signature causes verification to fail closed with an
  error, rather than being silently treated as "not revoked".

  --crl-trusted-key does NOT prove the CRL file is complete. Per-record signatures
  authenticate the records that are present but cannot detect that a line — or the
  entire file — was deleted. A party who can write or intercept the CRL file can still
  suppress a real revocation by removing its record entirely; only a signed, versioned
  CRL snapshot (not yet implemented) can close that gap. Without --crl-trusted-key at
  all, every line in the CRL file is additionally trusted unauthenticated: a party who
  can write or intercept that file can also fabricate a revocation for a legitimate
  manifest.

  HITL approvals attach outside the manifest signature, so supply the
  approver keys you trust with --approver-key. Without them an approval is
  UNVERIFIABLE and the manifest can never verify.

  Example:
    manifest verify attested.json --crl-path revocations.jsonl
    manifest verify signed.json --public-key pub.hex --enforce-hitl
      --approver-key mailto:alice@example.com=alice.hex

Options:
  --enforce-hitl                  Fail unless a required HITL approval is present and
                                  unexpired
  --enforce-attestation           Fail unless the attestation report matches the
                                  manifest hash
  --crl-path TEXT                 Path to a FileCRL JSON-Lines file for revocation
                                  checks
  --crl-trusted-key TEXT          Path to the CRL-signing authority's raw Ed25519 public
                                  key hex file. Required to cryptographically verify
                                  --crl-path records (REVOC-003); without it every
                                  record in the file is trusted unauthenticated. See the
                                  command description above for the completeness caveat.
  --public-key TEXT               Path to a trusted raw Ed25519 public key hex file
  --approver-key APPROVER_ID=PATH
                                  Trusted HITL approver key as approver_id=path to a raw
                                  Ed25519 public key hex file (repeatable)
  --require-transparency          Fail unless transparency evidence was independently
                                  verified
  --verified-transparency-entry-id TEXT
                                  Legacy entry UUID independently verified for this
                                  manifest (repeatable)
  --verified-transparency-receipt-hash TEXT
                                  SHA-256 hex of a raw COSE receipt independently
                                  verified for this manifest (repeatable)
  --transparency-evidence-manifest-id TEXT
                                  Manifest ID to which the independent transparency
                                  appraisal was bound
  --signature-only                Authenticate only the manifest signature; explicitly
                                  allow bound runtime artifacts to remain unchecked
  -o, --output TEXT               Write output to file (default: stdout)
  --help                          Show this message and exit.

manifest revoke

Generate a revocation record for a manifest ID.

Usage: manifest revoke [OPTIONS] MANIFEST_ID

  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 security@example.com

Options:
  -r, --reason TEXT  Reason for revocation  [required]
  --revoked-by TEXT  Identity of revoking authority (DID or email)  [required]
  -o, --output TEXT  Write output to file (default: stdout)
  --help             Show this message and exit.

manifest from-plugin

Read an Agent Plugins 1.0.0 bundle and report what it can bind.

Usage: manifest from-plugin [OPTIONS] BUNDLE_DIR

  Read an Agent Plugins 1.0.0 bundle and report what it can bind.

  Emits the whole-bundle digest, the skills found, and the MCP servers the bundle
  declares. It does not emit a tool manifest: mcp.json declares which servers to start
  and never enumerates their tools, so the per-tool schema and description hashes a tool
  manifest binds are not in a bundle to be read. Resolving those means starting the
  servers and asking them.

  Example:   manifest from-plugin ./my-plugin

Options:
  -o, --output TEXT  Write output to file (default: stdout)
  --help             Show this message and exit.

Source

::: agent_manifest.cli