Plugin update loses executable permission on .sh hook files

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Mar 28, 2026 · 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 ↗