Nix Version Search CLI - user friendly way to find any version
JavaScript
42
284 commits
updated Oct 27, 2025
A CLI tool for finding/using versions of nix packages!
Make sure you have nix installed:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
Then install nvs:
nix-env -i -f https://github.com/jeff-hykin/nix_version_search_cli/archive/50a3fef5c9826d1e08b360b7255808e53165e9b2.tar.gz
# or, if you have flakes:
nix profile install 'https://github.com/jeff-hykin/nix_version_search_cli/archive/50a3fef5c9826d1e08b360b7255808e53165e9b2.tar.gz#nvs'
Examples:
nvs --install python
nvs --install python@3
nvs --install python@3.10
nvs --repl python
nvs --shell python
Examples Explained:
nvs --install <nameOfSomething> works like apt-get install/brew install. After you select a version, it will get system installed.nvs --dry-install <nameOfSomething> show the nix command (if you want to run it yourself)nvs <nameOfSomething> will give copy-pastable code for a shell.nix, default.nix, or flake.nix file.nvs --repl <nameOfSomething> give copy-pastable code for accessing the package anywhere in nix (e.g. after running nix repl)nvs --shell <nameOfSomething> if you want want the command for an interactive nix shell that has the packageIf you want to use the "python" package in some nix code do:
➜ nvs python@3
? Which Package [type OR press enter OR use arrows] ›
python : A high-level dynamically-typed programming language
python-qt : PythonQt is a dynamic Python binding for the Qt framework. It offers an easy way to embed the Python
python-full : A high-level dynamically-typed programming language
python2nix :
pythonIRClib : Python IRC library
python-minimal : A high-level dynamically-typed programming language
python-launcher : An implementation of the `py` command for Unix-based platforms
mate.python-caja : Python binding for Caja components
...
Selected: python
? Pick a version ›
3.13.0a1
3.12.0
3.12.0rc3
3.12.0rc2
3.12.0b4
3.12.0b3
3.12.0b2
3.12.0b1
...
Here is what to include in your nix code:
python = (
(import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/75a52265bda7fd25e06e3a67dee3f0354e73243c.tar.gz";
}) {}).python312
);
If you are not sure how to use this^
Run: nvs --explain python@3
Many other people are doing heavy lifting, this is just a CLI interface that standardizes and aggregates them. This tool grabs from 3 main sources:
This means, sometimes, the CLI is slow because one of those sites hang. It also means when they change their site a lot (only nixhub basically) it can break the CLI, or at least weaken the results.
280 commits
4 commits
JavaScript
92.8%
TypeScript
6.8%
Nix Version Search CLI - user friendly way to find any version
JavaScript
42
284 commits
updated Oct 27, 2025
A CLI tool for finding/using versions of nix packages!
Make sure you have nix installed:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
Then install nvs:
nix-env -i -f https://github.com/jeff-hykin/nix_version_search_cli/archive/50a3fef5c9826d1e08b360b7255808e53165e9b2.tar.gz
# or, if you have flakes:
nix profile install 'https://github.com/jeff-hykin/nix_version_search_cli/archive/50a3fef5c9826d1e08b360b7255808e53165e9b2.tar.gz#nvs'
Examples:
nvs --install python
nvs --install python@3
nvs --install python@3.10
nvs --repl python
nvs --shell python
Examples Explained:
nvs --install <nameOfSomething> works like apt-get install/brew install. After you select a version, it will get system installed.nvs --dry-install <nameOfSomething> show the nix command (if you want to run it yourself)nvs <nameOfSomething> will give copy-pastable code for a shell.nix, default.nix, or flake.nix file.nvs --repl <nameOfSomething> give copy-pastable code for accessing the package anywhere in nix (e.g. after running nix repl)nvs --shell <nameOfSomething> if you want want the command for an interactive nix shell that has the packageIf you want to use the "python" package in some nix code do:
➜ nvs python@3
? Which Package [type OR press enter OR use arrows] ›
python : A high-level dynamically-typed programming language
python-qt : PythonQt is a dynamic Python binding for the Qt framework. It offers an easy way to embed the Python
python-full : A high-level dynamically-typed programming language
python2nix :
pythonIRClib : Python IRC library
python-minimal : A high-level dynamically-typed programming language
python-launcher : An implementation of the `py` command for Unix-based platforms
mate.python-caja : Python binding for Caja components
...
Selected: python
? Pick a version ›
3.13.0a1
3.12.0
3.12.0rc3
3.12.0rc2
3.12.0b4
3.12.0b3
3.12.0b2
3.12.0b1
...
Here is what to include in your nix code:
python = (
(import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/75a52265bda7fd25e06e3a67dee3f0354e73243c.tar.gz";
}) {}).python312
);
If you are not sure how to use this^
Run: nvs --explain python@3
Many other people are doing heavy lifting, this is just a CLI interface that standardizes and aggregates them. This tool grabs from 3 main sources:
This means, sometimes, the CLI is slow because one of those sites hang. It also means when they change their site a lot (only nixhub basically) it can break the CLI, or at least weaken the results.
280 commits
4 commits
JavaScript
92.8%
TypeScript
6.8%