Enhance hooks with session-start script and documentation
- Add hooks/scripts/session-start.sh that: - Checks for unsummarized sessions - Checks for pending decisions - Outputs context to session - Update hooks.json to use the script - Add hooks/README.md documenting hook events and configuration This provides automatic context loading at session start. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
73
hooks/README.md
Normal file
73
hooks/README.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# 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 |
|
||||
|
||||
## 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`:
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": {
|
||||
"SessionStart": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "~/.claude/hooks/scripts/session-start.sh"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Adding Hooks
|
||||
|
||||
1. Create script in `scripts/`
|
||||
2. Make executable: `chmod +x scripts/your-hook.sh`
|
||||
3. Add to `hooks.json`
|
||||
4. 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)
|
||||
|
||||
```json
|
||||
{
|
||||
"matcher": "Write|Edit",
|
||||
"hooks": [...]
|
||||
}
|
||||
```
|
||||
|
||||
Matches tool names with regex pattern.
|
||||
|
||||
## Tips
|
||||
|
||||
- Keep hooks fast (<1s) to avoid delays
|
||||
- Use `set -euo pipefail` for safety
|
||||
- Output useful context, not noise
|
||||
- Test hooks manually before adding
|
||||
Reference in New Issue
Block a user