Plugins should declare and verify system dependencies
Status Closed — not planned
Maintainer reply None cached
Activity 2 comments · opened Apr 2, 2026 · 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 ↗