Skip to content

MaxAnderson95/viz0

Repository files navigation

viz0

viz0 is a terminal UI for inspecting OpenTelemetry data from Dash0. It is built for developers and SREs who want fast, keyboard-driven access to traces, logs, and events without changing how their applications export OTLP.

viz0 queries the Dash0 API on demand and renders the results in your terminal. It does not ingest, receive, or persist telemetry locally — your applications continue exporting OTLP to Dash0 as before.

viz0 Trace Workspace demo

Features

  • Trace-centric search across a Dash0 time window, grouped into trace summaries
  • Waterfall view with span details, attributes, events, and linked logs
  • Attribute filters with Dash0's operator vocabulary (is, contains, matches, gt, etc.) and local full-text search
  • Per-Dataset queries against any Dash0 organization
  • Keyboard-driven TUI — works over SSH and in narrow terminals
  • No local telemetry storage — viz0 only reads from Dash0
  • Single-file binaries for macOS (Apple Silicon), Linux (arm64, x64), and Windows (x64)

Requirements

  • A Dash0 auth token with query permissions
  • The Dash0 API endpoint URL for your organization
  • Node.js 18+ and npm (only if installing via npm)

The release binaries bundle the Bun runtime. Bun is only needed for development.

Install

npm

npm install --global @maxanderson95/viz0

npm resolves an optional per-platform package and installs only the one matching your OS and CPU. The viz0 command is a small Node launcher that exec's the platform binary; it does not require Bun at runtime.

Platform npm package
macOS Apple Silicon @maxanderson95/viz0-darwin-arm64
Linux arm64 @maxanderson95/viz0-linux-arm64
Linux x64 @maxanderson95/viz0-linux-x64
Windows x64 @maxanderson95/viz0-windows-x64

Manual download

Download the binary for your platform from the latest GitHub Release, make it executable, and place it on your PATH as viz0.

Platform Artifact
macOS Apple Silicon viz0-darwin-arm64
Linux arm64 viz0-linux-arm64
Linux x64 viz0-linux-x64-baseline
Windows x64 viz0-windows-x64.exe

Example (macOS Apple Silicon):

curl -L -o viz0 https://github.com/MaxAnderson95/viz0/releases/latest/download/viz0-darwin-arm64
chmod +x viz0
xattr -d com.apple.quarantine viz0 2>/dev/null || true
mv viz0 ~/.local/bin/viz0

The macOS binaries are ad-hoc codesigned in CI so the arm64 kernel will execute them, but they are not Apple-notarized. The xattr step removes the Gatekeeper quarantine attribute that curl adds to downloaded files; without it, macOS will block the binary on first run.

For manual downloads, verify the artifact against the SHA256SUMS file published with the release.

Usage

Just run:

viz0

On first launch, viz0 starts an interactive setup wizard that prompts for your Dash0 API URL, auth token, and (optional) Dataset, then writes a config file to ~/.config/viz0/config.json (or $XDG_CONFIG_HOME/viz0/config.json) with 0600 permissions. Subsequent launches read the config file and go straight to the Trace Workspace.

To re-run the wizard later (for example, to switch Datasets or rotate a token):

viz0 setup

The footer lists available keybindings. Esc clears transient UI state and q opens the quit confirmation.

Configuration

The setup wizard is the recommended way to configure viz0. If you prefer to skip the wizard — for CI, ephemeral environments, or shared shells — viz0 also reads Dash0's standard environment variables, which override any values from the config file:

DASH0_API_URL=https://api.<region>.dash0.com
DASH0_AUTH_TOKEN=auth_...
# Optional. Set when querying a non-default Dataset.
DASH0_DATASET=my-dataset

If Dash0 returns access to dataset 'default' is not permitted, set DASH0_DATASET to the Dataset you want viz0 to query.

Additional optional environment variables:

Variable Purpose Default
VIZ0_TRACE_FROM Default Search Window start now-15m
VIZ0_TRACE_TO Default Search Window end now
VIZ0_TRACE_LIMIT Max trace summaries per search 200
VIZ0_TRACE_PREFETCH_RADIUS Adjacent traces to prefetch on selection 2
VIZ0_CONFIG_PATH Override the config file path XDG path

Keep credentials out of version control — do not commit .env files or paste tokens into shared scripts.

Development

bun install
bun run typecheck
bun test
bun run dev

bun run smoke:api performs a live Dash0 query to verify credentials and prints response metadata and counts only — never raw telemetry payloads.

Release binaries are built on tag push (v*) by CI. To build them locally:

bun run build:all

Produces single-file executables under dist/ for all supported targets. Release setup and first-publish notes are in docs/release.md.

Attribution

viz0 borrows TUI implementation ideas and may adapt MIT-licensed code from motel by Kit Langton. See THIRD_PARTY_NOTICES.md.

Disclaimer

viz0 is an independent, community project. It is not affiliated with, endorsed by, or supported by Dash0.

License

MIT

About

A TUI for visualizing OTEL data from Dash0

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors