Skip to content

Getting Started

nxv helps you find specific versions of Nix packages across nixpkgs history. Whether you need to pin a dependency to an older version or find when a package was introduced, nxv makes it fast and easy.

Try Without Installing

Use the public web interface at nxv.urandom.io - no installation required.

Quick Start

Run Directly (No Install)

bash
# Run directly via Nix flakes - nothing persisted
nix run github:utensils/nxv -- search python

Install via Shell Script

bash
# One-liner install (downloads static binary)
curl -fsSL https://raw.githubusercontent.com/utensils/nxv/main/install.sh | sh

# Update the package index (downloads ~190MB)
nxv update

# Search for a package
nxv search python

# Find a specific version
nxv search python --version 3.11

What You Get

For each package version, nxv provides:

  • Version history - When each version was first and last available
  • Commit hashes - Exact nixpkgs commits for reproducibility
  • Ready-to-run commands - nix shell / nix run invocations pinned to the right commit (or nix-shell with fetchTarball for pre-flake commits)
  • Security info - CVE warnings and insecure package markers

How It Works

nxv uses a pre-built SQLite index containing:

  • ~1.75 million version records across ~282,000 package attributes
  • Package metadata (description, license, homepage)
  • Bloom filter for instant "not found" responses

The index is downloaded once and searched locally, so queries are fast and work offline.

Next Steps

Released under the MIT License.