Audio Hook Events
Turn your AI Coding Assistant's lifecycle into real-time audio feedback.
hearing
Ambient Awareness
Know exactly what your agent is doing without switching tabs. ChatySpeak speaks the lifecycle of your coding tools.
bolt
Zero Friction
Simple GET requests make it compatible with every CLI, shell script, or IDE extension in existence.
variable_insert
Dynamic Context
Pass file names, test results, or error messages directly in the URL to hear customized spoken feedback.
Claude Code: Exhaustive Hook List
Map every Claude lifecycle event to a narrated ChatySpeak hook.
{
"hooks": {
"SessionStart": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=SessionStart", "method": "GET" } ],
"InstructionsLoaded": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=Notification&message=Rules%20Loaded", "method": "GET" } ],
"UserPromptSubmit": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=agent_thinking", "method": "GET" } ],
"PreToolUse": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=BeforeTool", "method": "GET" } ],
"PostToolUse": [
{ "matcher": "Write|Edit", "hooks": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=apply_edit&description=code%20changes", "method": "GET" } ] },
{ "matcher": "Read", "hooks": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=open_file", "method": "GET" } ] },
{ "matcher": "Search|Grep", "hooks": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=search", "method": "GET" } ] },
{ "matcher": "Bash", "hooks": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=run_code", "method": "GET" } ] }
],
"PostToolUseFailure": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=error&message=Tool%20Failed", "method": "GET" } ],
"PermissionRequest": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=Notification&message=Permission%20Required", "method": "GET" } ],
"SubagentStart": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=Notification&message=Subagent%20active", "method": "GET" } ],
"SubagentStop": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=task_complete", "method": "GET" } ],
"TaskCompleted": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=task_complete", "method": "GET" } ],
"Stop": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=task_complete", "method": "GET" } ],
"StopFailure": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=error&message=API%20Limit", "method": "GET" } ],
"SessionEnd": [ { "type": "http", "url": "http://localhost:5050/tts/?hook=SessionEnd", "method": "GET" } ]
}
}Audio Hook Reference
| Hook Key | Placeholder | Description / Condition |
|---|---|---|
| open_file | {file} |
Triggered when a file is opened for reading. |
| create_file | {file} |
Triggered when a new file is created. |
| delete_file | {file} |
Triggered when a file is deleted. |
| navigate_to_symbol | {symbol} |
Navigation to a class/definition. |
| search | {query} |
Global search or index query execution. |
| summarize_file | {file} |
Summarizing file content for context. |
| SessionStart | - |
When the agent session initializes or clears. |
| SessionEnd | - |
When the session is terminated or exited. |
| BeforeAgent | - |
Before agent starts planning the user request. |
| AfterAgent | - |
When the full agent turn completes. |
| agent_thinking | - |
While the model is processing or 'thinking'. |
| task_complete | - |
Success notification for the current task. |
| BeforeModel | - |
Immediately before calling the LLM. |
| AfterModel | - |
Immediately after LLM returns a response. |
| BeforeTool | {tool} |
Before a specific tool execution starts. |
| AfterTool | - |
After a specific tool has finished. |
| apply_edit | {description} |
When code modifications are applied. |
| refactor | {kind} |
When a refactoring operation occurs. |
| run_tests | - |
Start of test suite execution. |
| test_results | {passed}, {failed} |
Summary of test execution results. |
| run_code | {file} |
Executing a script or application. |
| error | {message} |
General error or tool failure notification. |
| Notification | {message} |
General system notification. |
| action_failed | {action} |
When a specific user action fails. |
| PermissionRequest | - |
When user permission is required. |
Tip: Customize these phrases in Settings > Text-to-Speech > Events.