Skip to content

Instantly share code, notes, and snippets.

@petekp
Created January 7, 2026 19:24
Show Gist options
  • Select an option

  • Save petekp/4b179c0ae66f54df844b232395e1e663 to your computer and use it in GitHub Desktop.

Select an option

Save petekp/4b179c0ae66f54df844b232395e1e663 to your computer and use it in GitHub Desktop.
Claude Code audio notification when ready for input (macOS)
# Say Ready Hook for Claude Code (macOS)
Paste this into Claude Code:
---
Set up a "say ready" hook that announces the project name when you're ready for my input. This helps me know which terminal is ready when I have multiple sessions open.
Create ~/.claude/scripts/say-ready.sh with this content:
```bash
#!/bin/bash
input=$(cat)
stop_hook_active=$(echo "$input" | jq -r '.stop_hook_active // false')
if [ "$stop_hook_active" = "true" ]; then
exit 0
fi
lockfile="/tmp/say-ready-$(basename "$PWD" | tr -cs '[:alnum:]' '-').lock"
now=$(date +%s)
if [ -f "$lockfile" ]; then
last=$(cat "$lockfile")
if [ $((now - last)) -lt 10 ]; then
exit 0
fi
fi
echo "$now" > "$lockfile"
project_name=$(basename "$PWD" | tr -cs '[:alnum:]' ' ')
say -r 250 "$project_name ready"
```
Make it executable.
Then create ~/.claude/hooks/say-ready.md with this content:
```markdown
---
event: Stop
type: command
command: ~/.claude/scripts/say-ready.sh
---
```
Let me know when it's done so I can restart the session.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment