hooks added
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# HOOKS-README
|
||||
contains all the details, scripts, and instructions for the hooks
|
||||
|
||||
## Hook Events Overview - [Official 9 Hooks](https://docs.claude.com/en/docs/claude-code/hooks-guide)
|
||||
Claude Code provides several hook events that run at different points in the workflow:
|
||||
1. PreToolUse: Runs before tool calls (can block them)
|
||||
2. PostToolUse: Runs after tool calls complete
|
||||
3. UserPromptSubmit: Runs when the user submits a prompt, before Claude processes it
|
||||
4. Notification: Runs when Claude Code sends notifications
|
||||
5. Stop: Runs when Claude Code finishes responding
|
||||
6. SubagentStop: Runs when subagent tasks complete
|
||||
7. PreCompact: Runs before Claude Code is about to run a compact operation
|
||||
8. SessionStart: Runs when Claude Code starts a new session or resumes an existing session
|
||||
9. SessionEnd: Runs when Claude Code session ends
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before using hooks, ensure you have the following prerequisites installed for your operating system:
|
||||
|
||||
#### Windows
|
||||
- **Python**: `python --version`
|
||||
|
||||
#### macOS
|
||||
- **Python 3**: `python3 --version`
|
||||
- **Audio Player**: `afplay` (built-in, no installation needed)
|
||||
|
||||
#### Linux
|
||||
- **Python 3**: `python3 --version`
|
||||
- **Audio Player**: `sudo apt install pulseaudio-utils`
|
||||
|
||||
## Configuring Hooks (Enable/Disable)
|
||||
|
||||
Hooks can be easily enabled or disabled at both the global and individual levels.
|
||||
|
||||
### Disable All Hooks at Once
|
||||
|
||||
Edit `.claude/settings.local.json` and set:
|
||||
```json
|
||||
{
|
||||
"disableAllHooks": true
|
||||
}
|
||||
```
|
||||
|
||||
**Note:** The `.claude/settings.local.json` file is git-ignored, so each user can configure their own hook preferences without affecting the team's shared settings in `.claude/settings.json`.
|
||||
|
||||
### Disable Individual Hooks
|
||||
|
||||
For granular control, you can disable specific hooks by editing the hooks configuration files.
|
||||
|
||||
#### Configuration Files
|
||||
|
||||
There are two configuration files for managing individual hooks:
|
||||
|
||||
1. **`.claude/hooks/config/hooks-config.json`** - The shared/default configuration that is committed to git
|
||||
2. **`.claude/hooks/config/hooks-config.local.json`** - Your personal overrides (git-ignored)
|
||||
|
||||
The local config file (`.local.json`) takes precedence over the shared config, allowing each developer to customize their hook behavior without affecting the team.
|
||||
|
||||
#### Shared Configuration
|
||||
|
||||
Edit `.claude/hooks/config/hooks-config.json` for team-wide defaults:
|
||||
|
||||
```json
|
||||
{
|
||||
"disablePreToolUseHook": false,
|
||||
"disablePostToolUseHook": false,
|
||||
"disableUserPromptSubmitHook": false,
|
||||
"disableNotificationHook": false,
|
||||
"disableStopHook": false,
|
||||
"disableSubagentStopHook": false,
|
||||
"disablePreCompactHook": false,
|
||||
"disableSessionStartHook": false,
|
||||
"disableSessionEndHook": false
|
||||
}
|
||||
```
|
||||
|
||||
#### Local Configuration (Personal Overrides)
|
||||
|
||||
Create or edit `.claude/hooks/config/hooks-config.local.json` for personal preferences:
|
||||
|
||||
```json
|
||||
{
|
||||
"disablePostToolUseHook": true,
|
||||
"disableSessionStartHook": true
|
||||
}
|
||||
```
|
||||
|
||||
In this example, only the PostToolUse and SessionStart hooks are overridden locally. All other hooks will use the shared configuration values.
|
||||
|
||||
**Note:** Individual hook toggles are checked by the hook script (`.claude/hooks/scripts/hooks.py`). Local settings override shared settings, and if a hook is disabled, the script exits silently without playing any sounds or executing hook logic.
|
||||
|
||||
### Text to Speech (TTS)
|
||||
website used to generate sounds: https://elevenlabs.io/
|
||||
voice used: Samara X
|
||||
Reference in New Issue
Block a user