Plugins should declare and verify system dependencies
Resolved 💬 2 comments Opened Apr 2, 2026 by mtschoen Closed May 11, 2026
Problem
Plugins that depend on system tools (like jq, npm packages, etc.) fail silently or with cryptic errors when those dependencies aren't installed. Two examples:
- ralph-loop plugin — The stop hook (
stop-hook.sh) requiresjqto parse JSON. Whenjqisn't installed, every response triggers a hook error:
````
Stop hook error: Failed with non-blocking status code:
stop-hook.sh: line 32: jq: command not found
This persists on every turn with no indication of what's wrong or how to fix it.
- Python linter plugin — Required an npm dependency but didn't ask for it or try to install it. Failed without a clear message pointing to the missing dep.
Suggestion
- Plugins should declare their system dependencies (e.g.,
jq,node, specific npm packages) in their manifest/config - At plugin install time, Claude Code should check for required dependencies and either:
- Install them automatically (with user consent)
- Warn clearly: "Plugin X requires
jqwhich is not installed. Install it withsudo pacman -S jq/brew install jq/ etc." - Hook failures from missing deps should surface a helpful message rather than a generic "Failed with non-blocking status code"
Environment
- Arch Linux
- Claude Code CLI
- ralph-loop plugin from claude-plugins-official
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗