[BUG] Claude Desktop/web remote control drops [1m] model suffix, silently downgrading 1M context to 200K
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?
When Claude Desktop or Claude Code web connects to a CLI session via /remote-control and sends a message, it issues a set_model control request with claude-opus-4-6 (no [1m] suffix), downgrading the session from 1M to 200K context. The change persists across /clear and /resume within the same process. Any session already using >200K tokens will immediately hit auto-compaction or "context limit reached."
What Should Happen?
Remote control clients should preserve the CLI session's model, including the [1m] suffix. A set_model without [1m] should not be sent if the session is already on [1m].
Error Messages/Logs
Steps to Reproduce
- Start Claude Code CLI v2.1.76:
claude --debug - Verify:
/contextshowsclaude-opus-4-6[1m] · 1000k tokens - Enable
/remote-control - Send a message from Claude Desktop (or Claude Code web)
/contextnow showsclaude-opus-4-6 · 200k tokens
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.76
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Under the hood
CLI debug log shows Desktop sending a set_model control request over the remote control bridge on initial connection, immediately before the first message:
20:09:03 [bridge:repl] Inbound control_request subtype=initialize
20:09:05 [bridge:repl] Inbound control_request subtype=set_model ← strips [1m]
20:09:05 [bridge:repl] Sent control_response for set_model result=success
20:09:05 [bridge:repl] Ingress message type=user: "Hi from Desktop"
After /model reselect, the second Desktop message only sends initialize — no set_model:
20:15:03 [bridge:repl] Inbound control_request subtype=initialize ← no set_model
20:15:15 [bridge:repl] Ingress message type=user: "Hi from Desktop again"
Desktop main.log from debug zip:
LocalAgentModeSessions.setModel: sessionId=local_..., model=claude-opus-4-6
LocalAgentModeSessions.sendMessage: sessionId=local_..., messageLength=150
Desktop calls setModel("claude-opus-4-6") — without [1m] — before sendMessage.
iPhone remote control is apparently not affected — no set_model event in CLI debug log.
Side effects
- Banner shows "Opus 4.6" instead of "Opus 4.6 (1M context)"
/modelmenu gains a phantom option (Opus 4.6 / claude-opus-4-6)
Workaround
| Action | Restores 1M? |
|--------|-------------|
| /model reselect | Yes — persists, Desktop won't downgrade again within same session |
| Restart claude | Yes |
| /clear | No |
| /resume (same process) | No |
| /resume (after restart) | Yes |
Tested on Claude for Mac v1.1.6679 (f8f4ff), CLI v2.1.76. Claude Code web also triggers the same behavior.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗