npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@maxanderson95/viz0

v0.0.6

Published

A Dash0 OpenTelemetry terminal UI for inspecting traces, logs, and metrics.

Readme

viz0

viz0 is a terminal UI for inspecting OpenTelemetry data pulled from Dash0. It is designed for developers and SREs who want to inspect traces, logs, and metrics without changing application OTLP exporter configuration.

viz0 queries the Dash0 Backend 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.

The first vertical slice is the Trace Workspace: search a Dash0 time window, group matching spans into trace-centric summaries, and hydrate selected traces for waterfall and span inspection.

viz0 Trace Workspace demo

Requirements

  • A Dash0 auth token with querying permissions
  • A Dash0 API endpoint URL from your Dash0 organization settings
  • Node.js 18 or newer and npm for package installation
  • Bun 1.1 or newer is only required for development; release binaries bundle the Bun runtime

Install

Install with 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 itself is a small Node launcher that exec's the platform binary. It does not require Bun at runtime.

Supported npm install targets:

| Platform | npm platform 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 |

To install without npm, download the executable for your platform from the latest GitHub Release, make it executable, and place it on your PATH as viz0.

Manual download artifacts:

| 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 -d com.apple.quarantine step removes the Gatekeeper attribute that curl adds to downloaded files; without it, macOS will block the binary on first run.

For manual downloads, verify the download against SHA256SUMS published with the release. To update, run npm update --global @maxanderson95/viz0 for npm installs or replace the binary with a newer release artifact for manual installs.

Configuration

viz0 uses Dash0's official environment variable names:

DASH0_API_URL=https://api.<region>.dash0.com
DASH0_AUTH_TOKEN=auth_...
# Optional. For query APIs, set this when you need a non-default Dataset.
DASH0_DATASET=my-dataset

DASH0_DATASET is optional in viz0 configuration, but Dash0's trace query API currently selects a non-default Dataset through the JSON request body. This is separate from ingestion behavior, where token/default ingestion Dataset rules can apply to writes.

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

Keep credentials out of version control. Load them from a shell profile, a secret manager, or a local .env file that is gitignored — do not commit .env files or paste tokens into shared scripts.

First run

With viz0 on your PATH and the environment variables set, launch the Trace Workspace:

export DASH0_API_URL=https://api.<region>.dash0.com
export DASH0_AUTH_TOKEN=auth_...
# export DASH0_DATASET=my-dataset   # optional

viz0

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

Development

bun install
bun run typecheck
bun test
bun run smoke:api
bun run dev

smoke:api only prints response metadata and trace-summary counts. It does not print raw telemetry payloads.

Safe mapping diagnostics

Trace mapping diagnostics compare viz0's mapped count summaries with safe Dash0 response metadata when Dash0 exposes that metadata. The comparison is count-only: spans, services, events, logs, and web events. It must not print raw telemetry payloads, attribute values, log bodies, or secrets.

The live metadata endpoint is still pending upstream ($counts_url in issue #11), so the diagnostic currently exists as tested pure comparison/formatting behavior and can be wired into smoke:api once Dash0 exposes safe count metadata.

Building release binaries locally

bun run build:all

Produces single-file executables under dist/ for the three supported targets. CI runs the same commands on tag push (v*), attaches the artifacts to a GitHub Release, publishes one npm package per platform containing the matching binary, and publishes the main @maxanderson95/viz0 package whose optionalDependencies point at the platform packages.

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.