[BUG] Plugin .sh files lose execute permission on marketplace update
Status Fixed / completed
Reported on v2.1.85
Maintainer reply ✓ Yes — ashwin-ant
Workaround ✓ Mentioned in description ↑
Activity 5 comments · opened Mar 27, 2026 · closed Apr 18, 2026
💡 Likely answer: A maintainer (ashwin-ant, collaborator)
responded on this thread — see the highlighted reply below.
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Plugin marketplace auto-updates reset file permissions on all .sh files to 644 (no execute bit).
This causes hook scripts to fail with "Permission denied" errors. The fix doesn't persist — permissions are lost again on each update.
What Should Happen?
Shell scripts distributed via the plugin marketplace should retain execute permissions after auto-updates. Either the git repo should track the execute bit, or the update process should chmod +x .sh files after syncing.
Error Messages/Logs
Error Messages/Logs:
Stop hook error: Failed with non-blocking status code: /bin/sh: /Users/[my_username]/.claude/plugins/marketplaces/claude-plugins-official/plugins/ralph-loop/hooks/stop-hook.sh: Permission denied
Steps to Reproduce
- Install any plugin with .sh hook scripts (e.g., ralph-loop)
- Wait for a marketplace auto-update (or trigger one)
- Observe that all .sh files in ~/.claude/plugins/ marketplaces/claude-plugins-official/ are now 644
- Any hook that references a .sh file fails with "Permission denied"
Workaround: find ~/.claude/plugins/marketplaces/claude-plugins-official -name "*.sh" -exec chmod +x {} +
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Yes, this worked in a previous version
Claude Code Version
2.1.85 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
5 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
A
Notificationstart hook can auto-fix stripped permissions:Add to global
~/.claude/settings.json. Runs on every session start and restores execute permissions.My Claude says your issue is similar to issue #39931.
This was fixed in v2.1.86 — Plugin .sh files now retain their execute permission after a marketplace update. 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.