afk-claude-telegram-bridge
npx skills add https://github.com/gmotyl/afk-claude-telegram-bridge-skill --skill afk-claude-telegram-bridge
Agent 安装分布
Skill 文档
AFK Claude Telegram Bridge
Remote-control Claude Code sessions from your phone via Telegram when AFK (away from keyboard).
When to Use
- “set up telegram bridge” / “configure telegram AFK”
- “enable remote control” / “activate AFK mode”
- “I want to control Claude from my phone”
- Installing this skill on a new machine
What This Skill Does
Installs a complete Telegram â Claude Code bridge that allows you to:
- Approve/deny tool calls from Telegram inline keyboards
- Continue tasks by sending new instructions when Claude finishes
- Auto-approve read-only tools (Read, Glob, Grep, WebSearch, WebFetch)
- Multi-session support â up to 4 concurrent sessions (S1-S4)
- Zero dependencies â Python stdlib only
Installation
Run the installer â it copies files, registers hooks, installs /afk and /back commands, and walks you through Telegram bot setup:
bash ~/.claude/skills/afk-claude-telegram-bridge/install.sh
The installer handles everything:
- Copies hook.py, hook.sh, bridge.py to
~/.claude/hooks/telegram-bridge/ - Installs
/afkand/backcommands to~/.claude/commands/ - Registers Stop, Notification, and PermissionRequest hooks in
~/.claude/settings.json - Prompts for your bot token and auto-detects your Telegram group
Restart Claude Code after installation to load the new /afk and /back commands.
Prerequisites
Before running the installer, create a Telegram bot:
- Open Telegram â search @BotFather â send
/newbot - Name it “Claude Bridge” (or your preferred name)
- Copy the bot token
- Create a Telegram Group with Topics enabled
- Add the bot to the group as Administrator
- Send a message in the group (so the bot can detect it)
Usage
Activate AFK Mode
In any Claude Code session:
/afk
You’ll see a confirmation on Telegram: “ð¡ S1 â AFK Activated”
Deactivate AFK Mode
/back
From Telegram
When Claude needs approval for a tool call, you’ll see:
ð S1 â Permission Request
Tool: Bash
`npm install express`
[â
Approve] [â Deny]
When Claude finishes a task:
â
S1 â Task Complete
I've implemented the login form...
[ð Let it stop]
Reply with text to send Claude a new instruction!
Multi-Session
With multiple sessions, prefix instructions:
S1: now add unit tests
S2: push to remote
File Structure
After installation:
~/.claude/hooks/telegram-bridge/
hook.sh â Bash entry point
hook.py â Hook logic
bridge.py â Telegram daemon
config.json â Bot token, chat_id, settings
state.json â Runtime state
daemon.log â Daemon log
ipc/ â Per-session IPC
~/.claude/commands/
afk.md â /afk command
back.md â /back command
Commands Reference
| Command | Description |
|---|---|
hook.sh --activate <session_id> [project] |
Activate AFK mode |
hook.sh --deactivate <session_id> |
Deactivate AFK mode |
hook.sh --status |
Show active sessions |
hook.sh --setup |
Configure bot token/chat_id |
hook.sh --help |
Show help |
Troubleshooting
- Daemon log:
cat ~/.claude/hooks/telegram-bridge/daemon.log - Status:
~/.claude/hooks/telegram-bridge/hook.sh --status - Manual start:
python3 ~/.claude/hooks/telegram-bridge/bridge.py - Kill daemon: Check PID in
state.json, thenkill <pid>
Dependencies
- Python 3 (stdlib only â no pip packages needed)
- bash
- Telegram bot token
Credits
Originally built by Greg Motyl (@gmotyl).