Telegram notifications for Claude Code. Get pinged when tasks finish, fail, or need your input.
No phone calls, no WebSockets, no TTS. Just one HTTP POST to Telegram.
You kick off a long task in Claude Code ("refactor this module", "set up the training pipeline"), walk away, and get a Telegram ping when it's done — or when Claude needs a decision from you.
Takes about 5 minutes.
- Open Telegram, search for @BotFather, hit Start
- Send
/newbot, pick a name and username (must end inbot) - Copy the API token BotFather gives you
- Open a chat with your new bot and send it any message (e.g. "hi")
- Visit this URL in your browser (replace the token):
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - Find
"chat": {"id": 123456789}in the JSON — that number is your chat ID
git clone https://github.com/61-keys/notify-me.git
cd notify-me/server
bun installclaude mcp add notifyme \
-e NOTIFYME_TELEGRAM_BOT_TOKEN=your-token-here \
-e NOTIFYME_TELEGRAM_CHAT_ID=your-chat-id-here \
-- bun run /path/to/notify-me/server/index.tsRestart Claude Code and say:
"Send a test notification to my Telegram"
By default, Claude only uses the notification tools when you explicitly ask. To make it notify automatically after every task, create a CLAUDE.md file.
Global (applies to all projects) — create ~/.claude/CLAUDE.md:
## Notifications
You have a Telegram notification tool via the notifyme MCP server. Use it:
- Always call notify_done when you complete a task that took more than 30 seconds
- Always call notify_stuck when you need user input and are blocked
- Always call notify_error when a task fails with an error
- You do NOT need to be told "notify me" — do it automatically
- For quick/trivial tasks (single file edits, short answers), skip the notificationPer-project (one repo only) — create CLAUDE.md in the project root with the same content.
| Tool | What it does | Example message |
|---|---|---|
notify |
Send any message | Whatever you want |
notify_done |
Task completed | ✅ Done: Auth refactor — split into 3 files, tests passing |
notify_stuck |
Need user input | 🤔 Need your input: DB migration strategy? 1. Add column 2. New table |
notify_error |
Something failed | ❌ Failed: Deploy — Docker build error, missing DATABASE_URL |
# Just add "notify me" to any prompt:
"Refactor the auth module and notify me when done"
"Run the full test suite. Ping me on Telegram with results"
"Set up the CI pipeline. If you get stuck on anything, notify me"
# Or with CLAUDE.md set up, just give tasks normally:
"Refactor the auth module"
# Claude will notify you automatically when done
This is an MCP server that exposes 4 tools to Claude Code. When Claude calls a tool, the server makes a single POST request to the Telegram Bot API. That's the entire architecture.
Claude Code → MCP stdio → index.ts → Telegram Bot API → Your phone
Free. The Telegram Bot API has no usage fees.
- Bun runtime
- Claude Code
- A Telegram account
MIT