Plugin update loses executable permission on .sh hook files

Resolved 💬 4 comments Opened Mar 28, 2026 by jsulopzs Closed Apr 18, 2026

claude plugin update downloads plugin files without preserving the executable bit on .sh files. This causes hook execution to fail with:

Stop hook error: Failed with non-blocking status code: /bin/sh: 1:
/home/user/.claude/plugins/marketplaces/.../hooks/stop-hook.sh: Permission denied

Reproduction

  1. Install a plugin with .sh hook files (e.g. ralph-loop from claude-plugins-official)
  2. chmod +x the hook files manually so hooks work
  3. Run claude plugin update claude-plugins-official@anthropic
  4. Hook files lose +x → hooks fail with "Permission denied"

Expected behavior

claude plugin update should either preserve executable permissions on .sh files during download, or automatically chmod +x all .sh files after update.

Workaround

find ~/.claude/plugins/marketplaces -name "*.sh" -exec chmod +x {} \;

Needs to be re-run after every plugin update.

Environment

  • Platform: Linux
  • Affects all .sh files across all marketplace plugins

View original on GitHub ↗

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