When Claude Code runs in permission mode, Untether shows inline buttons in Telegram so you can approve or deny tool calls from your phone.
Buttons appear when Claude Code wants to:
- Edit or create a file (Edit, Write, MultiEdit)
- Run a shell command (Bash)
- Exit plan mode (ExitPlanMode)
- Ask you a question (AskUserQuestion)
Other tool calls (Read, Glob, Grep, WebSearch, etc.) are auto-approved — they don't change anything, so you won't be interrupted for them.
When a permission request arrives, you see a message with the tool name and a compact diff preview, plus three buttons:
| Button | What it does |
|---|---|
| Approve | Let Claude Code proceed with the action |
| Deny | Block the action and ask Claude Code to explain what it was about to do |
| Pause & Outline Plan | Stop Claude Code and require a written plan before continuing (only appears for ExitPlanMode) |
| Let's discuss | Talk about the plan before approving or denying (only appears after outline is written) |
Buttons clear immediately when you tap them — no waiting for a spinner.
!!! untether "Untether"
▸ Permission Request [CanUseTool] - tool: Edit (file_path=src/main.py)
📝 src/main.py
- import sys
+ import sys
+ from pathlib import Path
For tools that modify files, the approval message includes a compact diff so you can see what's about to change before deciding:
- Edit: 📝 file path, removed lines (
- old) and added lines (+ new), up to 4 lines each - Write: 📝 file path, then the first 8 lines of content to be written
- Bash:
$ command(up to 200 characters)
This lets you make informed approve/deny decisions without leaving Telegram.
!!! untether "Untether"
▸ Permission Request [CanUseTool] - tool: Edit (file_path=src/main.py)
📝 src/main.py
- import sys
+ import sys
+ from pathlib import Path
!!! note "After plan approval" When you approve a plan outline (see Plan mode), diff previews are skipped for the rest of the session — tools are auto-approved since you already reviewed the plan.
When Claude Code calls AskUserQuestion, Untether renders the question with interactive option buttons in Telegram:
- Option buttons — tap any option to answer instantly. Claude Code receives your choice and continues.
- "Other (type reply)" — tap this to type a custom answer. Send your reply as a regular message and Untether routes it back to Claude Code.
- Multi-question flows — if Claude Code asks multiple questions, they appear one at a time (e.g. "1 of 3"). Answer each to step through the sequence.
- Deny — tap Deny to dismiss the question. Claude Code proceeds with its default assumptions.
Toggle ask mode on or off via /config → Ask mode. When off, questions are auto-denied and Claude Code proceeds with defaults.
!!! untether "Untether" ❓ Which test framework should I use?
When approval buttons appear, Untether sends a separate notification message so you don't miss it — even if your phone is locked or you're in another app.
Approval-related messages (notifications, button messages) are automatically deleted when the run finishes, keeping your chat clean.
You can configure which tools require approval and which are auto-approved. By default, only ExitPlanMode and AskUserQuestion require user interaction — all other tools are approved automatically.
To change this behaviour, adjust the permission mode. See Plan mode for details.
Claude Code is the only engine with interactive mid-run approval buttons. Other engines offer pre-run policies that control what the agent is allowed to do before it starts:
Toggle via /config → Approval policy:
| Policy | CLI flag | Behaviour |
|---|---|---|
| Full auto (default) | (none) | All tools approved — Codex runs without restriction |
| Safe | --ask-for-approval untrusted |
Only trusted commands run; untrusted tools are blocked |
This is a pre-run policy — Codex doesn't pause mid-run to ask for permission. The policy is set before the run starts.
Toggle via /config → Approval mode:
| Mode | CLI flag | Behaviour |
|---|---|---|
| Read-only (default) | (none) | Write tools blocked — Gemini can only read files |
| Edit files | --approval-mode auto_edit |
File reads and writes OK, shell commands blocked |
| Full access | --approval-mode yolo |
All tools approved — full autonomy |
This is also a pre-run policy. Gemini CLI doesn't have interactive mid-run approval.
Both policies persist per chat via /config and can be cleared back to the default. See Inline settings for the full /config menu reference.
- Plan mode — control when and how approval requests appear
- Inline settings —
/configmenu for toggling approval policies - Commands & directives — full command reference
- Claude Code runner — technical details of the control channel


