Plugin update loses executable permission on .sh hook files
Status Fixed / completed
Maintainer reply ✓ Yes — ashwin-ant
Workaround ✓ Mentioned in description ↑
Activity 4 comments · opened Mar 28, 2026 · closed Apr 18, 2026
💡 Likely answer: A maintainer (ashwin-ant, collaborator)
responded on this thread — see the highlighted reply below.
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
- Install a plugin with
.shhook files (e.g.ralph-loopfromclaude-plugins-official) chmod +xthe hook files manually so hooks work- Run
claude plugin update claude-plugins-official@anthropic - 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
.shfiles across all marketplace plugins
4 Comments
A
SessionStarthook can auto-fix permissions on every session start:The one-liner version is simpler — just
chmod +xall.shfiles under plugins and hooks directories on every session start. Since this runs before any hooks fire, it fixes the permission-denied error before it can occur.For a more targeted fix after
plugin updatespecifically, you can also add an alias or wrapper:My Claude says your issue has the same execute permission bug as #39931, #39954, #40009, #40050, #40086, #40187. This has been reported 7 times now.
This was fixed in v2.1.86 — Plugin updates now preserve the executable permission on .sh hook files. If you're still seeing this in the latest version, please comment with your version and repro and we'll reopen.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.