Agent skill
nixos-command-not-found
Auto-install missing commands in NixOS environments. Detects NixOS, searches for packages containing the missing command, and re-runs with nix shell. Use when commands fail with "command not found" errors.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/nixos-command-not-found
SKILL.md
NixOS Command Not Found Handler
Automatically handles "command not found" errors in NixOS environments by searching for packages and retrying with nix shell.
When to Use
Activate this skill when:
- Command fails with "command not found" or "No such file or directory"
- User is in NixOS environment (detected by
/etc/nixosexistence orNIX_STOREenv var) - Command appears to be a standard Unix tool or known package
Workflow
- Detect NixOS environment: Check for
/etc/nixosorNIX_STOREenv var - Extract command name: Get the missing command from error output
- Delegate everything to nixos agent: Agent finds package AND runs command
- Return command output: Agent provides the actual command result
Implementation Steps
1. Environment Detection
Check if we're in NixOS:
test -d /etc/nixos || test -n "$NIX_STORE"
2. Delegate Complete Task
Use Task tool with nixos agent to handle everything:
Task(
description="Run missing command with nix shell",
prompt="The command '<original-command>' failed with 'command not found'. Please:
1. Search for the NixOS package that provides this command
2. Run the command using 'nix shell nixpkgs#<package> -c <original-command>'
3. Return the actual command output/result",
subagent_type="nixos"
)
3. Return Results
The nixos agent returns the actual command execution result, not just package info.
Examples
Missing tree command
- User runs:
tree /some/path - Error:
zsh: command not found: tree - Detect NixOS environment ✓
- Delegate to nixos agent: "Run 'tree /some/path' with nix shell"
- Agent finds
treepackage, runsnix shell nixpkgs#tree -c tree /some/path - Agent returns: actual directory tree output
Missing jq command
- User runs:
cat data.json | jq '.name' - Error:
command not found: jq - Delegate to nixos agent: "Run 'jq '.name'' with nix shell"
- Agent finds
jqpackage, runs with stdin preserved - Agent returns: actual JSON parsing result
Missing cargo command
- User runs:
cargo build - Error:
command not found: cargo - Delegate to nixos agent: "Run 'cargo build' with nix shell"
- Agent finds
cargopackage, runsnix shell nixpkgs#cargo -c cargo build - Agent returns: actual build output or errors
Edge Cases
Multiple Package Options
Nixos agent handles all selection logic internally:
- Uses nixos MCP tools to find best match
- Considers exact name matches, package descriptions, etc.
- Picks most appropriate option or asks user if truly ambiguous
Complex Commands
Nixos agent handles command complexity:
- Preserves pipes, redirects, and shell syntax
- Uses appropriate shell escaping when needed
- Maintains stdin/stdout/stderr as expected
Already in Nix Shell
Nixos agent handles this case:
- Detects if already in nix shell
- Still proceeds (might need different package)
- Can inform user about current nix shell context
Error Handling
Package Not Found
Nixos agent handles all error scenarios:
- Tries broader search terms and fallbacks
- Searches programs, options, or suggests alternatives
- Returns helpful error message if no package found
Command Failures
Nixos agent returns actual command results:
- Shows real command output if successful
- Returns actual error messages if command fails
- Distinguishes between "package not found" vs "command failed"
Integration Notes
Detection Triggers
Monitor for these error patterns:
command not found: <cmd><cmd>: No such file or directoryzsh: command not found: <cmd>bash: <cmd>: command not found
Agent Responsibilities
Nixos agent handles all technical details:
- Maintains current working directory
- Preserves environment variables
- Keeps stdin/stdout/stderr intact
- Shows what package was used
- Provides appropriate feedback
Main Agent Role
Main agent just:
- Detects NixOS environment
- Delegates to nixos agent
- Returns agent's command results to user
Configuration
Excluded Commands
Don't handle these (likely typos or not packages):
- Single letters:
a,b,x - Common typos:
sl,gerp - Shell builtins that failed:
cd,export
Channel Preference
- Default to
nixpkgs#(follows system channel) - Could use
nixpkgs/unstable#for newest versions - Respect user's flake configuration if detected
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?