Agent Skills: nh (Nix Helper)

Switches NixOS/Home Manager configurations, cleans old generations, and performs system maintenance. Use when running os/home switch, pruning the Nix store, or managing system generations.

UncategorizedID: knoopx/pi/nh

Install this agent skill to your local

pnpm dlx add-skill https://github.com/knoopx/pi/tree/HEAD/agent/skills/tools/nh

Skill Files

Browse the full folder contents for nh.

Download Skill

Loading file tree…

agent/skills/tools/nh/SKILL.md

Skill Metadata

Name
nh
Description
"Switch NixOS/Home Manager configs with nh — cleaner interface for builds, switches, and garbage collection. Use when running os/home switch or pruning old generations."

nh (Nix Helper)

Cleaner interface for Nix operations — builds, switches, and garbage collection with readable output.

Switching Configuration

Build and activate a configuration:

nh os switch path:.           # NixOS — build and activate
nh os test path:.             # Build and test (rollback after timeout)
nh os build path:.            # Build only, don't activate
nh os boot path:.             # Make it the boot default without activating

Home Manager:

nh home switch path:.         # Build and activate Home Manager config
nh home build path:.          # Build only

macOS with nix-darwin:

nh darwin switch path:.       # Build and activate darwin config

Path inference works — nh os switch uses the local flake.nix in the current directory. Prefix remote paths with path: to include untracked files.

Maintenance & Cleanup

Clean the Nix store and old generations:

nh clean all --keep-since 7d  # Remove profiles older than 7 days
nh clean user --keep 5        # Keep last 5 user profiles
nh clean all                  # Full garbage collection

Searching & Updating

Search available packages:

nh search ripgrep             # Search by name or description

Update flake inputs before building:

nh os switch --update path:.  # Update inputs, then build and switch

Common Options

  • --dry — show what would happen without making changes
  • --ask — ask for confirmation (avoid in headless/automated scripts)