NixOS Package Management

VerifiedCaution

Helps with NixOS package management and dotfiles configuration. Activates for installing, removing, or searching packages, performing system updates, and editing NixOS configuration files. Useful for NixOS users who manage their system declaratively.

Sby Skills Guide Bot
DevOpsIntermediate
906/2/2026
Claude CodeCursorWindsurf
#nixos#package-management#dotfiles#configuration

Recommended for

Our review

Manages NixOS configuration, package installation/removal, system updates, and dotfiles via an nrs alias.

Strengths

  • Automates editing configuration.nix to add/remove packages
  • Runs NixOS rebuild and handles build errors
  • Version controls changes with Git and offers to push

Limitations

  • Requires a specific Dotfiles layout (~/Dotfiles)
  • Relies on user-defined nrs alias (nixos-rebuild switch)
  • Does not handle complex multi-user configurations
When to use it

For any NixOS package management or configuration task with an organized dotfiles setup.

When not to use it

On a non-NixOS system or if the user prefers manual dotfiles management.

Security analysis

Caution
Quality score85/100

The skill performs system-wide NixOS rebuilds via `nrs` (nixos-rebuild switch) which runs with elevated privileges and can modify the entire system configuration. It also commits and optionally pushes to a Git repository. These are legitimate administrative actions but come with inherent risk if misused, though the skill includes user confirmation before pushing and showing diffs. No destructive or exfiltration patterns detected.

No concerns found

Examples

Install a package
Install htop on my NixOS system.
Remove a package
Remove python2 from my user packages.
Update system
Update my NixOS flake and rebuild.

name: nix description: NixOS package management and dotfiles configuration. Activates for package install/remove/search, system updates, and configuration changes.

NixOS Package Management

Help with NixOS configuration and package management.

User input: $ARGUMENTS

Instructions

  1. Read context and config:

    • Read ~/Dotfiles/CLAUDE.md to understand the dotfiles layout
    • Read ~/Dotfiles/configuration.nix to see current packages
    • Read ~/Dotfiles/flake.nix if flake changes needed
  2. Parse the request:

    • Install package: User wants to add a package (e.g., "install htop", "add nodejs")
    • Remove package: User wants to remove a package
    • Search: User wants to find a package (e.g., "search for video editor")
    • Update: User wants to update the system
    • Other: Configuration changes, services, etc.
  3. For package install/remove:

    • Search nixpkgs to confirm exact package name: nix search nixpkgs <name>
    • Edit configuration.nix to add/remove from users.users.sasha.packages
    • Show the diff to user
  4. For search:

    • Run nix search nixpkgs <query> and summarize results
    • Suggest the most relevant package(s)
  5. For updates:

    • Run nix flake update in ~/Dotfiles
    • Then rebuild
  6. Apply changes:

    • Run: nrs (alias for nixos-rebuild switch)
    • If rebuild fails:
      • Analyze the error output
      • Identify the root cause (missing dependency, syntax error, etc.)
      • Fix the issue and retry
      • Repeat until successful or user asks to stop
    • Report success
  7. Update documentation:

    • If structural changes were made (new services, major packages), update ~/Dotfiles/CLAUDE.md
  8. Commit changes (only after successful rebuild):

    • cd ~/Dotfiles
    • git add -A
    • git commit with a descriptive message (e.g., "Add htop package", "Update flake inputs")
    • Ask user: "Ready to push to remote?"
    • Only push if user confirms

Package Locations

  • User packages: configuration.nixusers.users.sasha.packages
  • System packages: configuration.nixenvironment.systemPackages
  • Flake inputs: flake.nix → for adding external flakes
Related skills