CLI reference
The agenticops-control-tower command is installed with the package. Server
commands need the api extra (httpx); offline --snapshot reads and serve's
argument parsing do not. Every command prints JSON to standard output.
Global options go before the command:
| Option | Environment variable | Default |
|---|---|---|
--api-url URL |
AGENTICOPS_API_URL |
http://localhost:8000 |
--token TOKEN |
AGENTICOPS_TOKEN |
none |
--snapshot FILE |
— | none (talk to the server) |
agenticops-control-tower --token "$READER_TOKEN" agents list --unhealthy
The package also runs as a module: python -m agenticops_control_tower.cli.main ….
Server
| Command | Role | Description |
|---|---|---|
serve [--host HOST] [--port PORT] [--database PATH] |
— | Run the HTTP API and console. Defaults: 127.0.0.1, 8000, in-memory storage. See server settings. |
Inventory and health
| Command | Role | Description |
|---|---|---|
agents register FILE.json |
writer | Register (or replace) an agent from a registration payload, e.g. examples/sample_agent_registration.json. |
agents heartbeat AGENT_ID FILE.json |
writer | Send a heartbeat: {"status": "healthy", "capabilities": {...}}. |
agents list [--status S] [--unhealthy] [--environment E] [--capability C] [--missing-capability C] |
reader | List agents; filters combine with AND. --unhealthy is --status unhealthy. Status is one of healthy, degraded, unhealthy, unknown. |
agents get AGENT_ID |
reader | One agent record. |
capabilities list |
reader | Capability → versions seen across all agents. |
status [--environment E] |
reader | Health counts, buckets and capability coverage. |
Evidence and posture
| Command | Role | Description |
|---|---|---|
evidence ingest AGENT_ID SOURCE ARTIFACT.json --source-version V --artifact-ref REF [--observed-at ISO] [--run-id ID] [--runtime-agent-id ID] [--gate GATE.json] |
writer | Push one native artifact. SOURCE is agenticlens, agentic-evals, agentic-sidecar or agentic-chaos. |
evidence ingest-manifest MANIFEST.json |
writer | Push every entry of a manifest, e.g. examples/evidence/manifest.json. Paths resolve relative to the manifest. |
evidence ingest-sidecar-journal AGENT_ID JOURNAL.json --source-version V [--run-id ID] [--runtime-agent-id ID] |
writer | Push decisions from a Sidecar journal export. |
evidence history AGENT_ID [--source SOURCE] [--limit N] |
reader | Newest records first; --limit 1–500, default 50. |
evidence posture AGENT_ID [--stale-after-seconds N] |
reader | Per-producer freshness for one agent; default 86400 (1 day), maximum 30 days. |
posture [--environment E] [--stale-after-seconds N] |
reader | Fleet evidence posture by producer. |
See evidence posture.
Controlled configuration
| Command | Role | Description |
|---|---|---|
config AGENT_ID CAPABILITY |
reader | Configuration ownership and values. |
audit AGENT_ID |
reader | Configuration action audit. |
actions preview REQUEST.json |
writer | Create an immutable preview; returns its ID. |
actions get ID |
reader | Read an action. |
actions approve ID / actions deny ID / actions revoke ID |
approver | Decide on a preview (a different identity from the proposer). |
actions execute ID |
writer | Execute an approved, unexpired action. |
Bulk fleet operations
bulk preview FILE.json, bulk get ID, bulk approve|deny|revoke ID
(approver), bulk execute ID (writer). bulk execute exits with status 1 when
any target fails, after printing every result. See
fleet operations; examples/bulk_tracing.json is a
preview payload.
Alerts and incidents
| Command | Role | Description |
|---|---|---|
alerts list [--environment E] [--active-only] |
reader | Current alerts. |
alerts evaluate |
writer | Run a detection scan now (the server also scans every 30 seconds). |
alerts acknowledge ALERT_ID |
writer | Acknowledge an alert. |
incidents list / incidents get ID / incidents view ID |
configured credentials | Read incidents; view joins inventory, evidence, alerts, approvals and timeline. |
incidents detect FILE.json, investigate ID, preview ID FILE.json, approval ID FILE.json, revoke ID, execute ID FILE.json, verify ID FILE.json |
writer / approver | The approved staging-recovery workflow. Request formats are in incident recovery. |
See live operations.
Offline snapshot mode
With --snapshot FILE, these read commands are answered from the file with no
server, token or httpx:
agents list (all filters), agents get, capabilities list, status,
posture, evidence posture, evidence history.
Posture is evaluated as of the snapshot's captured_at, so dated sample evidence
reads as it did when captured. Every other command is refused:
agenticops-control-tower: error: --snapshot supports read commands only
Exit codes and errors
0on success.1when the server returns an error; the message isControl Tower API returned <status>: <detail>.2for invalid arguments (argparse).- Server commands without
httpxexit with:This command talks to the Control Tower HTTP API and needshttpx. Install it with: pip install agenticops-control-tower[api].