By dazuiba
Receive desktop notifications alerting you when Claude Code needs input or completes tasks, by dynamically managing terminal titles—clearing on prompt submit, prompting on notifications, setting on stop—and executing title.sh shell commands without bash or file writes.
npx claudepluginhub dazuiba/ccnotify
CCNotify provides desktop notifications for Claude Code, alerting you when Claude needs your input or completes tasks.
Starting from claude-code v1.0.95 (2025-08-31), any invalid settings in ~/.claude/settings.json will disable hooks. See Why not working for solutions.
Note: Currently compatible with macOS only.
# Create the directory if it doesn't exist
mkdir -p ~/.claude/ccnotify
# soft link ccnotify.py to the directory
ln -f ccnotify.py ~/.claude/ccnotify/
chmod a+x ~/.claude/ccnotify/ccnotify.py
# run this script, should print: ok
~/.claude/ccnotify/ccnotify.py
ok
ccnotify uses terminal-notifier for macOS notifications. Install it using Homebrew:
brew install terminal-notifier
For alternative installation methods and more information, visit: https://github.com/julienXX/terminal-notifier
Add the following hooks to your Claude configuration to enable ccnotify:
~/.claude/settings.json
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/ccnotify/ccnotify.py UserPromptSubmit"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/ccnotify/ccnotify.py Stop"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/ccnotify/ccnotify.py Notification"
}
]
}
]
}
To verify the notification system works, start a new Claude Code session and run:
after 1 second, echo 'hello'
You should see a macOS notification appear.
claude -p --model haiku -d hooks --verbose "hi"
Expected output:
[DEBUG] Found 1 hook commands to execute
[DEBUG] Executing hook command: ~/.claude/ccnotify/ccnotify.py UserPromptSubmit with timeout 60000ms
[DEBUG] Hook command completed with status 0: ~/.claude/ccnotify/ccnotify.py UserPromptSubmit
Actual output:
[DEBUG] Invalid settings in userSettings source - key: permissions.allow.0, error:.....
[DEBUG] Found 0 hook commands to execute
Reason: In September 2025, claude-code strengthened validation rules for settings.json. Any invalid configuration will disable hooks.
You need to modify the relevant configurations in ~/.claude/settings.json until the Invalid settings error stops appearing.
ccnotify tracks Claude sessions and provides notifications at key moments:
All activity is logged to ~/.claude/ccnotify/ccnotify.log and session data is stored in ~/.claude/ccnotify/ccnotify.db locally. No data is uploaded or shared externally.
Edit ~/.claude/settings.json and remove all hook commands related to ccnotify.
Remove all files with a single command:
rm -rf ~/.claude/ccnotify
Desktop notifications showing what Claude Code is working on - stay informed even when the terminal is not in focus. Optional sound alerts and AI summaries
Share bugs, ideas, or general feedback.
Smart notifications for Claude Code task statuses (Go implementation)
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Persistent memory system for Claude Code - seamlessly preserve context across sessions
Intelligent prompt optimization using skill-based architecture. Enriches vague prompts with research-based clarifying questions before Claude Code executes them