Output contract
Successful command data is JSON on stdout and can be piped to tools such as jq. Its schema is command-specific: direct resource reads preserve provider fields, while list, search, analysis, and version commands may normalize, project, or enrich the result. Command-owned success responses add "ok": true.
vac retell agents list --fields agent_id,agent_name | jq '.items'Failures write one structured JSON object to stderr and set a nonzero exit status. src/core/cli-response.ts defines the outer shape and the Retell formatter maps provider failures into safe codes.
{ "ok": false, "error": { "code": "AUTH_ERROR", "message": "Retell authentication failed.", "retryable": false, "next_steps": [ "Set RETELL_API_KEY for this process or run `vac retell login`.", "Run `vac retell agents list --limit 1` to verify authentication." ] }}Automation should branch on error.code, retry only when retryable is true, and follow next_steps in order. Error messages are redacted and truncated by src/providers/retell/services/output-formatter.ts.
--help and --version intentionally remain human-readable. Treat them as discovery output, not JSON command data.