nixos intuitive navigation assistant

nina

v3

turning nixos into a cozier place to live ♡

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

june@kyoshi: ~
$ curl -fsSL kepr.uk/nina/install.sh | sh
$ koh steal kepr.uk/nina

linux · macos · nixos 24.05+

no more memorizing nix incantations

Nina wraps the flake workflow in plain, predictable verbs. See what a flake offers, step into a dev shell, or build outputs — all without context-switching.

nina flake show

Inspect the current flake's outputs — packages, apps, dev shells, NixOS configurations — without reading the source.

inspect · outputs

nina develop

Enter a dev shell with all dependencies ready. No manual nix develop flags to remember.

dev shells

nina build

Build any flake output. Results linked locally as ./result. Clean and predictable.

build · outputs

nina flake update

Update lock files without hunting for the right --update-input syntax.

update · locks
$ nina flake show
:: .
 
packages x86_64-linux nina
apps x86_64-linux nina
devShells x86_64-linux default
$ nina develop
:: entering dev shell
 
exit to return

one steady tool for the work nixos keeps throwing at you

She handles the parts of NixOS that used to mean switching tabs, hunting for package names, and reading through config docs — all from one warm, consistent prompt.

inline package + option search

Search stays attached to the prompt instead of taking over the whole terminal. Browse nixpkgs, preview NixOS options, install, try, or copy — all without leaving your flow.

search · option · install · try

prompt-native install recovery

Misspelled or fuzzy installs recover inline with a compact selector — no fullscreen app, no context switch.

install · remove · try · list

system changes, without the cliff edge

Preview a change, test it, apply it, or roll back without switching mental models halfway through the job.

diff · test · apply · back

remote boxes still feel local

When you move from your laptop to a server, Nina keeps the verbs steady, right through deploys, storage cleanup, and machine-wide checks.

apply --on · status --on · clean

a few good verbs to keep nearby

These are the ones you'll reach for on a normal NixOS day.

search + install at the prompt

Inline package search, option search, and install that recovers from typos without dropping you into a separate screen.

nina searchnina optionnina installnina remove

change the machine

Diff, test, apply, or roll back — with backup, diff preview, and automatic rollback if something goes wrong.

nina diffnina checknina applynina back

flakes and dev shells

See what a flake exposes, step into a dev shell, build outputs, and manage flake lifecycle.

nina flake shownina developnina buildnina flake

system inspection and care

Check status, manage services, inspect the store, profile packages, and keep the machine clean.

nina statusnina servicenina storenina clean

generation and history browsing

Go back to any generation, compare two, see what changed, or delete old ones.

nina gonina historynina gennina log

machine config and editing

Edit configuration.nix safely, get system info, manage channels, and run across machines.

nina editnina infonina channelnina boot

package and profile tools

Inspect package metadata, deps, and closures. Manage user profiles and temporary pins.

nina pkgnina profilenina pinnina unpin

remote machine support

Any command runs on a remote machine via SSH with `--on <machine>`. Roll out changes, check health, inspect services — all from your local prompt.

nina apply --on azulanina hellonina status --on azulanina doctor

A small shelf, but a useful one.

same voice, even over ssh

Nina keeps remote work from turning into a whole new personality. Same verbs, same little reassurances, same sense of where you are.

kyoshi local · /etc/nixos local default
gen 348 · 3m ago
azula june@azula · ~/.ssh/id_ed25519 ssh
gen 192 · 14m ago
nina apply --on azula nina service logs ollama -f nina status --on azula