Interactive terminal UI for browsing dependency graphs of Nix derivations with size analysis.
nix-tree is an interactive terminal application that visualizes and explores the dependency graphs of Nix derivations. It allows users to navigate package dependencies, analyze storage sizes (NAR, closure, and added size), and understand what contributes to a derivation's build output. The tool works with local stores, remote caches, flake references, and system profiles.
Nix and NixOS users, system administrators, and developers who need to debug, optimize, or understand the dependency structure of their packages and systems.
It provides an immediate, interactive way to explore complex Nix dependency graphs directly in the terminal without switching to external GUI tools, with specialized features like size analysis and why-depends investigation that standard Nix commands lack.
Interactively browse dependency graphs of Nix derivations.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides keyboard-driven navigation (hjkl/arrow keys) for browsing dependency trees, making exploration more intuitive than parsing raw nix-store queries.
Calculates NAR size, closure size, and added size for each derivation, offering unique storage insights not available in standard Nix commands.
Accepts various inputs like store paths, flake references, and system profiles, integrating seamlessly with different Nix workflows from local builds to remote caches.
Can analyze dependencies from binary caches like cache.nixos.org without downloading packages, enabling pre-installation inspection to save bandwidth and time.
Limited to terminal output; visualizations require exporting to dot format and using external tools like Graphviz, which adds complexity for non-terminal users.
Only functions within Nix ecosystems, making it irrelevant for projects using other dependency management systems like npm or apt, thus limiting its general utility.
Relies on memorizing specific keyboard shortcuts (e.g., 'w' for why-depends, '/' for search), which can be a barrier for users unfamiliar with terminal-based UIs or Vim-style navigation.