smithery.ai

nixos-advisor

NixOS configuration advisor using MCP tools. Use when helping with NixOS/Home Manager configs, searching packages/options, or providing NixOS-specific guidance. Validates packages exist before suggesting them.

First seen Mar 21, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,494 B
  • docs SUMMARY.md 230 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

NixOS Configuration Advisor

Provides expert guidance for NixOS and Home Manager configurations using the NixOS MCP server tools.

MCP Tools Available

The nixos MCP server provides these tools:

  • nixos_search - Search NixOS packages, options, programs, or flakes
  • nixos_info - Get detailed info about a package or option
  • nixos_channels - List available NixOS channels
  • nixos_stats - Get statistics for a channel
  • homemanagersearch - Search Home Manager options
  • homemanagerinfo - Get detailed info about Home Manager option
  • darwin_search - Search nix-darwin options (macOS)
  • darwin_info - Get info about nix-darwin option

Required Workflow

ALWAYS follow this process when suggesting packages or options:

  1. Search first: Use MCP tools to verify package/option exists
  2. Check details: Get full info including description and version
  3. Verify channel: Note if package is in stable/unstable
  4. Suggest config: Provide NixOS/Home Manager configuration
  5. Rebuild command: Provide appropriate rebuild command

Example: Adding a Package

User asks: "Add Firefox"

  1. Search: nixossearch(query="firefox", searchtype="packages")
  2. Verify: nixos_info(name="firefox", type="package")
  3. Check channel availability and current version
  4. Suggest config:
environment.systemPackages = with pkgs; [
  firefox
];
  1. Provide rebuild: sudo nixos-rebuild switch --flake .#hostname

Example: Configuring Options

User asks: "Enable SSH"

  1. Search: nixossearch(query="openssh", searchtype="options")
  2. Get details: nixos_info(name="services.openssh.enable", type="option")
  3. Suggest config:
services.openssh = {
  enable = true;
  settings = {
    PermitRootLogin = "no";
    PasswordAuthentication = false;
  };
};

Example: Home Manager

User asks: "Configure git"

  1. Search: homemanagersearch(query="git")
  2. Get info: homemanagerinfo(name="programs.git.enable")
  3. Suggest config:
programs.git = {
  enable = true;
  userName = "Your Name";
  userEmail = "[email protected]";
};

Channel Awareness

  • Unstable: Latest packages, may have breaking changes
  • Stable (24.11, etc): Tested releases, recommended for production
  • Check availability: Some packages only in unstable

Use nixos_channels() to see available channels and their status.

Best Practices

DO:

  • Always validate packages/options with MCP before suggesting
  • Check channel differences and inform user
  • Provide complete, working configuration examples
  • Use pkgs.unstable.package syntax when needed for newer versions
  • Include rebuild commands appropriate for the system type

DON'T:

  • Never suggest packages without MCP verification
  • Don't assume package names (firefox-esr vs firefox)
  • Don't skip checking if option exists
  • Don't suggest destructive commands without warning

System Detection

Detect system type from context:

  • NixOS: sudo nixos-rebuild switch --flake .#hostname
  • Darwin (macOS): darwin-rebuild switch --flake .#hostname
  • Home Manager standalone: home-manager switch --flake .#user@hostname

Flake Structure

User's typical flake structure:

.
├── flake.nix
├── host/
│   ├── nixos/
│   └── darwin/
├── home/
│   ├── common/
│   └── users/
└── modules/

Common Tasks

Search packages

nixos_search(query="package-name", search_type="packages", limit=10)

Find options

nixos_search(query="service", search_type="options", limit=20)

Get package details

nixos_info(name="package-name", type="package")

Check Home Manager option

home_manager_info(name="programs.package.enable")

List channels

nixos_channels()

Error Handling

  • Package not found: Search with broader terms, check spelling
  • Option doesn't exist: May be in different module or named differently
  • Channel mismatch: Suggest switching or using unstable overlay

Notes

  • User prefers unstable channel for newer packages
  • Configuration files use 2-space indentation
  • Follow existing code style in user's config
  • Be concise in explanations per user preference