Source:
docs/manual/cli.mdThis page is generated by
site/scripts/sync-manual-docs.mjs.
CLI Reference
This is a developer-level flag reference for each command under cmd/*. For the full list of commands grouped by function, see cmd/README.md.
This page covers all current cmd/* entrypoints (63 commands as of 2026-02-23).
Common Workflows
Run an Agent and Inspect Results
Seed the tool registry, execute an agent run, inspect the result, then replay from a specific step:
# 1. Seed the tool registry (first time or after tool changes)
go run ./cmd/seed-registry --id default --version v2.0.0
# 2. Execute an agent run
go run ./cmd/run --prompt "Fetch https://example.com and return the status code" --max-steps 6
# 3. Query the run state (use the workflow-id from step 2 output)
go run ./cmd/query --workflow-id <workflow-id> --query current_state
# 4. View the decision log
go run ./cmd/query --workflow-id <workflow-id> --query decision_log
# 5. Replay from step 2 with a different registry version
go run ./cmd/replay --workflow-id <workflow-id> --from-step 2 --registry-version v2.1.0
Supervisor Workflow
Create a multi-agent supervisor run, monitor progress, and approve delegated tasks:
# 1. Run a broadcast supervisor (sends prompt to all agents)
go run ./cmd/supervisor-run --pattern broadcast --prompt "Summarize current system status"
# 2. Query supervisor state
go run ./cmd/supervisor-query --workflow-id <workflow-id>
# 3. Check for pending approvals
go run ./cmd/query --workflow-id <workflow-id> --query pending_approvals
# 4. Approve a pending request
go run ./cmd/approve --workflow-id <workflow-id> --request-id <request-id> --approve=true --reason "Looks good"
Debug a Failed Run
Investigate why an agent run failed:
# 1. List recent runs (look for failed ones)
go run ./cmd/query --workflow-id <workflow-id> --query current_state
# 2. View the full decision log to find where it went wrong
go run ./cmd/query --workflow-id <workflow-id> --query decision_log
# 3. Inspect the causal trace for the last step
go run ./cmd/query --workflow-id <workflow-id> --query causal_trace --latest
# 4. Compare with a replay to see if the failure is reproducible
go run ./cmd/replay-compare --workflow-id <workflow-id> --prompt "original prompt"
Tool Management
Seed the registry, list tools, and provide quality feedback:
# 1. Seed registry with built-in and MCP tools
go run ./cmd/seed-registry --id default --version v2.0.0
# 2. List all registered tools
go run ./cmd/list-tools --registry-id default --registry-version v2.0.0
# 3. Register a composite tool
go run ./cmd/compose-tool --name enrich_ticket --steps ./composite_steps.json --registry-version v2.1.0
# 4. Submit tool quality feedback
go run ./cmd/tool-feedback --tool http_get --rating 5 --comment "Fast and reliable"
Memory Operations
Query and inspect agent memory across runs:
# 1. Query episodic memory for a specific run
go run ./cmd/memory-query --type episodic --run-id <run-id> --limit 10
# 2. Search semantic memory
go run ./cmd/memory-query --type semantic --namespace default --query "deployment status" --k 5
# 3. Look up procedural memory by name
go run ./cmd/memory-query --type procedural --name "incident-triage"
cmd/agent-version
--action(defaultlist)list|get|set--versionversion string--changelogchangelog text--compatiblecomma-separated compatible versions
cmd/agent-capability
--actionregister|list|scores(required)--agentagent name (registerrequires it; optional forlist/scores)--capabilitycapability name (registerrequires it)--descriptioncapability description (register)--test-coveragecapability has explicit test coverage (register, defaultfalse)--tenanttenant id (defaultdefault) Examples:go run ./cmd/agent-capability --action register --agent planner --capability triage --description \"Triage incidents\" --test-coveragego run ./cmd/agent-capability --action scores --tenant default
cmd/provenance-query
--run-idrun id to query (required)--stepoptional step index filter (default-1, all steps)--node-idoptional node id for ancestor/descendant traversal--diff-run-idoptional second run id for diff mode--depthtraversal depth for ancestor/descendant mode (default5)--formatoutput formattext|json(defaulttext)--tenanttenant id (defaultdefault) Examples:go run ./cmd/provenance-query --run-id run-123 --step 2go run ./cmd/provenance-query --run-id run-a --diff-run-id run-b --format json
cmd/answer
--workflow-idworkflow id (required)--run-idrun id (optional)--request-idquestion request id (required)--answeranswer text
cmd/approve
--workflow-idworkflow id (required)--run-idrun id (optional)--request-idapproval request id (required)--approveapprove or reject (defaulttrue)--reasonreason text--hintoptional operator hint injected into the next step after metacognitive escalation approval
cmd/audit-export
--formatsoc2|hipaa|json|csv(default fromCRUVERO_AUDIT_EXPORT_FORMAT)--tenanttenant id (defaultdefault)--fromstart timestamp in RFC3339--toend timestamp in RFC3339--outoutput file path (stdout if empty)--include-piiinclude unredacted details when available (defaultfalse)--limitmax events to export (default5000)
cmd/backup
Subcommands:
dump--outoutput path--s3-keyupload key--formatcustom|plain|tar|directory(default fromCRUVERO_BACKUP_PG_DUMP_FORMAT)--timeoutcommand timeout (default20m)
restore--inlocal dump path--s3-keydownload key--cleandrop/recreate objects before restore (defaulttrue)--timeoutcommand timeout (default30m)
registry-export--tenantoptional tenant filter--outoutput JSON path--s3-keyupload key--timeoutquery timeout (default30s)
registry-import--tenantoptional tenant filter--ininput JSON path--s3-keydownload key--timeoutimport timeout (default60s)
audit-archive--daysarchive cutoff in days (default fromCRUVERO_BACKUP_AUDIT_ARCHIVE_DAYS)--tenantoptional tenant filter--outlocal archive path--s3-keyupload key--dry-runskip deletion (defaultfalse)--deletedelete after successful upload (defaulttrue)--timeoutoperation timeout (default5m)
cmd/control
--workflow-idworkflow id (required)--actionpause|resume|step(defaultpause)
cmd/cost-query
--workflow-idworkflow id (required)
cmd/compose-tool
--namecomposite tool name (required)--descriptioncomposite tool description--stepspath to JSON array of composite steps (required)- each step supports
tool_name,arg_mapping,output_key, optionalmax_attempts, optionaltimeout_ms
- each step supports
--input-schemapath to composite input JSON schema--registry-idregistry id (defaultdefault)--registry-versionregistry version to write (required)--dry-runvalidate only, do not register--tenanttenant id (defaultdefault) Examples:go run ./cmd/compose-tool --name enrich_ticket --steps ./composite_steps.json --registry-version v2.1.0 --dry-rungo run ./cmd/compose-tool --name enrich_ticket --steps ./composite_steps.json --registry-version v2.1.0
cmd/diff-test
--promptprompt (defaultSummarize the latest status)--model-amodel A id--model-bmodel B id--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultlatest)
cmd/docs-linkcheck
--rootdocs directory tree to scan for Markdown links (defaultdocs) Examples:go run ./cmd/docs-linkcheck --root docs
cmd/edit-state
--workflow-idworkflow id (required)--run-idrun id (optional)--filepath to state JSON (required)
cmd/graph-approve
--workflow-idworkflow id (required)--request-idrequest id (required)--approveapprove or reject (defaulttrue)
cmd/graph-edit-state
--workflow-idworkflow id (required)--filestate JSON file (required)
cmd/graph-query
--workflow-idworkflow id (required)
cmd/graph-run
--workflow-idworkflow id (optional)
cmd/graph-run-llm
--workflow-idworkflow id (optional)
cmd/graph-worker
- No flags
cmd/inspect
--workflow-idworkflow id (required)
cmd/list-tools
--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultv2.0.0)
cmd/memory-query
--typeepisodic|semantic|procedural(defaultepisodic)--run-idrun id for episodic--namespacenamespace for semantic--namename for procedural--querysemantic query text--ksemantic top-k (default5)--limitepisodic limit (default10)--typesepisodic types (comma-separated)
cmd/vaccinate
--signature-hashanomaly signature hash to vaccinate--procedurefix procedure text--resolved-byresolver identity (defaultcli)--listlist unresolved anomalies--quarantinelist active quarantined tools--releaserelease quarantined tool name--reasonquarantine release reason (defaultmanual release via vaccinate cli)--tenanttenant id (defaultdefault) Examples:go run ./cmd/vaccinate --listgo run ./cmd/vaccinate --signature-hash abc123 --procedure \"Validate URL and retry\" --resolved-by oncallgo run ./cmd/vaccinate --release http_get --reason \"validated fix in staging\"
cmd/migrate
--dirmigrations directory (defaultmigrations)--cmdup|down|steps(defaultup)--stepssteps forstepscommand
cmd/model-prefs
--actionget|set(defaultget)--namespacemodel preference namespace (defaultdefault)--modelscomma-separated model ids
cmd/models-list
--idmodel id
cmd/models-refresh
--sourcemodel sourceopenrouter|azure|openai|google(defaultopenrouter)
cmd/playground
--modedry_run|scenario|chaos(required)--promptprompt text (required)--scenarioscenario JSON path (required forscenariomode)--scenario-strict-argsfail scenario step when expected args mismatch (defaultfalse)--chaos-failure-ratechaos failure rate (default0.2)--chaos-timeout-ratechaos timeout rate (default0.1)--chaos-timeoutinjected timeout sleep duration before returning deadline exceeded (default30s)--chaos-contradiction-ratechaos contradiction rate (default0.05)--chaos-max-failuresmax injected failures/timeouts (default5)--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultlatest)--max-stepsmax workflow steps for scripted run (default6)--modeloptional model label stored in run config metadata--formatoutput formattext|json(defaulttext)--outoptional output file path for report artifacts Examples:go run ./cmd/playground --mode dry_run --prompt \"summarize status\" --format json --out reports/playground-dry-run.jsongo run ./cmd/playground --mode scenario --prompt \"simulate sequence\" --scenario docs/examples/playground_scenario_basic.json --scenario-strict-argsgo run ./cmd/playground --mode chaos --prompt \"chaos check\" --chaos-failure-rate 0.5 --chaos-timeout 5s --chaos-max-failures 2
Example scenario files:
docs/examples/playground_scenario_basic.jsondocs/examples/playground_scenario_strict_args.json
cmd/python-manifest
--pythonpython executable path (defaultpython3)
cmd/bash-allowlist
--commandoptional command to validate--allow-networkinclude network allowlist (requiresCRUVERO_BASH_ALLOW_NETWORK=true)
cmd/query
--workflow-idworkflow id (required)--run-idrun id (optional)--querycurrent_state|pending_approvals|pending_questions|decision_log|causal_trace(defaultcurrent_state)--stepstep index for causal trace--latestuse latest step for causal trace (defaultfalse)
cmd/record-fixtures
--workflow-idworkflow id (required)--run-idrun id (optional)--outoutput file (optional)
cmd/replay
--workflow-idworkflow id (required)--run-idrun id (optional)--from-stepstart step index (default0)--stateoptional state JSON--decision-overridesoptional decision overrides JSON--registry-versiontool registry version (defaultlatest)--providerllm provideropenrouter|azure|openai|google(default fromCRUVERO_LLM_PROVIDER)--repairenable tool repair loop (defaulttrue)--repair-attemptstool repair max attempts (default3)--repair-timeouttool repair timeout (default1m)--tool-searchfilter tool list for decision context (defaulttrue)--tool-limitmax tools to include in decision context (default20)--providerllm provideropenrouter|azure|openai|google(default fromCRUVERO_LLM_PROVIDER)
cmd/replay-compare
--workflow-idworkflow id (required)--run-idrun id (optional)--promptoriginal prompt (required)--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultlatest)--from-stepstep index to compare--timeoutreplay timeout (default10m)--outoutput file for replay decision log (optional)
cmd/run
--promptinitial prompt (defaultFind the status code of https://example.com)--modeloverride model id--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultlatest)--max-stepsmax steps (default6)--approval-timeoutapproval timeout (default10m)--repairenable tool repair loop (defaulttrue)--repair-attemptstool repair max attempts (default3)--repair-timeouttool repair timeout (default1m)--tool-searchfilter tool list for decision context (defaulttrue)--tool-limitmax tools to include in decision context (default20)--providerllm provideropenrouter|azure|openai|google(default fromCRUVERO_LLM_PROVIDER)--spec-modelscomma-separated models for speculative execution--spec-selectlowest_cost|highest_similarity(defaultlowest_cost)--soft-deadlinesoft deadline in RFC3339 format--hard-deadlinehard deadline in RFC3339 format--fast-modelmodel id to use under high/critical deadline pressure--memory-refrepeatable, formattype:runID:namespace:name
cmd/seed-registry
--idregistry id (defaultdefault)--versionregistry version (defaultv2.0.0)--tenanttenant id (defaultdefault)--compositespath to JSON array of composite tool definitions to include during seed
cmd/supervisor-query
--workflow-idworkflow id (required)--fullreturn full state (defaultfalse)
cmd/supervisor-run
--patterndelegate|broadcast|debate|pipeline|map_reduce|voting|saga(defaultdelegate)--promptsupervisor prompt (defaultSummarize the latest status)--registry-idtool registry id (defaultdefault)--registry-versiontool registry version (defaultlatest)--repairenable tool repair loop (defaulttrue)--repair-attemptstool repair max attempts (default3)--repair-timeouttool repair timeout (default1m)--tool-searchfilter tool list for decision context (defaulttrue)--tool-limitmax tools to include in decision context (default20)--agentsJSON file of agent specs--itemsJSON file of map-reduce items--sagaJSON file of saga steps
cmd/supervisor-signal
--workflow-idworkflow id (required)--kindmessage|event(defaultmessage)--tomessage recipient (defaultsupervisor)--frommessage sender (defaultcli)--topicevent topic (defaultinfo)--payloadpayload content
cmd/temporal-agent
This CLI auto-loads .env if present in the current directory.
temporal-agent init
--nameagent name (defaultmy-agent)--modulego module name--forceoverwrite existing files
temporal-agent dev
--registry-versiontool registry version to seed (defaultv2.0.7)--cruvero-pathpath to cruvero repo (defaults to repo root)--seedseed tool registry before starting worker (defaulttrue)--configpath to env file to load--no-workerskip starting worker
temporal-agent latest-run
--statusfilter byRunning|Completed|Failed
temporal-agent inspect
--workflow-idworkflow id (required)--run-idrun id (optional)
temporal-agent cost
--workflow-idworkflow id (required)--run-idrun id (optional)
temporal-agent status
--configpath to env file to load
temporal-agent run
--promptprompt to run (defaultSummarize the status)--cruvero-pathpath to cruvero repo (defaults to repo root)--configpath to env file to load
cmd/trace-query
--run-idrun id (required)--stepstep index (default-1)--tooltool name--latestlatest trace for run (defaultfalse)
cmd/worker
- No flags
cmd/ui
--addrlisten address (default:8080)--authnone|keycloak(default fromCRUVERO_UI_AUTH)--jwks-urlKeycloak JWKS URL (default fromCRUVERO_UI_JWKS_URL)--issuerJWT issuer (default fromCRUVERO_UI_ISSUER)--audienceJWT audience (default fromCRUVERO_UI_AUDIENCE)--readonlydisable approve/replay (default fromCRUVERO_UI_READONLY)--corsenable CORS for API endpoints (default fromCRUVERO_UI_CORS)--admin-tokenadmin token for quota mutation endpoints (default fromCRUVERO_UI_ADMIN_TOKEN)
cmd/api
--port,-pAPI listen port (default8900) Examples:go run ./cmd/api --port 8900
cmd/api-verify
--base-urlAPI base URL (required, for examplehttp://localhost:8900)--api-keyvalue forX-API-Key--tokenbearer token forAuthorization--tenant-idvalue forX-Cruvero-Tenant-Id--timeoutper-request timeout (default10s)--output,-ooutput path (default stdout)--specpath to OpenAPI spec file (default auto-generated)--fullinclude write/destructive endpoints Examples:go run ./cmd/api-verify --base-url http://localhost:8900go run ./cmd/api-verify --base-url http://localhost:8900 --full --output reports/api-verify.json
cmd/embed-worker
embed-worker is a long-running service process and is configured by environment variables (no CLI flags).
Required/runtime-critical env:
CRUVERO_EVENTS_BACKEND=natsCRUVERO_POSTGRES_URL- embedding config (
CRUVERO_EMBEDDING_PROVIDER,CRUVERO_EMBEDDING_MODEL, provider API key) Examples: CRUVERO_EVENTS_BACKEND=nats go run ./cmd/embed-worker
cmd/event-bench
--nats-urlNATS server URL (defaultnats://localhost:4222)--ui-urlUI base URL (defaulthttp://localhost:8080)--prefixevents subject prefix (defaultcruvero)--workflow-idworkflow id tag for benchmark events--warmup-events,--warmup-rate--steady-events,--steady-rate--stress-events,--stress-rate--pass-timeoutmax duration per pass (default1m30s) Examples:go run ./cmd/event-bench --nats-url nats://localhost:4222 --workflow-id bench-run-1
cmd/event-bus
Global flags:
--nats-urlNATS server URL (defaultCRUVERO_NATS_URLornats://localhost:4222)--formatoutput formattable|json(defaulttable) Subcommands:statusstreamsconsumerssubscribe <subject>publish <subject> <json>purge <stream>Examples:go run ./cmd/event-bus --nats-url nats://localhost:4222 statusgo run ./cmd/event-bus publish cruvero.events.run.started '{"run_id":"run-1"}'
cmd/event-replay
--subjectsubject pattern to replay (required)--nats-urlNATS server URL (defaultnats://localhost:4222)--streamoptional stream name override--sincelookback duration (2h,30m,7d)--start-timeRFC3339 start time (mutually exclusive with--since)--limitmax events (0= unlimited)--formatoutput formatjson|table(defaultjson) Examples:go run ./cmd/event-replay --subject cruvero.events.> --since 30m --format table
cmd/mcp-announce
--serverMCP server name (required)--nats-urlNATS server URL (default from config)--transportMCP transportstdio|http|sse(defaultstdio)--endpointMCP endpoint URL (required forhttp|sse)--heartbeatheartbeat interval (default30s)--prefixNATS subject prefix (defaultcruvero) Examples:go run ./cmd/mcp-announce --server weather --transport http --endpoint http://localhost:8089/mcpgo run ./cmd/mcp-announce --server local --transport stdio -- bash ./scripts/mcp-server.sh
cmd/mcp-code-exec
mcp-code-exec is a long-running MCP server and is configured by:
MCP_CODE_EXEC_PORT(default8080)MCP_CODE_EXEC_TIMEOUT(default30s)MCP_CODE_EXEC_MAX_OUTPUT(default1048576) Examples:MCP_CODE_EXEC_PORT=8088 go run ./cmd/mcp-code-exec
cmd/openapi-export
--ooutput file path (default stdout) Examples:go run ./cmd/openapi-export --o docs/openapi/openapi.json
cmd/pii-model
Subcommands:
downloadstatuscleanExamples:go run ./cmd/pii-model status
cmd/pii-scan
--textinline text to scan--dirdirectory to scan--boundarypolicy boundary (defaultoutput)--jsonoutput JSON--verboseinclude detailed findings Examples:go run ./cmd/pii-scan --text "contact me at [email protected]" --json
cmd/prompt-dataset
--list,--get,--create,--add-entries--datasetdataset id for--add-entries--from-logs,--prompt-hash,--since,--max-entries,--failures-only--name,--version,--tenantExamples:go run ./cmd/prompt-dataset --list --tenant default
cmd/prompt-diff
--prompt,--from,--to,--tenant,--jsonExamples:go run ./cmd/prompt-diff --prompt support_prompt --from 2 --to 3 --json
cmd/prompt-eval
--dataset,--dataset-version,--prompt-hash--scorers,--threshold--baseline-run,--regression-baseline,--fail-on-regression--notify,--notify-subject--format,--ci,--github-summary,--json,--tenantExamples:go run ./cmd/prompt-eval --dataset release-gate --prompt-hash abc123 --fail-on-regression --format markdown
cmd/prompt-experiment
--list,--get,--create,--complete,--winner,--tenantExamples:go run ./cmd/prompt-experiment --list --tenant default
cmd/prompt-tools
Meta-dispatcher subcommands:
eval(prompt-eval)dataset(prompt-dataset)experiment(prompt-experiment)diff(prompt-diff) Examples:go run ./cmd/prompt-tools eval --dataset release-gate --prompt-hash abc123
cmd/quota
Subcommands:
status:--tenant,--jsonreset:--tenant,--window(minute|hour|day)override:--tenant,--field(rpm|rph|tpm|tph|tpd|cost),--value,--expires,--clearExamples:go run ./cmd/quota status --tenant default --jsongo run ./cmd/quota override --tenant default --field rpm --value 120 --expires 1h
cmd/run-feedback
Subcommands:
submit:--workflow(required),--rating(1|-1required),--comment,--user,--tenant,--tool-chainlist:--workflow(required),--limit(default20),--format(table|json),--tenantExamples:go run ./cmd/run-feedback submit --workflow run-123 --rating 1 --comment "Outcome was correct"go run ./cmd/run-feedback list --workflow run-123 --format json
cmd/tenant
Subcommands:
create:--id(required), plus tenant config/rate-limit flagsget:--id(required)listupdate:--id(required), mutable tenant config/rate-limit flags,--enableddisable:--id(required) Examples:go run ./cmd/tenant create --id acme --display-name "Acme Inc." --llm-provider openaigo run ./cmd/tenant update --id acme --enabled false
cmd/tool-feedback
Subcommands:
submit:--tool(required),--rating(0.0-1.0required),--comment,--tenant,--userlist:--tool(required),--limit,--format,--tenantmetrics:--toolor--degraded,--threshold,--format,--tenantExamples:go run ./cmd/tool-feedback submit --tool http_get --rating 0.9 --comment "Stable"go run ./cmd/tool-feedback metrics --degraded --threshold 0.4