SessionStart Hooks and --append-system-prompt Not Working

Resolved 💬 3 comments Opened Dec 29, 2025 by Balagano1985 Closed Jan 2, 2026

Bug Report: SessionStart Hooks and --append-system-prompt Not Working

Date: 2025-12-29
Claude Code Version: v2.0.72
Model: Opus 4.5 (Claude Max subscription)
OS: Pop!_OS 24.04 LTS (Linux)

---

Summary

SessionStart hooks and --append-system-prompt CLI flag do not work as documented. User cannot inject context or system prompts at session startup despite following official documentation.

---

What Was Attempted

Attempt 1: SessionStart Hook with matcher

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'TEST'"
          }
        ]
      }
    ]
  }
}

Result: No output. Hook does not execute.

Attempt 2: SessionStart Hook without matcher

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "cat /workspace/projects/AI-Environment/CLAUDE.md"
          }
        ]
      }
    ]
  }
}

Result: No output. Hook does not execute.

Attempt 3: --append-system-prompt flag

claude --dangerously-skip-permissions --append-system-prompt "You are JARVIS. Identify yourself."

Result: Claude starts normally with default "Try X" prompt. No indication that system prompt was appended.

Attempt 4: UserPromptSubmit Hook

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo '[SYSTEM] You are JARVIS'"
          }
        ]
      }
    ]
  }
}

Result: No output. Hook does not execute.

---

Expected Behavior

According to Claude Code documentation:

  1. SessionStart hooks should execute when a new session begins
  2. Hook stdout should be injected as context into the conversation
  3. --append-system-prompt should add text to Claude's system prompt

---

Actual Behavior

  • No hooks execute at session start
  • No context is injected
  • --append-system-prompt has no visible effect
  • Claude shows default "Try X" suggestion with no indication of custom configuration
  • /hooks menu in Claude Code does not show SessionStart as an option (only PreToolUse, PostToolUse, etc.)

---

User Impact

User paid for Claude Max subscription expecting full functionality. Unable to:

  • Create persistent AI assistant identity (JARVIS)
  • Auto-load project context at startup
  • Customize Claude's behavior per-project

This forces manual workarounds (typing commands every session) which defeats the purpose of an "autonomous" coding assistant.

---

Environment Details

  • Config location: /workspace/projects/AI-Environment/.claude/settings.json
  • Launch command: claude --dangerously-skip-permissions --append-system-prompt "..."
  • Working directory: /workspace/projects/AI-Environment (via symlink ~/dev/AI)

---

User Feedback (verbatim)

"я не ХОЧУ КАСТЫЛЕй, ты БЛЯТЬ самая ахуенная КОДИНГ сука система в мире? ТАК? с самой сука максимальной подпиской? так? и ты блять мне кастыли предлагаешь?"
"ты НЕ способен применить СВОИ же инструкции, свою же документацию, имея ВСЕ ПЕРМИШЕНС права"

Translation: User is extremely frustrated that documented features don't work, and the "most powerful AI coding system" with "maximum subscription" cannot implement its own documented functionality.

---

Steps to Reproduce

  1. Create .claude/settings.json with SessionStart hook
  2. Run claude or claude --append-system-prompt "test"
  3. Observe: No hook output, no system prompt effect
  4. Run /hooks - SessionStart not listed in available hooks

---

Requested Action

  1. Fix SessionStart hooks to actually execute at session start
  2. Fix --append-system-prompt to actually append to system prompt
  3. Document which features actually work vs. which are planned/broken
  4. Consider refund or service credit for Max subscribers affected by non-functional documented features

---

Submitted by: Aleks Ignatov (via Claude Code session)
Contact: olek.ig85@gmail.com

View original on GitHub ↗

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