Documentation Index
Fetch the complete documentation index at: https://developer.bron.org/llms.txt
Use this file to discover all available pages before exploring further.
bron is built to be driven by an LLM agent (Claude Code, Codex, Cursor, custom tooling) without any wrapping layer. This page captures the contract: what an agent can rely on, what surfaces it should query first, and how to keep it from doing damage.
Discovery in one call
The agent doesn’t need to memorise the API.--schema emits the complete CLI surface as one OpenAPI 3.1 JSON document:
- Every command path (
accounts list,tx withdrawal,tx subscribe, …) - Every flag, with its type,
enumvalues, defaults, and short description - Every request body shape, by
transactionTypediscriminator fortx create - Every response shape, indexed by HTTP status code
- The
--embedtokens each list endpoint accepts, with the resulting_embeddedshape
bron --schema | head -200 is enough orientation to start composing valid commands.
The recommended agent flow
--schema for static introspection, --help for human prose where helpful, --output jsonl for machine consumption.
Stable contracts
These won’t break across0.x releases:
| Surface | Contract |
|---|---|
| Exit codes | 0 success; 1 other; 3 401/403; 4 404; 5 400; 6 409; 7 429; 8 5xx |
| Error envelope on stderr | Error: <message> line + code: / trace: / details: lines |
--schema document shape | Strict OpenAPI 3.1 fragment; field paths + types |
| Flag/verb names | tx, tx list, tx withdrawal, --output, --columns, etc. |
| Date rendering | ISO 8601 UTC in every output format |
| Numeric strings | Decimals stay strings (no float64 coercion) |
--help text wording, color, and table layout are NOT part of the stable surface. Don’t grep --help output in agent code; use --schema.
Idempotency
Everytx <type> and tx create call accepts --externalId <key>. Bron de-duplicates by (workspace, externalId): retrying a call with the same key returns the existing transaction, not a duplicate.
For an agent, this is critical — LLMs retry on perceived failure, and without an idempotency key a retry would create a second withdrawal:
--externalId from a stable identifier of the agent’s task (task ID, request ID, hash of the prompt + timestamp) — anything that would be the same on retry.
Dry-runs before real submits
bron tx dry-run validates a transaction body against the API without submitting it: returns the expected fees, blockchain ETA, validation errors:
Output for agents
The default JSON is fine. JSONL is often easier to parse line-by-line in a streaming agent:Agent-friendly help topic
Future: dedicated skills repo
We’re publishing a separate repository (BRO-493) with packaged “skills” / plugin manifests for popular coding agents (Claude CodeSKILL.md, Codex prompts, Cursor rules). It bundles:
- A canonical agent system prompt for Bron CLI usage
- Pre-built flow templates (treasury rebalance, payout approval, audit export)
- Example failure modes + recovery patterns
- Test harness for verifying agent integrations
Safety guardrails to write into your agent prompt
Suggested constraints for a Bron-driving agent — copy into your system prompt and tune:- Always pass
--externalIdon anytx <type>ortx createcall. Generate it from a stable task identifier. - Never pipe credentials anywhere except the local profile config. Don’t log JWK contents.
- Confirm before approve / decline / cancel / sign — these are state-changing, often irreversible. Show the human the affected transactions and wait for explicit OK.
- Use
tx dry-runbefore any first-time withdrawal pattern, to surface fees and validation errors. - Bound query windows —
--createdAtFrom/--createdAtToon list queries to avoid pulling thousands of records into context. - Treat exit codes as truth —
bron tx approve $tx || stop_and_reportinstead of grepping success messages.
