Remote Control: mode dropdown shows "Manual" for a session running in `auto` until its first turn

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Jul 27, 2026

What's wrong

For a Remote Control session that is running in auto, the claude.ai / iOS mode dropdown shows
Manual until the session takes its first turn. After the first turn it corrects itself to Auto
with no user action. The permission mode is applied correctly the whole time — only the pre-first-turn
label is wrong.

This is not #29214 / #71518. Those report the host's permission mode never taking effect (prompts
still appear). Here the mode does take effect: a Bash call on this session ran with no permission
prompt. The bug is purely what the dropdown displays before the session's first turn.

What should happen

The dropdown should reflect the session's actual mode, or show an explicit unknown/loading state — not
a specific and more restrictive mode the session is not in. Per
code.claude.com/docs/en/permission-modes ("Web and mobile" tab, Remote Control bullet):

The dropdown shows the mode the local session is in, including a mode set from the terminal, and updates when the mode changes in the app or in the terminal. The one exception is Bypass permissions: the session never reports that mode to claude.ai, so switching into it from the terminal doesn't change what the dropdown shows.

Steps to reproduce

  1. On the host, start a Remote Control server in auto mode:

``bash
claude remote-control --spawn same-dir --permission-mode auto
`
(User settings also carry
"permissions": { "defaultMode": "auto" }`.)

  1. In the Claude iOS app, open that session from the Code tab. Do not touch the mode chip.
  2. Observe the chip → it reads Manual. (Session has zero turns at this point.)
  3. Send any message.
  4. Observe the chip again → it now reads Auto.
  5. On the host, read ~/.claude/projects/<slug>/<sessionId>.jsonl — every user record carries

"permissionMode": "auto", including the first one, sent while the chip read Manual.

Evidence

First turn, on a session with zero prior turns, chip observed as Manual immediately before sending:

{ "type": "user", "message": { "role": "user", "content": "hey" },
  "timestamp": "2026-07-27T12:00:35Z",
  "permissionMode": "auto",
  "promptSource": "sdk", "entrypoint": "sdk-cli",
  "version": "2.1.220" }

Second turn, ~1 h later — run the command: echo hi — executed with no permission prompt, and the
chip by then read Auto. The chip was never tapped. Both user records in the session carry
"permissionMode": "auto"; no other value appears in the transcript.

How reliably

Observed on three sessions across two days (two projects), each read while the session had zero
turns
— consistent every time. The self-correction after the first turn was verified once,
deliberately, on the session above. We have not tested other modes, other clients, or older versions.

Environment

  • Claude Code 2.1.220 (host), Windows 11. iOS client build not recorded.
  • Session type: Remote Control (not a cloud session)
  • Regression: unknown — this is the first time we looked at it

Why it's worth fixing

Manual is the most restrictive of the three modes the Remote Control dropdown offers, so the wrong
label errs toward implying more oversight than the session is applying. It also produces a real
workaround-superstition: we had a documented habit of "tap the chip → Auto on every new session", which
turns out to have been changing nothing — the session was already in auto and the chip was about to say
so.

View original on GitHub ↗