Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

remi-dupre/pinix

Progress In Nix - Pacman inspired frontend for Nix

remi-dupre/pinix.json
{
"createdAt": "2024-02-04T20:33:57Z",
"defaultBranch": "main",
"description": "Progress In Nix - Pacman inspired frontend for Nix",
"fullName": "remi-dupre/pinix",
"homepage": "",
"language": "Rust",
"name": "pinix",
"pushedAt": "2026-02-28T22:19:18Z",
"stargazersCount": 61,
"topics": [],
"updatedAt": "2026-05-09T10:01:08Z",
"url": "https://github.com/remi-dupre/pinix"
}

Crates.io License Crates.io Version

Pinix is a Pacman inspired frontend for Nix. It wraps a regular Nix command and replaces the output with a more modern and informative interface.

[![asciicast][demo-gif]][demo-ascii]

It should work transparently for most commands, including when an interactive shell is spawned.

The repository defines a flake, so you can get the pinix package available by adding it to your flake.nix:

inputs = {
pinix.url = github:remi-dupre/pinix;
};
{ config, pkgs, lib, inputs, ... }:
{
environment.systemPackages = [
inputs.pinix.packages.${system}.default
];
}

You can also install pinix from sources by using [cargo][cargo] !:

Terminal window
cargo install pinix
# This will only install the main binary so you might want to add aliases for
# common nix commands.
alias pix="pinix --command nix"
alias pix-shell="pinix --command nix-shell"
alias pixos-rebuild="pinix --command nixos-rebuild"

The nix package provides you with drop-in replacements for common nix commands:

Terminal window
$ pix-shell -p htop
$ pixos-rebuild switch --flake .

Pinix has its how set of parameters, all prefixed with --pix-, they must be specified before any regular parameter. You can get list supported parameters through the help message:

$ pinix --pix-help
Wrap a Nix command to display rich logs while it is running
Usage: pinix [OPTIONS] [EXT]...
Arguments:
[EXT]... Arguments forwared to actual Nix command
Options:
--pix-help Display this help message
--pix-command <COMMAND> Specify the nix command that must be run
--pix-debug Display a debug bar
--pix-log-downloads Display a log line when a download is finished
--pix-record <RECORD> Save timestamped logs to a file

If you want to run a command for which you don’t have an alias available you can call pinix followed by your regular command:

Terminal window
$ pinix nix-shell -p htop

I’m not the first one who tried to improve nix output. Here are the tools that I know of:

  • [nix-output-monitor][tool-nom]: Pipe your nix-build output through the nix-output-monitor a.k.a nom to get additional information while building.
  • [nvd][tool-nvd]: Nix/NixOS package version diff tool.
  • [#4296][tool-native]: Some old suggestion for a more riche native progress indicator in nix.

[cargo] !: https://doc.rust-lang.org/cargo/ [demo-ascii] !: https://asciinema.org/a/641197 [demo-gif] !: https://github.com/remi-dupre/pinix/assets/1173464/6ab7ceb4-2ab3-41b8-84d0-78c6278d6d55 [tool-nom] !: https://github.com/maralorn/nix-output-monitor [tool-nvd] !: https://gitlab.com/khumba/nvd [tool-native] !: https://github.com/NixOS/nix/pull/4296