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.