learning-output-style plugin: session-start.sh missing execute bit
Resolved 💬 3 comments Opened Mar 27, 2026 by ashrocket Closed Apr 18, 2026
Bug
The learning-output-style plugin's hooks-handlers/session-start.sh is shipped without the execute permission bit (-rw-r--r-- instead of -rwxr-xr-x).
Since the hook command in hooks.json is:
"command": "${CLAUDE_PLUGIN_ROOT}/hooks-handlers/session-start.sh"
...the shell tries to execute the file directly, fails with exit code 126 (permission denied), and Claude Code shows SessionStart:startup hook error on every session start.
Steps to reproduce
- Enable the
learning-output-styleplugin - Start a new Claude Code session
- Observe
SessionStart:startup hook errorin the startup status line
Expected behavior
The hook should run successfully and inject the learning mode context.
Workaround
find ~/.claude/plugins/cache/claude-plugins-official/learning-output-style -name "session-start.sh" -exec chmod +x {} \;
Fix
Add the execute bit to plugins/learning-output-style/hooks-handlers/session-start.sh in the repo, or update hooks.json to explicitly invoke bash:
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks-handlers/session-start.sh"
Environment
- Claude Code v2.1.85
- macOS (Darwin 25.3.0)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗