A terminal monitor that enhances nix-build output with real-time progress, dependency trees, and build statistics.
nix-output-monitor (nom) is a terminal-based monitoring tool that intercepts and enhances the output of Nix build commands. It provides real-time visual feedback on build progress, displays a dependency tree, and shows statistics like build durations and completion statuses, making long Nix builds more understandable.
Nix users and developers who frequently run builds and want better insight into what's happening during the process, especially those working with complex dependency graphs or remote builds.
It offers a unique, real-time visualization layer on top of standard Nix output, turning opaque build logs into an interactive dashboard that highlights critical information and helps diagnose slow or failing builds faster.
Pipe your nix-build output through the nix-output-monitor a.k.a nom to get additional information while building.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Displays a real-time, condensed dependency tree in the terminal, color-coding running, completed, and failed builds to make complex Nix builds transparent and easier to monitor.
Acts as a direct replacement for commands like `nix build` and `nix-shell`, seamlessly integrating into existing Nix workflows without changing command syntax, as noted in the README.
Caches and shows mean build times for derivations locally, helping users identify performance bottlenecks and estimate future build durations based on historical data.
Supports both JSON-based parsing for rich data and human-readable log parsing for compatibility with scripts like `nixos-rebuild`, offering versatility in different environments.
Terminal clearing and reprinting can fail with certain terminals or widths, potentially leading to garbled output, as admitted in the README's limitations section.
In human-readable mode, it cannot distinguish between started and completed downloads and assumes all derivations have an 'out' output, causing status inaccuracies and missing data.
For `nix shell` and `nix develop`, nom calls the command twice, doubling evaluation time and adding significant latency, which is explicitly warned about in the README.