By codethread
Push notifications for Claude Code via cc-notify server (Stop, PermissionRequest, activity tracking)
Local notification filter for AI coding tools. Debounces notifications so you only get pinged when a tool is genuinely waiting for you — not when you're actively working.
Focus tracking currently supports tmux, with the design open to other terminals. See specs/claude-code-plugin.md for details.
This repo doubles as a Claude Code plugin. Once enabled, it automatically hooks into Stop, PermissionRequest, UserPromptSubmit, and SessionEnd events — no manual hook configuration needed.
Add to your settings.json:
{
"extraKnownMarketplaces": {
"cc-notify-marketplace": {
"source": { "source": "github", "repo": "codethread/cc-notify" }
}
},
"enabledPlugins": {
"cc-notify@cc-notify-marketplace": true
}
}
For tmux focus tracking, add this to your tmux.conf:
set-hook -g pane-focus-in 'run-shell "~/.claude/plugins/data/cc-notify-cc-notify-marketplace/tmux-focus.js"'
See specs/claude-code-plugin.md for how this works.
Requires Bun and a Pushover account.
Set your Pushover credentials via environment variables or a .env file:
PUSHOVER_CC_KEY=<your pushover application token>
PUSHOVER_DEV_KEY=<your pushover user key>
Start the server:
bun run src/main.ts
The server picks an available port starting at 7777 and writes it to $XDG_RUNTIME_DIR/cc-notify.port for service discovery.
All endpoints use http://localhost:<port>.
| Endpoint | Method | Description |
|---|---|---|
/notify | POST | Schedule a notification (title, session_id, message, optional notify_at epoch milliseconds) |
/activity | POST | Cancel a pending notification (session_id) |
/toggle | GET | Toggle notifications on/off |
/health | GET | Health check |
PORT=$(cat "$XDG_RUNTIME_DIR/cc-notify.port")
# schedule a notification
curl -X POST "http://localhost:$PORT/notify" \
-H 'Content-Type: application/json' \
-d '{"title": "Task done", "session_id": "abc", "message": "Build complete"}'
# schedule for a specific time from the CLI
echo "Build complete" | cc-notify --after 4h "Task done"
echo "Build complete" | cc-notify --at "2026-06-14 17:30" "Task done"
# cancel it (user is active)
curl -X POST "http://localhost:$PORT/activity" \
-H 'Content-Type: application/json' \
-d '{"session_id": "abc"}'
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub codethread/cc-notify --plugin cc-notifyPhase-based development workflow: What, How, Build. Structured planning with research, learning tests, and prototyping before implementation.
Pithos hooks for Claude Code. Tracks runs/tasks/artifacts for spawner-launched sessions.
Scope gatekeeper agent that pushes back on unnecessary features and complexity. Delegate to Karen before implementing new features to challenge necessity, detect optimistic bias, and insist on the simplest solution.
Opinionated project architecture bootstrapping and migration
No description provided.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.