Skip to main content
@m4trix/trace-viewer ships a local browser UI for traces written by @m4trix/tracing.

Start the Viewer

Filesystem (local development):
AWS stack (DynamoDB structure + S3 payloads):
Options:
  • --adapter fs|aws-stack selects the storage backend. fs is the default.
  • --path <dir> sets the filesystem trace root (required for fs). The default is tmp/tracing-example.
  • --port <n> sets the HTTP port. The default is 4319.
  • -h, --help prints the CLI help text.
For aws-stack, configure storage via environment variables instead of --path: If the binary is not on your shell path, run it through your package manager:

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.list lists trace summaries with optional filters.
  • traces.getTree returns one trace with its nested run tree.
  • traces.getPayload reads a JSON payload by ref.
  • traces.patchAnnotation deep-merges a trace-level annotation object.
  • traces.patchRunAnnotation deep-merges a run-level annotation object.
The browser app uses these procedures to keep the trace list fast and load large payloads only when needed.

Programmatic Server

Filesystem:
AWS stack:
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 as TraceStore.listTraces(...):
Supported filters:
  • projectId
  • status
  • startAfter
  • startBefore
  • limit
  • cursor
The filesystem adapter sorts traces newest first and returns nextCursor when more results are available.

Annotations

Traces and runs expose an optional annotation field (JSON object) for post-hoc review notes. Use the tRPC mutations or library API:
Pass merge: false to replace the entire annotation. Pass {} with merge: false to clear it.