Output formats
Every command renders through the same four formats.
| Format | For |
|---|---|
table | reading (default) |
json | piping into jq |
yaml | piping into anything that reads YAML |
text | shell loops — tab-separated, no header, no colour |
Select one per command, save it to the profile, or set it in the environment:
sim tables get tbl_123 --output json
sim configure --set-output json
SIM_OUTPUT=yaml sim logs list > logs.yaml--output works before or after the command.
What each format emits
json and yaml emit the API's raw values, not the table's formatting — a
duration stays 1500, not "1.5s".
table formats for reading: timestamps without milliseconds, sizes as 4.2 MB,
booleans as yes/no, costs as $0.0142. Long cells are clipped to keep rows
on one line; switch to json for the full value.
text uses the rendered cells, tab-separated, with no header or colour:
SIM_OUTPUT=text sim files list | while IFS=$'\t' read -r id name folder size type uploader uploaded; do
echo "$id $name"
doneAn absent value is an em-dash in table and an empty field in text.
Reading a run in detail
sim logs get prints a concise summary. Add --trace for the recursive trace
with span inputs, outputs, errors, timing, and cost:
sim logs get run_123 --tracejson and yaml always carry the complete response, so --trace is a no-op
there:
sim logs get run_123 --output json | jq '.traceSpans'Exceptions
sim profiles and sim configure always print for humans — they report local
configuration, not API data.
sim workflows export always emits raw JSON, or YAML when the profile says so,
so that it round-trips through import:
sim workflows export wf_123 > wf.json
sim workflows import --workflow @wf.json