Drive Claude Code from Telegram: code from your phone, approve every command with a tap, send screenshots. Plus an MCP server to message yourself back.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport — counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
ask_user
-
notify
-
telegram_ask
-
telegram_read_recent
-
telegram_send_document
-
telegram_send_message
-
telegram_send_photo
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 36a5bb7 · analyzer v33 · 2d ago
danger signals3
- suspicious endpoint api.telegram.org
expected for this server's purpose
akbarharyadi-claude-code-telegram-36a5bb7/doctor.py :228
url = f"https://api.telegram.org/bot{config.TELEGRAM_BOT_TOKEN}/getMe" - suspicious endpoint api.telegram.org
expected for this server's purpose
akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :32
API_ROOT = "https://api.telegram.org" - suspicious endpoint api.telegram.org
expected for this server's purpose
akbarharyadi-claude-code-telegram-36a5bb7/whoami.py :34
url = f"https://api.telegram.org/bot{config.TELEGRAM_BOT_TOKEN}/{method}"
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 19
filesystem 17
- fs akbarharyadi-claude-code-telegram-36a5bb7/ask_server.py :16
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/bot.py :18
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/bridge.py :21
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/chrome.py :16
import shutil - fs akbarharyadi-claude-code-telegram-36a5bb7/claude_runner.py :16
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/config.py :12
import shutil - fs akbarharyadi-claude-code-telegram-36a5bb7/doctor.py :15
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/hook_permission.py :16
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :19
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/opencode_runner.py :28
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/pr_review.py :26
import shutil - fs akbarharyadi-claude-code-telegram-36a5bb7/store.py :19
from pathlib import Path
show 5 more
- fs (weak) akbarharyadi-claude-code-telegram-36a5bb7/tests/live_opencode_check.py :14
from pathlib import Path - fs (weak) akbarharyadi-claude-code-telegram-36a5bb7/tests/test_bridge.py :13
from pathlib import Path - fs (weak) akbarharyadi-claude-code-telegram-36a5bb7/tests/test_pr_review.py :12
from pathlib import Path - fs (weak) akbarharyadi-claude-code-telegram-36a5bb7/tests/test_tg_format.py :8
from pathlib import Path - fs akbarharyadi-claude-code-telegram-36a5bb7/whoami.py :16
from pathlib import Path
shell / exec 3
- shell akbarharyadi-claude-code-telegram-36a5bb7/chrome.py :17
import subprocess - shell akbarharyadi-claude-code-telegram-36a5bb7/opencode_runner.py :25
import subprocess - shell (weak) akbarharyadi-claude-code-telegram-36a5bb7/tests/test_bridge.py :9
import subprocess
network 4
- net akbarharyadi-claude-code-telegram-36a5bb7/doctor.py :17
import httpx - net akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :21
import httpx - net akbarharyadi-claude-code-telegram-36a5bb7/opencode_runner.py :30
import httpx - net akbarharyadi-claude-code-telegram-36a5bb7/whoami.py :18
import httpx
secrets 2
- secrets akbarharyadi-claude-code-telegram-36a5bb7/bridge.py :53
"session_key": os.environ.get("CCTG_SESSION_KEY", ""), - secrets akbarharyadi-claude-code-telegram-36a5bb7/config.py :98
TELEGRAM_BOT_TOKEN = _clean(os.getenv("TELEGRAM_BOT_TOKEN"))
tool registrations 7
- ask_user akbarharyadi-claude-code-telegram-36a5bb7/ask_server.py :37
- notify akbarharyadi-claude-code-telegram-36a5bb7/ask_server.py :77
- telegram_send_message akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :84
- telegram_send_photo akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :116
- telegram_send_document akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :137
- telegram_read_recent akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :158
- telegram_ask akbarharyadi-claude-code-telegram-36a5bb7/mcp_server.py :181
declared dependencies 4
- mcp@>=1.2.0
- python-telegram-bot@>=21.6
- python-dotenv@>=1.0.1
- httpx@>=0.27