Skip to main content
The CLI is designed to be both readable on a TTY and scriptable from a pipe. When you run a list command in a terminal you get a compact table; when stdout is piped, the same command emits JSON automatically. Exit codes are a stable contract — agents and CI can branch on them.

Output modes

Default auto-detection

breadbox transactions list in a terminal prints a table. The same command piped to jq emits JSON without --json. Agents calling the CLI never need to pass --json — they just read JSON off stdout.

Field selection

Most list endpoints support ?fields=<presets> server-side; the CLI exposes this as --fields:
Field presets are documented per resource in the API Reference. Passing --fields keeps responses small over slow links and reduces the JSON your agent has to parse.

Cursor pagination

Cursor-paginated commands (transactions list, rules list) accept --limit (default 25, max 500) and walk one page at a time. Pass --all to fetch every page sequentially and stream the combined result:
See API pagination for the underlying cursor contract.

Exit codes

Branching on exit codes lets agents distinguish “the server is down, retry later” (4) from “my request is wrong, don’t retry” (5) from “my key is broken, surface this to the operator” (3):

Errors

Errors print to stderr in the same JSON envelope the API uses:
The error.code field is stable (UPPER_SNAKE_CASE) and safe to grep. The error.message is for humans and may change between releases.

Combining flags

The standard flags are orthogonal — --host, --json, --fields, --limit, --all, --quiet, --debug apply to every command and can be combined freely:
Per-command flags (like --wait on connections link, --prefix on agent run, --scope on keys create) layer on top.

Next steps

Command reference

Every command grouped by noun.

Headless deployment

Agent patterns and CI examples.
Last modified on June 25, 2026