Injects contextual information when user submits a prompt: - Current time with period (morning/afternoon/evening/night) - Git branch if in a repository - Relevant memory items based on prompt keywords (2+ matches) - Pending decisions needing attention Design: - Skips short prompts (<10 chars) to not slow down commands - 5s timeout to keep prompts responsive - Lightweight keyword matching for memory relevance Also updates general-instructions.json with git workflow notes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Hooks
Event handlers that run automatically during Claude Code sessions.
Active Hooks
| Event | Script | Purpose |
|---|---|---|
SessionStart |
scripts/session-start.sh |
Load context, check for pending items |
PreCompact |
scripts/pre-compact.sh |
Remind to preserve context before compaction |
Hook Events
| Event | When It Fires |
|---|---|
SessionStart |
When Claude Code session begins |
SessionEnd |
When session ends |
PreToolUse |
Before a tool is used |
PostToolUse |
After a tool is used |
UserPromptSubmit |
When user submits a prompt |
PreCompact |
Before context compaction |
Notification |
When notification is sent |
Configuration
Hooks are defined in hooks.json:
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/scripts/session-start.sh"
}
]
}
]
}
}
Adding Hooks
- Create script in
scripts/ - Make executable:
chmod +x scripts/your-hook.sh - Add to
hooks.json - Restart Claude Code
Script Output
- Stdout is injected into session as context
- Use format:
HookName:Callback hook success: Success - Additional context:
HookName hook additional context: <message>
Matchers (for Tool Hooks)
{
"matcher": "Write|Edit",
"hooks": [...]
}
Matches tool names with regex pattern.
Tips
- Keep hooks fast (<1s) to avoid delays
- Use
set -euo pipefailfor safety - Output useful context, not noise
- Test hooks manually before adding