{
  "markdown": "# cc-terminal-notifier\n\nClaude Code hook that sends native terminal notifications (bell, OSC escape sequences) when Claude Code needs your attention.\n\n## Install (Plugin)\n\n```\n/plugin marketplace add matjic/cc-terminal-notifier\n/plugin install cc-terminal-notifier\n```\n\nThat's it — hooks are registered automatically.\n\n## Install (Manual)\n\nIf you prefer manual setup, install globally via npm:\n\n```bash\nnpm install -g @matjic/cc-terminal-notifier@0.1.0\n```\n\nThen add the following to your `~/.claude/settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"Notification\": [\n      {\n        \"matcher\": \"permission_prompt|idle_prompt|elicitation_dialog\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"cc-terminal-notifier\"\n          }\n        ]\n      }\n    ],\n    \"Stop\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"cc-terminal-notifier\"\n          }\n        ]\n      }\n    ],\n    \"SubagentStop\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"cc-terminal-notifier\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\nOr run directly with npx (replace `cc-terminal-notifier` with `npx @matjic/cc-terminal-notifier@0.1.0` in the hooks above).\n\n## Supported Terminals\n\n| Terminal | Method | Notification Style |\n| --- | --- | --- |\n| Kitty | OSC 99 | Desktop notification with title + body |\n| WezTerm | OSC 99 | Desktop notification with title + body |\n| foot | OSC 99 | Desktop notification with title + body |\n| Ghostty | OSC 777 | Desktop notification with title + body |\n| iTerm2 | OSC 9 | Desktop notification with message |\n| All others | Bell | Terminal bell (flash/sound) |\n\n## Configuration\n\nOptionally create `~/.config/claude-code/terminal-notifier.json` to customize behavior:\n\n```json\n{\n  \"enabled\": true,\n  \"method\": \"auto\",\n  \"showProjectName\": true,\n  \"events\": {\n    \"permission\": { \"enabled\": true },\n    \"complete\": { \"enabled\": true },\n    \"subagent_complete\": { \"enabled\": false },\n    \"question\": { \"enabled\": true }\n  },\n  \"messages\": {\n    \"permission\": \"Claude Code needs permission\",\n    \"complete\": \"Claude Code has finished\",\n    \"subagent_complete\": \"Subagent task completed\",\n    \"question\": \"Claude Code has a question\"\n  }\n}\n```\n\n### Options\n\n- **enabled** — Global on/off switch (default: `true`)\n- **method** — Notification method: `\"auto\"`, `\"bell\"`, `\"osc9\"`, `\"osc777\"`, `\"osc99\"` (default: `\"auto\"` — auto-detects from `TERM_PROGRAM`)\n- **showProjectName** — Include project directory name in notification title (default: `true`)\n- **events** — Per-event overrides. Each event can have:\n  - **enabled** — Enable/disable this event (or use `true`/`false` shorthand)\n  - **method** — Override the notification method for this event\n- **messages** — Custom notification messages per event type\n\n### Event Types\n\n| Event | Hook | Default |\n| --- | --- | --- |\n| `permission` | Notification (permission_prompt) | Enabled |\n| `question` | Notification (idle_prompt, elicitation_dialog) | Enabled |\n| `complete` | Stop | Disabled |\n| `subagent_complete` | SubagentStop | Disabled |\n\n## Troubleshooting\n\n**No notification appears:**\n- Check that your terminal supports the detected method, or set `method` explicitly in the config\n- Verify the hook is configured correctly in `~/.claude/settings.json`\n- Test manually: `echo '{\"hook_event_name\":\"Notification\",\"notification_type\":\"permission_prompt\",\"cwd\":\"/tmp\",\"session_id\":\"test\",\"transcript_path\":\"\",\"permission_mode\":\"default\",\"message\":\"test\"}' | cc-terminal-notifier`\n\n**Notification goes to wrong output:**\n- The tool writes escape sequences to `/dev/tty` directly, avoiding stdout. If `/dev/tty` is unavailable, it falls back to stderr.\n\n## License\n\nApache-2.0\n",
  "bytes": 3769,
  "sha": "171e2400f662a97868caddd911cbedb72f97902785e08cb4e1f4ad25570acd7d",
  "repo_slug": "matjic/cc-terminal-notifier",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_matjic_cc_terminal_notifier_cc_terminal__d5517bbe/readme"
}