Distributed tracing.
No Jaeger. No cloud.
Just your terminal.

Run one binary, point your OTel SDK at localhost:4317, and watch your spans appear live — zero config, zero infra.

tracelocal
  OTLP/gRPC  :4317   OTLP/HTTP  :4318

  svc-apiPOST /checkout       45ms   (4 spans)
  svc-authValidateToken        12ms   (1 span)
  svc-cartGetCart               8ms   (2 spans)
  svc-dbdb.query              3ms   ✕ error

  ──────────────────────────────────────────────

  svc-api › POST /checkout   45ms

  svc-api  › POST /checkout    ████████████████████████  45ms
  svc-auth › ValidateToken     ████████                  12ms
  svc-cart › GetCart                   ██████             8ms
  svc-db   › db.query                  ████               3ms

  esc back  /search  e errors only  q quit

Zero config

One binary. No YAML, no Docker Compose, no cloud account. Works with any OTel SDK out of the box.

📡

OTLP/gRPC & HTTP

Listens on port 4317 (gRPC) and 4318 (HTTP). Drop-in replacement for Jaeger or Tempo during local development.

🔴

Error spotlight

Press e to filter to traces with errors. Find failures instantly without scrolling.

🌊

Live span tree

Proportional timing bars show exactly where time is spent. Auto-refreshes every 200 ms as new spans arrive.

📊

Statistics view

P50, P95, P99 latency and error rates per service — no external metrics backend required.

🗂

Ring buffer

Keeps the last N traces in memory and evicts the oldest automatically. Configurable via --capacity.

How it works

  1. 1

    Start tracelocal

    tracelocal

    Binds to :4317 (gRPC) and :4318 (HTTP) immediately.

  2. 2

    Point your SDK at localhost

    OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
    OTEL_EXPORTER_OTLP_PROTOCOL=grpc

    Works with Go, Python, Node.js, Java, Rust — any OTel-compatible SDK.

  3. 3

    Watch your traces

    Spans appear in the terminal UI as they arrive. Navigate with arrow keys, press enter to inspect a trace, s for statistics.

Install

Homebrew macOS / Linux

brew install i9va/tap/tracelocal

go install

go install github.com/i9va/tracelocal/cmd/tracelocal@latest

Binary release

Download a pre-built binary for macOS, Linux, or Windows from the releases page.

# macOS / Linux
curl -sSL https://github.com/i9va/tracelocal/releases/latest/download/tracelocal_$(uname -s)_$(uname -m).tar.gz \
  | tar -xz && mv tracelocal /usr/local/bin/