nina

@june

NixOS is powerful, but it can be a lot. Nina keeps the whole workflow — packages, options, rebuilds, services, remote machines — right at the prompt. Written in Zig, zero dependencies.

https://nina.asha.software

ZigKdl

3.4.14 · 179 saves · 10,578 lines · updated 1 week ago · trusted

179 saves
25 files ⇓ bundle
179 saves
3c9ac84ad6d7fix: Resolve fable audit pin and option leftovers (v3.4.14) - Implement nina pin via flake.lock source parsing plus nix flake lock --override-input - Filter NixOS option docs inside nix eval and live-verify option search on golden - Document NINA-008/NINA-009 closeout evidence and bump versiondev1 week ago
bcb25ca4b195flake check: propagate nix flake check failure as a non-zero nina exit code instead of always returning 0; bump v3.4.13dev1 week ago
762b7aa461dfsize the man pager to the real terminal height via TIOCGWINSZ instead of a fixed 22-row guess; bump v3.4.10dev1 week ago
0feb174dd569bump VERSION to 3.4.9dev1 week ago
details

nina

NixOS Intuitive Navigation Assistant — by Asha Software

Nina wraps the full NixOS workflow in plain, memorable commands. Packages, rebuilds, generations, services, flakes, remote machines — all at the prompt, all fast.


install

nix profile add https://kepr.uk/nina/archive/HEAD.tar.gz
koh steal kepr.uk/nina && koh build

Experimental features nix-command and flakes are required


the commands


   apply               rebuild and switch
   back                roll back one generation
   go <n>              switch to generation n
   history             list all generations
   clean               remove old generations
   search <q>          find packages
   install <pkg>       add to profile or system
   remove <pkg>        remove from profile or system
   try <pkg>           test without installing
   list                show installed packages
   edit                open configuration.nix
   check               validate config
   diff                changes between generations
   status              machine health
   update              refresh channels
   upgrade             update and rebuild
   log                 operation history
   doctor              diagnose issues
   mood                plain-language health
   develop             enter dev shell
   flake               flake management
   build               build a package
   run                 run without installing
   service             manage services
   store               nix store tools
   channel             manage channels
   profile             user profile packages
   info                system information
   boot                boot entries
   fmt                 format configuration.nix
   repl                nix repl with nixpkgs
   option <q>          search nixos options
   pkg                 inspect packages
   pin                 pin flake inputs
   hash                compute nix hash
   fetch               fetch and hash a url
   goodbye             uninstall nina
   hello               list machines
   help                this message




search ♡

nina search opens an inline widget — no fullscreen takeover, no alternate screen. Results stay below your prompt. Navigate with arrow keys, stop typing and results update, press Tab for package details.

:: search nixpkgs  ripgrep                           8 results

   > ripgrep        15.1.0   Utility that combines the usability of The Silver Searcher
     ripgrep-all    0.10.10  Ripgrep, but also searches PDFs, E-Books, Office docs
     batgrep        ...      Search through files using ripgrep

   ripgrep  15.1.0
   Utility that combines the usability of The Silver Searcher with the raw speed of grep
   attr   pkgs.ripgrep

   [enter] install  [tab] info  [up/down] nav  [esc] cancel

Press Tab on any result to see its homepage and license. Press Enter to install — Nina asks whether you want it in your profile (instant, no rebuild) or system config.

Search uses nix search nixpkgs directly. No external API. Works offline after your first channel update. If you mistype a package name, Nina will suggest the closest match.


multi-machine

Any command runs on a remote machine with --on <name>. Configure in ~/.nina.conf:

[machine]
name    = kyoshi
config  = /etc/nixos
local   = true
default = true

[machine]
name    = azula
host    = azula
user    = june
ssh_key = ~/.ssh/id_ed25519
nina apply --on azula
nina service logs ollama --on azula
nina status --all
:: status

   kyoshi   gen 136   1h ago    10.2 GB
   azula    gen 42    3h ago    18.4 GB

config

~/.nina.conf — plain text, no surprises:

editor      = hx
generations = 5
confirm     = true
teach       = false
color       = true

[machine]
name    = my-machine
config  = /etc/nixos
local   = true
default = true

teach = true shows the underlying nix command after each operation — useful if you're learning NixOS or just curious what nina is actually running.

Pink :: marks Nina's voice. Green for success. Red for errors. Yellow for warnings. Color turns off automatically when output is piped. Respects NO_COLOR.



nina.asha.software — turning NixOS into a friendlier place to live