[BUG] Remote Control Being Turned on by Default
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 7 comments · opened Aug 20, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
After the last update the remote control is being turned on by default for all sessions.
What Should Happen?
Anthropic should not decide without my explicit permission to turn any remote control features on.
Error Messages/Logs
Every session I start /rc is in the bottom corner.
Steps to Reproduce
- Start Claude Code
- /rc is enabled
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
v2.1.236
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_
Showing cached comments. Read the full discussion on GitHub ↗
6 Comments
Confirming a version of this also happens on Linux (Ubuntu 24.04.4 LTS, GNOME Terminal, native install) — so this isn't Windows/PowerShell-specific, despite the current label. One difference from the original report, though: in my case it was not every session. I had 3 interactive sessions running concurrently — 2 that had been open since much earlier, and 1 started later that same night. Only the one started later showed /rc active; the two older ones did not, and are still running right now without it.
My guess at the mechanism, based on that: Claude Code caches feature-flag/config state per-process (~/.claude.json literally has a cachedGrowthBookFeatures cache), so this is probably not "every session for this account" flipping on at once — it's more likely a server-side default changing at some point in time, which only a process that starts (and fetches fresh flags) after that point would pick up. Already-running sessions would keep whatever they cached at their own startup and not retroactively pick up the new default until restarted. That would explain the split cleanly without needing per-session randomness or anything account-wide-and-simultaneous.
My case:
What I ruled out before concluding this isn't a local misconfiguration:
Since default is documented (/docs/en/remote-control#enable-remote-control-for-all-sessions) to fall back to "your organization's admin default if one is set, otherwise Claude Code's current default" — and there's no org admin on an individual plan — this points at a server-side default for the default state itself, not a client-side bug in reading a local setting. Would be good to get confirmation from someone at Anthropic on what that fallback currently resolves to and why, and on how many times/when this has connected on affected accounts — this isn't just a UI annoyance, since a live Remote Control connection uploads session transcripts to Anthropic's servers.
<img width="755" height="101" alt="Image" src="https://github.com/user-attachments/assets/64388a56-7dbe-418b-b1c6-e430475452e4" />
Setting is OFF, still all my sessions start with remote control 🤬
Workaround that works: turn the setting ON, then back OFF. After that Claude Desktop respects it and new sessions start with Remote Control off.
The reason looks like the preference is only persisted on a state change. Before touching the toggle,
preferencesin~/Library/Application Support/Claude/claude_desktop_config.jsoncontained no remote-control key at all. Flipping it ON and then OFF created:So a toggle that renders as off but has never been touched has nothing stored, and the auto-enable path has no stored
falseto honor — which is why the setting appears to be ignored until you cycle it.<details>
<summary>Debug info</summary>
Remote Control auto-enables on every new Claude Code session (desktop app)
_Report compiled 2026-08-21. IDs for org / account / session / environment are redacted below as
<ORG_ID>,<ACCOUNT_ID>, etc., and working-directory names are anonymized asproject-a,project-b, … (each placeholder is a distinct real project, used consistently throughout).Real values available on request if this is filed privately._
Summary
Since 2026-08-21, every newly created Claude Code session in the Claude desktop app starts with
Remote Control already ON. No prompt is shown, and there is no discoverable client-side setting to
opt out — the only lever is toggling it off manually, per session, after the session already exists.
The behaviour is driven by the server-side flag
tengu_ide_rc_auto_enable: true, combined withthe device having consented to Remote Control once in the past.
Environment
| Item | Value |
| --- | --- |
| Claude desktop app | 1.34493.1 (CFBundleShortVersionString == CFBundleVersion) |
| Bundled claude-code | 2.1.237 |
| Agent SDK | 0.3.237 |
| OS | macOS 27.0 (build 26A5406e), arm64 |
| Entrypoint |
CLAUDE_CODE_ENTRYPOINT=claude-desktop|| App bundle mtime | 2026-08-21T02:14:36 (updated the morning the behaviour appeared) |
| claude-code payload cached | 2026-08-21T08:24:25 |
Observed behaviour
Per-session metadata lives in:
A field
remoteControlAutoEligibleappears in that metadata. Across 132 stored sessions:2026-08-21T04:37:12.true, 2 arefalse.2026-08-21T10:07onward was created withtrueand an attachedbridgeSessionIdsentry.Session timeline (most recent 12,
cwdbasename only):Relevant flags and state
From
~/.claude.json→cachedGrowthBookFeatures:Consent / pairing state, also
~/.claude.json(top level):~/Library/Application Support/Claude/bridge-state.json:So consent was granted once historically; the auto-enable path appears to treat that as standing
permission for all future sessions rather than asking again.
Note:
~/.claude/settings.jsoncontains"remote": { "defaultEnvironmentId": "env_<REDACTED>" }.This is the cloud environment default for remote agents and is unrelated to Remote Control —
ruled out as a cause.
Attempted workaround and why it fails
Edited
~/.claude.jsonto settengu_ide_rc_auto_enable: false(valid JSON verified after edit,backup kept). Result:
~/.claude.jsonwholesale — the key came back astrue, and its line number moved from 720 to 499, i.e. the entire file was regenerated, not patched.remoteControlAutoEligible: true.Conclusion:
cachedGrowthBookFeaturesis a server-owned cache. Editing it is not a workaround —it is silently reverted on the next feature fetch, within minutes, while the app is running.
Reproduction
(
hasUsedRemoteControl: true,bridge-state.json→userConsented: true).tengu_ide_rc_auto_enable: truein the cached flag set.~/Library/Application Support/Claude/claude-code-sessions/<ACCOUNT_ID>/<ORG_ID>/local_<uuid>.json.Actual:
remoteControlAutoEligible: true, abridgeSessionIdsentry is present, and the sessionis remote-controllable from the moment it opens, with no prompt.
Expected: either the session starts with Remote Control off until explicitly enabled, or a
persistent per-device/per-account preference exists to opt out of auto-enable.
Gap
There is no durable opt-out. Searched and found nothing in:
~/.claude/settings.json,~/.claude/settings.local.json.claude/settings.json,.claude/settings.local.json~/Library/Application Support/Claude/claude_desktop_config.json(preferencesblock —only
remoteToolsDeviceNameis remote-related)~/Library/Application Support/Claude/config.jsoncom.anthropic.claudefordesktopTurning the toggle off writes
remoteControlAutoEligible: falsefor that one session only(observed on this session at 10:47:46, and on the 04:37 session). Subsequent new sessions are
unaffected and come back up with
true.Ask
A persisted setting — e.g.
remoteControlAutoEnable: falsein~/.claude/settings.jsonor in thedesktop app's preferences — that survives app restarts and flag refreshes.
</details>
There is a durable opt-out -- it's just not where people have been looking. In
~/.claude/settings.json:It's a documented key in
claude-code-settings.schema.json, which ships inside the VS Code extension. Per its own description it covers claude.ai/code,claude remote-control, the--remote-control/--rcflags, auto-start, and the in-session toggle.Two reasons it hasn't turned up in this thread. The schema describes it as "typically set in managed settings," so it reads as an enterprise-admin knob rather than something an individual user can set -- but it is read from normal user settings. And it's a separate key from
remoteControlAtStartup, which is the narrower "don't auto-start, but keep the feature available" version and is the one everyone has been testing.I checked the schema shipped in extension 2.1.235 and 2.1.241 and the key is present in both, so this is not a recent addition -- it has been available the whole time this has been happening.
Caveat on my end: I set this a few minutes ago and have not yet confirmed across a restart that it beats the server-side
tengu_ide_rc_auto_enableflag at runtime. Sharing now because the thread's current conclusion is that no opt-out exists, and that appears to be wrong. Would be good if someone with the desktop-app repro confirms it there too.None of which changes the actual complaint -- an opt-out you have to reverse-engineer out of a bundled JSON schema is not consent. The default is still wrong.
I can confirm this and traced the actual mechanism — it's not a config regression on the user's end, it's server-driven.
I inspected the shipped VS Code extension (anthropic.claude-code, tested at v2.1.250). On session start, the extension receives a config payload from Anthropic's backend containing flags remote_control_auto_enable, remote_control_auto_on_by_default, and ide_rc_auto_enable_gate — the same tengu_*-style GrowthBook experiment gates cached elsewhere in Claude Code's local state. When that combination evaluates true (and the session isn't a "teleported" one continued from claude.ai/code), the extension calls its internal remote-control toggle automatically, before any user action.
There's a one-time informational toast that's supposed to disclose this ("Keep working from anywhere... To keep sessions in this IDE only, turn off 'Enable Remote Control for all sessions' in Claude settings.") — but it's gated by a separate experiment flag and a max-shown-count in extension global state, independent of the flag that actually turns Remote Control on. So it's possible for Remote Control to activate with no notice shown at all, which matches what's being reported here (TUI/CLI, not just VS Code — same underlying remote_control_auto_enable mechanism, so this isn't extension-specific).
I checked locally and confirmed:
Nothing in ~/.claude.json, ~/.claude/settings.json, ~/.claude/settings.local.json, or VS Code's settings.json sets any remoteControl* key.
No managed/enterprise settings file exists on the machine.
So this is a rollout being pushed server-side, not a local config change or a Desktop-app-specific toggle bug (that's #60356, which is different — a UI toggle not applying).
The actual off-switch (found in webview/index.js) is a setting literally labeled "Enable Remote Control for all sessions" — worth surfacing explicitly here since it's not obvious from the /rc indicator alone.
Given this contradicts the documented "off by default, opt-in only" behavior (code.claude.com/docs/en/remote-control) with no changelog entry describing the change, this reads as an undisclosed default flip via experiment gate rather than an intentional, documented feature change.
Observed in both Windows and Linux environments.
I observed this on Mac as well. It also seemed like "an undisclosed default flip via experiment gate" in my case.
The risk profile of Remote Control is very different from standard use of Claude Code. Not everyone (myself included) accepts that different risk profile. Enabling something like this by default is a major security risk.
Having an option to disable this isn't a sufficient solution given the security implications. Because this adds new/different security risks, it must be an opt-in feature.
As a side note, claude kept insisting that
/rcin the corner meant that this _wasn't_ enabled for the session. That was also wrong.I'm furious that I just saw my sessions all enable remote control without asking through claude-code cli.
Now I have to configure multiple dev machines to disable this by hand. You c***s should pay me per token
EDIT: You can't even disable it. It activates anyway, even if globally disabled in the config. Jesus christ.