nix-output-monitor (nom) pipes your Nix build output and displays additional information during the build process. nom provides a visual representation of the build process, showing download times, build times, uploads, and dependency graphs. It leverages the Nix build output, and optionally, stores build data in the XDG_CACHE_HOME directory to track long-running processes.
nom offers a visual, real-time representation of Nix builds with color-coded indicators for various stages. It supports both JSON and human-readable log formats, allowing integration with various tools. The tool aims to provide insights into build performance, dependency relationships, and resource utilization, helping users better understand and debug their Nix builds.
- Real-time Visualization: Displays build progress, downloads, and uploads with color-coded indicators.
- Flexible Logging: Supports both JSON and human-readable log formats for integration with various tools and workflows.
- Dependency Graph: Visualizes the build dependency tree, showing relationships between derivations.
- Performance Tracking: Provides timing information for downloads, builds, and other stages, allowing performance analysis.
- Clear Indicators: Uses symbols and colors to clearly communicate the status of different build events.
- Extensible: Can be integrated with scripts and other tools to capture and display Nix build information.
- Persistence: Optionally stores build times and other data for future reference.
The project is actively maintained and has been used by a considerable number of people, offering a relatively stable and reliable experience. It supports both Nix v1 and v2 commands, showing a good level of compatibility. However, some edge cases regarding terminal clearing and parsing could still be present.
nix-output-monitor is valuable for developers and users who want a better understanding of their Nix builds. It simplifies debugging, performance analysis, and dependency management by providing clear, real-time visualizations. It is particularly helpful when troubleshooting complex builds or optimizing build times. Alternative approaches involve manually parsing build logs or relying on other tools offering less visual and integrated information.
