nix-tree: Interactively browse a Nix store paths dependencies

[ bsd3, language.nix, program ] [ Propose Tags ]

A terminal curses application to browse a Nix store paths dependencies


[Skip to Readme]
Versions [RSS] [faq] 0.1.0.0, 0.1.1.0, 0.1.2.0, 0.1.3.0, 0.1.3.1, 0.1.4, 0.1.5, 0.1.6, 0.1.7
Change log CHANGELOG.md
Dependencies aeson, base (>=4.11 && <5), brick, bytestring, clock, containers, deepseq, directory, filepath, hashable, hrfsize, relude, text, transformers, typed-process, unordered-containers, vty [details]
License BSD-3-Clause
Copyright Utku Demir
Author Utku Demir
Maintainer Utku Demir
Category Language.Nix
Home page https://github.com/utdemir/nix-tree
Uploaded by utdemir at 2021-03-28T00:14:26Z
Distributions NixOS:0.1.7
Executables nix-tree
Downloads 673 total (48 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2021-03-28 [all 2 reports]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates


Readme for nix-tree-0.1.7

[back to package description]

nix-tree

Build Status Packaging status

Interactively browse the dependency graph of your Nix derivations.

asciicast

Installation

Stable version:

nix-env -i nix-tree

Development version (requires Nix with flake support):

nix profile install github:utdemir/nix-tree

Usage

$ nix-tree --help
Usage: nix-tree [paths...] [-h|--help] [--version]
  Paths default to $HOME/.nix-profile and /var/run/current-system.
Keybindings:
  hjkl/Arrow Keys : Navigate
  w               : Open why-depends mode
  /               : Open search mode
  s               : Change sort order
  y               : Yank selected path to clipboard
  ?               : Show help
  q/Esc:          : Quit / close modal

Glossary

  • NAR Size: Size of the store path itself.
  • Closure size: Total size of the store path and all its transitive dependencies.
  • Added size: Size of the store path, and all its unique transitive dependencies. In other words, the cost of having that store path on top of all other paths. See issue #14 for a better explanation.

Tips

nix-build prints built paths to stdout, which can be piped conveniently with | xargs -o nix-tree. Examples:

# Output of a local derivation
nix-build . --no-out-link | xargs -o nix-tree

# Build time dependencies (passing a `.drv` path)
nix-instantiate --no-out-link | xargs -o nix-tree

# Dependencies from shell.nix
nix-build shell.nix -A inputDerivation | xargs -o nix-tree

# All outputs of a derivation in nixpkgs:
nix-build '<nixpkgs>' -A openssl.all --no-out-link | xargs -o nix-tree

Hacking

All contributions, issues and feature requests are welcome.

To hack on it, simply run nix-shell (or nix develop) and use cabal as usual.

Related tools