NixOS Package Management & Dotfiles
User input: $ARGUMENTS
Style
Comment sparingly in .nix files. Nix is declarative so code is self-documenting. Only add comments to:
- •Delineate sections in long package lists
- •Explain non-obvious workarounds
- •Note dependencies between options that aren't apparent
Instructions
- •
Read context:
~/Dotfiles/CLAUDE.mdfor layout - •
Parse request:
- •Install/remove package: Edit
hosts/fw13/default.nix - •Search:
nix search nixpkgs <query> - •Update:
nix flake updatethen rebuild - •Config changes: Edit appropriate module in
modules/ - •Claude settings: Edit
~/Dotfiles/sources/claude/(see below)
- •Install/remove package: Edit
- •
For packages:
- •Confirm package name:
nix search nixpkgs <name> - •Edit
hosts/fw13/default.nixunderhome.packages
- •Confirm package name:
- •
Apply: Run
nrs- •If rebuild fails, analyze error, fix, retry
- •Report success
- •
Commit (after successful rebuild):
- •
git add -A && git commit -m "..." - •Ask before push
- •
Package Locations
- •User packages:
hosts/fw13/default.nix→home.packages - •Flake inputs:
flake.nix - •System services:
modules/nixos/services.nix
Claude Code Settings
All Claude Code configuration is managed via Home Manager. Never edit ~/.claude/ directly - those files will be overwritten on rebuild.
Source of truth:
code
~/Dotfiles/sources/claude/ ├── CLAUDE.md # Global context ├── settings.json # Claude Code settings ├── commands/ # Slash commands ├── skills/ # Skills like this one └── context/ # Shared context files
Workflow for Claude settings changes:
- •Edit the source file in
~/Dotfiles/sources/claude/ - •Run
nrsto deploy
Examples:
- •Modify settings: Edit
~/Dotfiles/sources/claude/settings.json - •Add command: Create
~/Dotfiles/sources/claude/commands/my-command.md - •Add skill: Create
~/Dotfiles/sources/claude/skills/skill-name/SKILL.md