From telegram-notify
Sends a Telegram notification when Claude Code finishes work in a project. Wired as a Stop hook in the telegram-notify plugin, so it fires automatically at the end of every assistant turn (with a per-session cooldown to avoid spam). The model does not normally need to invoke this skill — it runs unattended. The bundled CLI scripts/send_completion_message.py is also available for explicit mid-session pings ("step 1 done, starting deploy").
How this skill is triggered — by the user, by Claude, or both
Slash command
/telegram-notify:send-completion-messageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A drop-in Telegram notifier for Claude Code completion events. Lives inside the **telegram-notify** plugin and is wired up as a `Stop` hook by `<plugin_root>/hooks.json`.
A drop-in Telegram notifier for Claude Code completion events. Lives inside the telegram-notify plugin and is wired up as a Stop hook by <plugin_root>/hooks.json.
Claude Code emits a Stop event after each assistant turn ends. The bundled hooks/stop-hook.py:
session_id, transcript_path, cwd, …).✅ Claude Code finished in \` at HH:MM` and pulls the last assistant message from the transcript as a short summary (≤300 chars).scripts/send_completion_message.py, which POSTs to the Telegram Bot API.Reads from environment:
| Variable | Required | Default | Purpose |
|---|---|---|---|
TELEGRAM_BOT_TOKEN | yes | — | Bot token from @BotFather |
TELEGRAM_CHAT_ID | yes | — | Where to send the notification |
TELEGRAM_API_BASE | no | https://api.telegram.org | Override for users behind a proxy / DPI block |
TELEGRAM_COMPLETION_COOLDOWN_SECONDS | no | 600 | Per-session cooldown between sends. 0 disables cooldown. |
TELEGRAM_COMPLETION_DISABLED | no | — | Set to 1/true/yes to make the hook a silent no-op |
The same TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID used by the approval-gate skill works here — no separate bot needed.
The model can also call the CLI directly to ping the user without waiting for Stop:
python "$CLAUDE_PLUGIN_ROOT/skills/send-completion-message/scripts/send_completion_message.py" \
--text "Step 1 of 3 done — starting deploy" \
--summary "All tests green; about to run \`npm run deploy:prod\`."
Exit codes:
0 — sent successfully3 — config error (missing TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID)4 — Telegram API or network errorThe CLI does not block waiting for any reply — it's strictly fire-and-forget. If you need a yes/no decision, use approval-gate instead.
TELEGRAM_COMPLETION_COOLDOWN_SECONDS=0 and pre-emptively call the CLI with a redacted --summary.TELEGRAM_CHAT_ID resolves to. Verify it's a private chat before enabling on a shared/work bot.TELEGRAM_COMPLETION_DISABLED=1 is the cleanest off-switch when you don't want the harness to talk to Telegram (e.g. on flaky network).See README.md for the one-time setup walk-through and the hooks/settings.example.json snippet for installing without the plugin layer.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub supperik/telegram-notify --plugin telegram-notify