@m4trix/trace-viewer ships a local browser UI for traces written by @m4trix/tracing.
Start the Viewer
Filesystem (local development):--adapter fs|aws-stackselects the storage backend.fsis the default.--path <dir>sets the filesystem trace root (required forfs). The default istmp/tracing-example.--port <n>sets the HTTP port. The default is4319.-h, --helpprints the CLI help text.
aws-stack, configure storage via environment variables instead of --path:
| Variable | Purpose |
|---|---|
TRACE_DYNAMO_TABLE | DynamoDB table name (required) |
TRACE_S3_BUCKET | S3 bucket for payloads (required) |
TRACE_S3_PREFIX | Optional S3 key prefix |
AWS_REGION | AWS region |
AWS_ENDPOINT_URL | Optional (LocalStack) |
Filesystem Layout
The filesystem adapters store traces under the configured root:trace.json contains the trace summary. runs.ndjson contains one JSON run per line. Payload files are referenced by inputRef and outputRef.
Viewer API
The viewer serves a tRPC API under/trpc:
traces.listlists trace summaries with optional filters.traces.getTreereturns one trace with its nested run tree.traces.getPayloadreads a JSON payload by ref.traces.patchAnnotationdeep-merges a trace-levelannotationobject.traces.patchRunAnnotationdeep-merges a run-levelannotationobject.
Programmatic Server
Filesystem:startTraceViewerServer listens on 127.0.0.1 by default. Pass host when you need to bind another interface.
Querying Traces
The API accepts the same query shape asTraceStore.listTraces(...):
projectIdstatusstartAfterstartBeforelimitcursor
nextCursor when more results are available.
Annotations
Traces and runs expose an optionalannotation field (JSON object) for post-hoc review notes.
Use the tRPC mutations or library API:
merge: false to replace the entire annotation. Pass {} with merge: false to clear it.
