Output formats

Every command renders through the same four formats.

FormatFor
tablereading (default)
jsonpiping into jq
yamlpiping into anything that reads YAML
textshell 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"
done

An 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 --trace

json 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

On this page