Tools/CtrlSpice/otel-desktop-viewer

otel-desktop-viewer

otel-desktop-viewer is a CLI tool for receiving OpenTelemetry traces while working on your local machine.

1.3k+11/wkemergingGoApache License 2.0trending

The Lens

By Erik Loyd, SaaS CEO and former COO/CFO of an AWS Premier Partner.

Updated Sep 2026

Point your app's OTLP exporter at localhost and get a real trace viewer without touching your observability bill. otel-desktop-viewer is a single Go binary built on the OpenTelemetry Collector that stores traces, metrics and logs in DuckDB and serves a Svelte UI on port 8000. Apache 2.0, no account, no cloud.

Setup is close to nothing. Homebrew cask on macOS, apt or dnf on Linux, a Docker image, or a release binary you unpack and run. Telemetry sits in memory and caps at 512MB, pruning the oldest data past that. Point it at a file instead and you get 2GB of persistence.

Free, all of it, permanently. This is not a Datadog or Grafana Cloud replacement and never pretends to be: no alerting, no retention policy, no multi-host collection. It is what you run so you stop shipping local development traces to a vendor billing you per gigabyte. Everyone on the team should have it installed.

The catch is the bus factor. One maintainer has written the overwhelming majority of it. The Linux release binaries also need glibc 2.39 or newer, which rules out Ubuntu 22.04, so an older host means compiling from source with CGO enabled.

Free vs Self-Hosted vs Paid

fully free

Free tier: Everything. Traces, metrics and logs, the full web UI, DuckDB persistence, and every install channel. There is no paid edition, no license key, no account, and no hosted service to upsell you.

Self-hosted: This is the only mode, and it is deliberately a single-machine tool. Install via Homebrew cask, a .deb or .rpm from the project's GemFury repository, a GitHub release binary, go install with CGO enabled, or the ghcr.io Docker image. The UI listens on port 8000 with OTLP receivers on 4317 for gRPC and 4318 for HTTP. Storage is in-memory by default with a 512MB cap; the --db flag writes to a DuckDB file with a 2GB default cap, and --db-max-size adjusts either. Oldest telemetry is pruned once the cap is reached.

Paid: Nothing. There is no cloud tier and no commercial offering. If you need alerting, long retention, multi-host collection or team dashboards, that is a different class of tool and you should be looking at a hosted vendor or a self-hosted Grafana and Tempo stack instead.

Completely free and open source. No cloud tier, no account, and no telemetry leaves your machine.

What to do by team size

Solo
free
Small team
free
Medium team
free
Large team
free; pair it with a real production observability stack
Self-hosting ops:trivial

Get tools like this every Wednesday

One featured tool, three on the radar. No fluff.

Score
69/100 · B
Adoption12/30
Maintenance25/25
Community7/20
License15/15
Analysis10/10

A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores

Trust Signals

Community discussions enabled

License: Apache License 2.0

Use freely. Patent grant included.

Commercial use: ✓ Yes

About

Owner
Mila Ardath (User)
Stars
1,267
Forks
55

Explore Further

More tools in the directory