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.
- 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)
- 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.
npm install --global @maxanderson95/viz0npm 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 |
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/viz0The 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.
Just run:
viz0On 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 setupThe footer lists available keybindings. Esc clears transient UI state and q opens the quit confirmation.
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-datasetIf 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.
bun install
bun run typecheck
bun test
bun run devbun 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:allProduces single-file executables under dist/ for all supported targets. Release setup and first-publish notes are in docs/release.md.
viz0 borrows TUI implementation ideas and may adapt MIT-licensed code from motel by Kit Langton. See THIRD_PARTY_NOTICES.md.
viz0 is an independent, community project. It is not affiliated with, endorsed by, or supported by Dash0.
MIT
