Skip to main content
Use inf trace to inspect multi-step LLM workflows captured by Catalyst Tracing. It mirrors the dashboard trace viewer for headless debugging: list trace summaries, open a trace tree, render a timeline, inspect captured conversation messages, discover filter facets, and queue/download trace exports. Alias: inf traces

inf trace upload

Upload a JSONL trace file into the active project. The CLI validates the format locally (OTLP or Langfuse export), uploads it in parts, waits for processing to finish, and prints the upload ID plus line counts. Same flow as the dashboard Upload button and inf dataset upload.
inf trace upload <file>

Arguments

ArgumentRequiredDescription
fileYesPath to a .jsonl trace file

Options

FlagRequiredDescriptionDefault
-n, --name <name>NoUpload name shown in CatalystFilename without extension
--no-waitNoReturn after the transfer completes without polling processingOff
Uploaded traces appear under Observe → Traces once processing completes. Filter them with all-time range and the upload ID (trace_import_id in filters):
# Upload and wait for processing (default)
inf trace upload ./exports/langfuse-traces.jsonl

# Custom upload name
inf trace upload ./traces.jsonl --name prod-replay-2026-04-01

# Queue processing but do not wait
inf trace upload ./traces.jsonl --no-wait

# List traces from a completed upload
inf trace list --range all --filter "trace_import_id=<upload-id>"

inf trace list

Display trace summaries in the active project.
inf trace list
Alias: inf trace ls

Options

FlagRequiredDescriptionDefault
-l, --limit <n>NoMaximum number of traces25
--cursor <cursor>NoPagination cursor from a previous response-
--sort <key>NoSort by start_time, duration, total_cost, total_tokens, span_count, or llm_span_countServer default
--order <asc|desc>NoSort orderServer default
--range <preset>NoRelative time range: 1h, 6h, 12h, 1d, 3d, 7d, 14d, 30d, 90d, all1d
--from <iso>NoStart time. Must be used with --to-
--to <iso>NoEnd time. Must be used with --from-
--kind <kind>NoObservation kind. Repeat or comma-separate values like LLM,TOOL,AGENTAll kinds
--provider <name>NoLLM provider filterAll providers
--model <name>NoLLM model filterAll models
--service <name>NoOpenTelemetry service.name filterAll services
--environment <name>NoDeployment environment filterAll environments
--user <id>NoUser ID filterAll users
--session <id>NoSession ID filterAll sessions
--agent <name>NoAgent name filterAll agents
--status <ok|error>NoTrace status filterAll statuses
--filter <expr>NoAdvanced typed field filter. Repeatable-
--metadata <expr>NoSpan attribute filter. Repeatable-
--resource <expr>NoResource attribute filter. Repeatable-
Use --json for the raw API payload with full trace IDs, pagination cursors, and aggregate counts.

Examples

# Recent traces
inf trace list

# Failed LLM traces from the last hour
inf trace list --range 1h --kind LLM --status error

# Slow traces by duration, sorted longest first
inf trace list --filter "duration_ms>5000" --sort duration --order desc

# Filter by service and model
inf trace list --service api --model claude-sonnet-4-5

inf trace get

Open a single trace and its spans.
inf trace get <trace-id>
Alias: inf trace show

Arguments

ArgumentRequiredDescription
trace-idYesTrace ID

Options

FlagRequiredDescriptionDefault
--view <view>Nosummary, tree, timeline, thread, spans, or rawsummary
--span <span-id>NoHighlight a selected span in the tree view-
--limit <n>NoMaximum spans to fetch for this trace1000
--cursor <cursor>NoSpan pagination cursor-
-o, --output <path>NoWrite raw JSON to a file-
The default summary view prints trace metadata and an ASCII span tree. Use --view raw or global --json when piping trace data into scripts.

Examples

# Summary plus span tree
inf trace get 2f0d2b...

# Text waterfall ordered by span start time
inf trace get 2f0d2b... --view timeline

# Conversation-style view from captured input/output messages
inf trace get 2f0d2b... --view thread

# Persist raw trace + spans JSON for local analysis
inf trace get 2f0d2b... --view raw -o trace.json

inf trace facets

Inspect available trace filter values and counts. This is useful when building a repeatable query and you do not know the exact model, service, environment, or attribute values in a project.
inf trace facets

Options

inf trace facets accepts the same filter flags as inf trace list, plus:
FlagRequiredDescriptionDefault
--facet <id>NoFacet ID. Repeat or comma-separate valuesAll supported facets
--search <facet=query>NoSearch within a facet’s values. Repeatable-
--attribute-key <scope:key>NoFetch values for one span: or resource: attribute key-
-l, --limit <n>NoMaximum options per facet50

Examples

# Show all default trace facets
inf trace facets --range 7d

# Find model facet values containing "claude"
inf trace facets --facet llm_model_name --search llm_model_name=claude

# Explore values for an OpenTelemetry span attribute
inf trace facets --attribute-key span:gen_ai.operation.name

Advanced filter syntax

--filter, --metadata, and --resource are repeatable. Quote expressions so your shell does not interpret operators.
ExpressionMeaning
duration_ms>500Numeric comparison. duration and duration_ms are converted to nanoseconds for the API
total_tokens between:100,500Numeric range
span_count>=3Trace aggregate filter
llm_model_name~claudeString contains
service_name in:api,workerString set membership
agent_name not-emptyNon-empty string field
--metadata gen_ai.operation.name=chatSpan attribute equality
--resource service.version~2026Resource attribute contains

inf trace export

Trace exports create downloadable JSONL files for offline analysis, support escalations, or long-running review workflows.

inf trace export create

Queue an export job.
inf trace export create --range 7d --kind LLM
FlagRequiredDescriptionDefault
--from <iso> / --to <iso>NoExplicit export window-
--range <preset>NoRelative export window1d
--kind <kind>NoObservation kind filterAll kinds
--trace-id <id>NoTrace ID. Repeat or comma-separate values-
--session <id>NoSession ID filter-
--user <id>NoUser ID filter-
--agent <name>NoAgent name filter-
--model <name>NoLLM model filter-
--status-code <OK|ERROR|UNSET>NoSpan status code filter-
--attribute <key=value>NoAttribute equality match. Repeatable-
--waitNoPoll until the export finishesOff
--downloadNoDownload after the export is readyOff
-o, --output <path>NoDownload pathGenerated from job ID
# Queue and print a job ID
inf trace export create --range 30d --kind LLM

# Queue, wait, and download in one command
inf trace export create --range 7d --status-code ERROR --wait --download -o failed-traces.jsonl

inf trace export list

inf trace export list

inf trace export status

inf trace export status <job-id>

inf trace export download

inf trace export download <job-id> -o traces.jsonl