unbound chat lets you ask questions about your AI usage data in natural language. It renders charts and tables directly in the terminal.
Requires Admin or Manager role. Run unbound status to check.
Conversations are two-sided
The assistant can answer, and it can ask. A question back is a normal reply, not an error — the turn succeeds and exits0, and you answer it in the next turn.
Every turn belongs to a conversation, and each one builds on the ones before it, so you can refine an answer instead of restating it. There are two ways to hold one:
- Interactive session — context is kept for you.
- One-shot commands — pass the conversation id back with
-c.
Interactive session
Start a multi-turn REPL:One-shot mode
Ask a single question and exit:-m is its own process and sends no history of its own.
Continuing a conversation
A reply that produced an answer ends with the command to continue it:-c and the turns are read from the server, so the follow-up knows what came before:
--json the id is in the payload as conversation_id. The same continue: line is printed to your terminal on stderr, so it stays readable without entering the stream — it is skipped when stderr is redirected, since a script reads the id off the payload:
A conversation id that matches nothing is not an error — the question is still answered, just without the earlier context. The reply says so on stderr and sets
resumed to false.Output flags
With
--json, stdout carries the transcript and nothing else — confirmations and hints go to stderr so the stream stays parseable. Requires CLI 1.13.0 or later.What the CLI produces
JSON, and charts rendered in the terminal.--json, -o and /export all write the same transcript, with chart data as columns and rows — ready to turn into a CSV yourself.
The CLI does not produce CSV or PNG files; those are download buttons in the web UI. PowerPoint, Slides and PDF are not available anywhere. If the assistant mentions CSV or PNG in its reply, it is describing the web UI, not this command.
JSON response shape
A turn is an ordered transcript, so one question can return several charts with prose between them. Each block is either text or a chart:
rows is abbreviated above; a real chart carries every row it found.
Charts arrive decoded — columns and rows, not a chart-library option — and view_spec is the query that produced them, for reuse or refinement.
chart_type is one of bar, line, area, stacked_bar, pie, donut, scatter, heatmap, kpi or table.
A chart block carries decode_failed: true only when its data could not be read, so empty rows from a broken payload are distinguishable from a genuinely empty answer.

