agentegrity command. python -m agentegrity runs the same program, so every example below works either way.
An unknown command prints an error and exits with status 2.
Info
agentegrity 0.13.0, then one line per Python adapter (claude, langchain, openai_agents, crewai, google_adk, autogen, agno, bedrock_agents) marked installed or not installed with the pip install extra that provides it, the four shipped layers, and whether the anthropic package for the [llm] extra is installed. It looks up each framework’s package without importing it.
doctor
AgentegrityClient, evaluates AgentProfile.default(name="doctor-agent") once and prints the profile, composite score, action and the layers that ran, followed by OK. Exits 0 when the composite score is above zero and 1 otherwise. Use it to confirm an install works; it makes no network calls apart from telemetry.
pro
string
Ingest token. Defaults to
AGENTEGRITY_TOKEN.string
Backend origin. Defaults to
AGENTEGRITY_EXPORTER_URL, then AGENTEGRITY_URL. A trailing slash is removed.flag
Without a command, print the environment variables to set and a reminder to pass
-- <command>. It does not send any session data.string
Everything after
-- is run with AGENTEGRITY_TOKEN and AGENTEGRITY_EXPORTER_URL set.GET <url>/ingest/verify and the token as a Bearer credential, and prints connected to <url> (workspace: <name>). With a command, it then replaces its own process with that command, and every Python adapter created inside it attaches an HTTPExporter.
When a command runs, its own exit status is returned. More on what streaming sends in Stream to Agentegrity Pro.
hook
hook-daemon for that session under a file lock and forwards the payload to it.
It always exits 0 and prints nothing when it cannot decide, so a failure never breaks the host session: the host’s own permission flow applies. An invalid --host prints usage to standard error and exits 0. AGENTEGRITY_HOOK_DISABLED=1 turns it into a no-op. The variables that control it are in Configuration, and the plugins are covered in Claude Code and Codex.
hook-daemon
SessionEnd or no hook arrives for AGENTEGRITY_HOOK_IDLE_SECONDS (default 1800). hook starts it; it is not listed in help. Missing or invalid arguments print usage and exit 2. The daemon persists the session’s decision chain to ~/.agentegrity/<host>/<session>.chain.json (or under AGENTEGRITY_HOOK_DIR).
verify-decisions
AttestationChain.to_json() and runs three checks: hash linkage between records; decision links, meaning every decision an attestation cites exists earlier in the chain with an unchanged hash; and an Ed25519 signature on every record. It prints the result of each check and a table with one row per record (index, kind, decision point, capture tier, signed, verified).
path
File containing one raw Ed25519 public key as hex. Repeat to pin several keys. Records signed by any other key fail. Without this option, each record is checked against the public key embedded in it, which a forger controls, and the output marks signatures as
UNPINNED (self-vouched).
Hash linkage alone does not prove a chain was not edited: the hashes are unkeyed SHA-256, so whoever edits a record can recompute them. That is why a clean exit requires signatures. Records are signed only when the adapter has a
signing_key. The coding-agent hook runtime signs with a per-machine key whose public half is ~/.agentegrity/keys/hook.pub (Claude Code); chains written by 0.12.0 hooks, and the records a resumed session wrote before signing was available, are unsigned, so this command exits 1 on them. Use report to inspect those.
report
markdown | json
default:"markdown"
Output format.
path
Pin signing keys, as for
verify-decisions. Repeatable.path
Write the report to a file instead of standard output.
Without
--trusted-key, unsigned or self-signed chains still exit 0; the report discloses that signatures are unanchored.
Telemetry
info, pro, doctor, verify-decisions and report each send one anonymous cli_run event naming the command, unless telemetry is disabled. hook and hook-daemon send none. See Telemetry.
