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:

  1. ralph-loop plugin — The stop hook (stop-hook.sh) requires jq to parse JSON. When jq isn'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.

  1. 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 jq which is not installed. Install it with sudo 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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗