Built for agents
JSON output, versioned receipts, stable error codes, and the next command as argv
The same records as Verify
Scenarios, runs, evidence, findings, and knowledge are the ones your team sees in the dashboard
Safe in CI
Idempotency keys make retries safe, and the head SHA pins the exact commit
Give your agent the Composal skill
One command writes the skill into your project, with focused workflows your agent reads offline. It works in any folder and keeps your local edits.
Keep Scenarios next to your code
Download a project’s Scenarios as YAML, lint them offline, and upload every file atomically. Run files as written and wait for the grouped result.
Read every answer as JSON
With --json or --agent, a failure is one object with a stable code, whether to retry, and the next command as argv. Agent mode never prompts.
Verify pull requests from CI
Request verification for the exact deployed head. A stale workflow is refused, and a retry with the same idempotency key is safe. Then read the grouped run, its evidence, and findings.
Keep product knowledge current
Read, add, and edit your project’s knowledge as Markdown. Each edit carries the digest you read, so a concurrent change refuses the save instead of being overwritten.
What you get back
What the CLI returns
Every command answers in plain text for you, or one JSON object for your agent, with the same runs, findings, and evidence your team sees in Composal.
What you can do with it
Fail CI on a failed run
com verify scenarios run --wait exits nonzero unless every Scenario passes, so the job fails on a failed or blocked run with no parsing.
Hand the next step to your agent
Each failure carries next[].argv. Your agent runs it, or tells you when the step needs you, such as signing in again.
Download the evidence
Save a Scenario’s recording, trace, or screenshot by its evidence ID. Downloads keep the bytes intact and never overwrite an existing file.
Keep only the fields you need
--fields and --limit trim a read before it reaches your agent, and meta says whether anything was cut.



