Sharing a Claude Code productivity tool I recently built ๐
๐ 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:
1. The native local dialog still shows (no replacement, no hijacking)
2. A background hook starts a timer โ 20s by default
3. No local response โ the request is forwarded to Telegram, with full context and
buttons
4. On your phone, tap โ
Allow / โ Deny / โญ Always, or type an option
5. 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.