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

  1. Enable the learning-output-style plugin
  2. Start a new Claude Code session
  3. Observe SessionStart:startup hook error in 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)

View original on GitHub ↗

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