home / skills / htlin222 / dotfiles / hook
npx playbooks add skill htlin222/dotfiles --skill hookReview the files below or copy the command above to add this skill to your agents.
---
name: hook
description: Hook control - enable, disable, and manage Claude Code hooks. Use when you need to manage, debug, or monitor Claude Code hooks for the current session.
---
# Hook Management System
Manage Claude Code hooks for the current session.
## When to use
- When you need to check the status of Claude Code hooks
- When you want to temporarily disable a noisy or problematic hook
- When debugging hook behavior or performance issues
- When monitoring hook execution metrics
## Usage
```
/hook status # Show all hooks and their status
/hook list # List available hooks with descriptions
/hook disable [hook-name] # Temporarily disable a hook
/hook enable [hook-name] # Re-enable a disabled hook
/hook profile # Show hook performance metrics
/hook logs [hook-name] # View recent logs for a hook
```
## Instructions
When this command is invoked:
### /hook status
1. Read `~/.claude/settings.json`
2. Parse the hooks configuration
3. Check `~/.claude/hooks/.disabled` for disabled hooks
4. Display in a formatted table:
- Hook type (SessionStart, PreToolUse, PostToolUse, and others)
- Matcher pattern
- Command/Prompt
- Status (enabled/disabled)
### /hook list
1. Scan `~/.claude/hooks/` directory
2. List each hook file with:
- Filename
- Description (from docstring)
- Trigger type
- Last modified
### /hook disable [hook-name]
1. Create/update `~/.claude/hooks/.disabled` file
2. Add the hook name to the disabled list
3. Hooks check this file before running
4. Note: Changes persist until re-enabled
### /hook enable [hook-name]
1. Read `~/.claude/hooks/.disabled` file
2. Remove the hook name from the disabled list
3. Confirm the hook is re-enabled
### /hook profile
1. Read `~/.claude/logs/hook_metrics.jsonl`
2. Calculate average execution time per hook
3. Show:
- Hook name
- Avg execution time (ms)
- Total calls
- Success rate
- Token impact estimate
### /hook logs [hook-name]
1. Find log files in `~/.claude/logs/`
2. Filter by hook name
3. Show last 20 entries
4. Include timestamp, result, and any errors
## Examples
```bash
# Check current hook status
/hook status
# Disable noisy notifications temporarily
/hook disable notification
# Re-enable when ready
/hook enable notification
# Check performance impact
/hook profile
# Debug a specific hook
/hook logs post_tool_use
```
## Notes
- Disabled state uses `~/.claude/hooks/.disabled` file
- Performance data from `~/.claude/logs/hook_metrics.jsonl`
- Hooks check disabled state before executing
- Session-based disabling (resets on restart)