--output json(default) — pretty-printed JSON, colored on a TTY.--output yaml— YAML, useful for hand-editing.--output jsonl— one JSON object per line, ideal for streaming andjq.--output table— fixed-width ASCII table.
--columns a,b,c— keep only the listed dot-paths (works forjson/yaml/jsonl/table).--cell-max <N>— truncate table cells; default 28,0disables truncation entirely.--embed <token>— pull related entities/values into_embeddedper spec-defined token.--schema— emit the JSON Schema for the command instead of running it.
Choosing a format
json is colored when stdout is a TTY. Disable with NO_COLOR=1, force on with FORCE_COLOR=1.
Projecting fields with --columns
--columns accepts a comma-separated list of dot-paths. The command keeps only those keys, in the listed order. Works for every format:
--columns projects each item in the list (e.g. each transaction). For a single resource it projects the top-level object. A dot-path that crosses an array applies to every element — --columns transactionId,_embedded.events.usdAmount keeps usdAmount on each event of each transaction.
In the MCP server, the same projection is the
fields tool argument, and heavier transforms are the jq argument — applied server-side so the trimmed result is all the agent’s context ever sees. There’s no shell to pipe through, so the shaping moves into the call itself.Filtering and transforming — pipe to jq
The CLI keeps output shaping minimal on purpose: --columns for projection, --output jsonl for line-based piping, and then jq for everything heavier (select, slicing, arithmetic, joins). One mental model, one tool to learn:
Date and number handling
- Decimals stay strings end-to-end (
"0.0000123") — nofloat64rounding, no precision loss. Don’t unmarshal them asNumberin your scripts. - Date fields render as ISO 8601 UTC in every format (
2026-04-30T11:14:13.274Z), regardless of how the spec encodes them on the wire (epoch millis vs ISO). - Date-shaped query parameters (names ending in
AtFrom,AtTo,Since,Before,After) accept both ISO 8601 (2026-04-01T00:00:00Z,2026-04-01) and millisecond-epoch integers — the CLI normalises to millis before sending.
--embed for related entities
Some list endpoints expose --embed <token> to fold related data into the response under _embedded, saving you a follow-up query. The available tokens depend on the resource:
bron <r> <v> --help lists the supported --embed values for that command. Internally each token routes to the matching backend includeXxx query parameter.
_embedded follows the HATEOAS pattern — it’s an opt-in extra layer on top of the spec-defined response shape. A consumer that didn’t ask for an embed never sees the extra keys, so generated SDK types stay aligned with the published schema.
In
--schema the field is named embedded, but it serialises as _embedded on the wire — so a --columns (or MCP fields / jq) path must use the underscore: _embedded.usdValue, not embedded.usdValue. The MCP bron_help tool already prints the wire name.--schema for machine consumers
--schema emits the JSON Schema for any command — request body, query params, response shape, every documented status code:
--schema is strict OpenAPI 3.1. Pipe it to jq, swagger-cli, or any spec consumer.
For LLM agents this is the canonical entry point: one call to discover every command, every flag’s type and enum values, and every response field. See LLM agent integration for the full agent flow.
Pipelines with jq
JSONL is the easiest format for shell pipelines. Combine it with jq for ad-hoc transformations:
bron tx withdrawal --file - reads a JSON body from stdin, useful for scripting or piping from another tool.