DEV Community

Dan
Dan

Posted on

Approve Claude Code permission requests remotely

🔔 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.

cc-remote-approval

✨ 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.

Top comments (0)