🔔 cc-remote-approval — so Claude Code's long-running tasks don't stall waiting for your approval
😩 The pain
You kick off a long Claude Code task, step away to do something else, come back —
and the agent is frozen on "Approve this Bash?" / "Pick an option" / "Fill in this
MCP form." Those twenty minutes? Nothing moved.
Every approval point in Claude Code is a wall:
- Bash / Edit / Write permissions
- AskUserQuestion options
- MCP Elicitation forms
- The idle wait at the end of every turn
The moment you're away from the screen, the agent stops working.
✨ The fix
cc-remote-approval is a Claude Code plugin. When Claude needs approval or asks a
question:
- The native local dialog still shows (no replacement, no hijacking)
- A background hook starts a timer — 20s by default
- No local response → the request is forwarded to Telegram, with full context and buttons
- On your phone, tap ✅ Allow / ❌ Deny / ⭐ Always, or type an option
- Whichever side responds first wins; the other side auto-syncs
📱 On the subway, between meetings, scrolling before bed — you're away from the
screen, the agent keeps moving.
🛠 Features
- Pure Python stdlib, zero third-party dependencies
- Local-first: no external calls other than the Telegram API
- Concurrency-safe across sessions: flock + pending queue — multiple agents can request approvals in parallel without crossing wires
- Hook-level integration — works across CLI, desktop, and plugins
- 📖 Full context button: expand the last N turns of the conversation in one tap when the truncated preview isn't enough
- SessionStart hint injection: steers Claude toward the AskUserQuestion tool so choices render as buttons on your phone, instead of making you type a number
🔒 Security
- 100% local: data flows directly between your machine ↔ Telegram — no self-hosted server, no cloud relay, zero analytics or telemetry
- Pure Python stdlib, zero third-party deps → minimal supply-chain surface
- Bot token stays in process memory: never appears in ps, never written to logs. Sensitive content (API keys, passwords, tokens, etc.) is auto-masked before anything leaves your machine
🤔 Anthropic already has options — why build another?
Anthropic ships /remote-control and an official telegram plugin, but in practice
both have constraints:
- /remote-control is web-based: you have to keep a browser tab open and actively watch it; no push-notification model; doesn't support the Claude Code desktop app.
- Official telegram plugin: concurrent sessions steal each other's messages; the setup/startup flow is a bit clunky; also no desktop support.
💡 Recommended config: flip Stop hook on for full-workflow coverage
Set stop_hook_enabled: true
- Before the agent idles each turn, Telegram gets a message with Continue / Dismiss buttons
- Tap Continue, reply with your next instruction, and the agent picks it up
- The whole loop — approvals, questions, forms, "what's next?" — can now happen from your phone
- Side effect: each turn blocks for up to stop_wait_seconds (default 180s); if you're at the screen and don't want to wait, just press ESC in Claude Code to skip
GitHub: Manta-Network/cc-remote-approval
Install:
/plugin marketplace add Manta-Network/cc-remote-approval
/plugin install cc-remote-approval@manta
Or just paste the GitHub link into Claude Code and ask it to install.

Top comments (0)