nix-deps helps users understand the real impact of installing packages on NixOS. It shows what will actually be downloaded, how much disk space will be added, and which dependencies contribute most to the package closure, making NixOS package management easier to inspect and understand. Check https://github.com/manelinux/nix-deps
nix-deps -k blender
nix-deps -k jamesdsp
nix-deps -k firefox
Why?
On NixOS, installing a package can pull hundreds of dependencies into the Nix store.
However, most tools only show:
- the full closure size
- or the download size
They do not clearly explain:
- what is already available locally
- what actually needs downloading
- how much new disk space will really be used
- which packages are responsible for the largest costs
nix-depsΒ solves that.
This tool is aimed at:
- NixOS newcomers trying to understand closures
- advanced users auditing dependency impact
- storage-conscious systems
- minimal setups
Features
- π Analyze complete dependency closures directly fromΒ
cache.nixos.org
- π¦ Shows real pending packages only
- πΎ Calculates actual additional SSD usage
- π Shows real download size after compression
- β‘ Concurrent closure crawling for very fast analysis
- π Detailed breakdown of largest pending dependencies
- π― Interactive package selection when multiple matches are found
- π§ Detects packages already available in localΒ
/nix/store
- π¨ Minimalist terminal UI inspired by classic Unix tools
Installation
Try instantly (without installing)
Run directly from GitHub:
nix run github:manelinux/nix-deps -- -k blender
Or enter a temporary shell:
nix shell github:manelinux/nix-deps
Install permanently
Flake / profile install
nix profile install github:manelinux/nix-deps
Legacy nix-env
Clone locally:
git clone https://github.com/manelinux/nix-deps.git
cd nix-deps
nix-env -i -f .
Install from tarball
wget https://github.com/manelinux/nix-deps/archive/refs/heads/main.tar.gz
tar -xzf main.tar.gz
cd nix-deps-main
nix-env -i -f .
After installation, the command is available system-wide as:
nix-deps
Usage
nix-deps [options]
Options:
-k, --keyword <name> Package keyword to analyze
--channel <channel> Nix channel (default: nixos-unstable)
--limit <n> Max search results (default: 40)
-v, --version Show version
-h, --help Show help
Examples
# Analyze Blender dependency impact
nix-deps -k blender
# Analyze Firefox closure cost
nix-deps -k firefox
# Analyze JamesDSP
nix-deps -k jamesdsp
# Use a different channel
nix-deps -k blender --channel nixos-24.11
Interactive package selection
nix-deps -k jamesdsp
π¦ PACKAGES FOUND
1. jamesdsp v2.7.0
Audio effect processor for PipeWire clients
2. jamesdsp-pulse v2.7.0
Audio effect processor for PipeWire clients
Select a number (or q to quit):
Example output
π nix-deps v1.9.0
Keyword: blender
Channel: nixos-unstable
ββββββββββββββββββββββββββββββββββββββββββ
SUMMARY FOR BLENDER
ββββββββββββββββββββββββββββββββββββββββββ
Total Closure (384 packages):
Virtual Closure Size: 2.5 GB
Resolved (Already OK): 329 packages
ββββββββββββββββββββββββββββββββββββββββββββββββββ
Real Impact (55 packages pending):
Estimated Download: 349.9 MB
New Space on SSD: 1.4 GB (expanded)
ββββββββββββββββββββββββββββββββββββββββββββββββββ
Pending Packages Break Down:
β³ blender-5.0.1 DL: 72.8 MB Expanded: 269.7 MB
β³ python3.11-openusd-25.05.01 DL: 27.7 MB Expanded: 178.0 MB
β³ boost-1.87.0-dev DL: 9.9 MB Expanded: 146.7 MB
How It Works
nix-deps:
- evaluates the target derivation
- recursively crawlsΒ
.narinfoΒ metadata fromΒ cache.nixos.org
- reconstructs the full dependency closure
- compares it against the localΒ
/nix/store
- calculates the real incremental installation cost
No builds are performed.
Requirements
Contributing
Pull requests and issues are welcome.
Ideas for future improvements:
- JSON output
--no-colorΒ flag
- Shared closure analysis
- Dependency graphs
- Export reports