Claude Code v2.1.238~v2.1.239 Major Updates - Focused Improvements to Remote Control and Addition of keybindingFlavor Setting

Claude Code v2.1.238~v2.1.239 Major Updates - Focused Improvements to Remote Control and Addition of keybindingFlavor Setting

Here is a summary of the Claude Code v2.1.238 to v2.1.239 updates. Reliability improvements were focused on Remote Control, resolving issues such as disconnections during brief outages and operations from mobile devices not being reflected. Since there are many changes that will make a practical difference, we will walk you through how to use them step by step.
2026.08.22

This page has been translated by machine translation. View original

This is Ishikawa from the Cloud Business Division. I'll be summarizing the Claude Code v2.1.238 ~ v2.1.239 updates. Remote Control reliability has been improved, and these 2 versions contain a concentrated set of Remote Control-related changes that, while understated, I feel will make a real difference in day-to-day work. Today, I tried out Remote Control and will walk you through it step by step.

The previous update article is here.

https://dev.classmethod.jp/articles/20260820-cc-updates-v2-1-237/

Update Summary

This covers 2 versions (v2.1.238 ~ v2.1.239, August 20 ~ 21, 2026), with a total of 98 changes. The breakdown is 59 fixes, 20 improvements, 8 new features, 8 security, 2 performance, and 1 breaking change — a composition leaning more toward stability of existing features than new ones. In terms of themes, changes are concentrated in 3 areas: Remote Control and cross-session messaging, fullscreen mode, and the plugin marketplace.

The official X account (@ClaudeDevs) also posted that, since Remote Control was the top thing users wanted fixed last month, they've been working on improving its reliability.

https://x.com/ClaudeDevs/status/2090933155847143498

Notable Updates

Removal of double-press Ctrl+L / Cmd+K triggering /clear in fullscreen (v2.1.238)

This is the only breaking change in the covered range. Ctrl+L and Cmd+K in fullscreen mode have been changed to always perform only a screen redraw.

If you had this as a habit, I'd suggest getting used to /clear before updating. The before/after comparison is described in the "Breaking Changes" section below.

Concentrated improvements to Remote Control connectivity (v2.1.238 / v2.1.239)

Remote Control connection resilience has been improved, now tolerating temporary HTTP 403 rejections from network edges, VPNs, and proxies for up to 3 minutes, and naming the source of the block if it persists (v2.1.238). A bug where brief network interruptions caused delayed sign-in renewal, resulting in disconnection with "login expired," has also been fixed (v2.1.238).

For those using Remote Control on networks prone to dropping connections, I feel this fix will make a noticeably tangible difference.

Additionally, a set of bugs where operations from smartphones or the web weren't reaching or being reflected on the terminal side have been resolved together in v2.1.238 (individual details are listed in the "Fixes" section below).

If you rely on continuing work from a smartphone, it would be worth confirming that model selection and task stopping now work as expected.

Fix for double billing on Bedrock streaming (v2.1.239)

A bug has been fixed where, via a proxy that strips Content-Type headers from responses, Bedrock streaming was re-executing as non-streaming every turn, silently doubling the billable API calls. Also related to Bedrock, a bug causing startup hangs when using an SSO profile and awsAuthRefresh under an HTTPS proxy has been fixed (the pre-check for credentials now respects HTTPS_PROXY).

In environments using Bedrock via a proxy, there's a possibility that billing was silently inflating without anyone noticing, so I feel it's worth considering an early update.

Addition of keybindingFlavor setting (v2.1.238 / v2.1.239)

A keybindingFlavor setting has been added. Setting it to "readline" makes Ctrl+W in the prompt delete back to the previous whitespace, just like in Bash (v2.1.238). The default is "classic", and its behavior is unchanged. In v2.1.239, the scope was expanded to word-based key operations: Alt+F and Ctrl/Option+→ stop at the end of a word, Alt+D deletes up to that point (retrievable with Ctrl+Y), and punctuation is treated as a word boundary.

The more accustomed you are to Bash key operations, the more I think a single line of configuration will reduce input friction.

The setting is written in ~/.claude/settings.json as follows:

{
  "keybindingFlavor": "readline"
}

The official documentation introduces a way to verify this: type fix the bug in src/utils/foo.ts in the prompt and press Ctrl+W — with "readline", src/utils/foo.ts is deleted, while with "classic", only foo.ts is deleted.

Security fixes for masked input and fullscreen operations (v2.1.239)

Bugs have been fixed where text in masked input fields (password-style), such as login code fields, could be pasted elsewhere with Ctrl+Y, or saved to the prompt history when cleared with a double Esc press. Also fixed is a bug where simply clicking the terminal to bring the window back into focus in fullscreen mode would answer a permission prompt or press a button. The issue where requests rejected by an organization's policy check were being resent before the rejection was displayed has also been resolved.

For those using fullscreen mode, I feel this fix will reduce unintended operations.

headersHelper for the plugin marketplace (v2.1.238)

You can now specify headersHelper for URL marketplaces and catalog entries. The specified command generates HTTP headers (such as short-lived tokens) used for catalog retrieval and same-origin archive retrieval. The headersHelper for a catalog entry is executed only during installation/update of that plugin, after displaying the command content, and claude plugin install/update prompts with [y/N] for confirmation (can be skipped with -y).

Since this is a change that affects both plugin distributors and users, I feel that anyone operating an internal marketplace will want to verify the behavior.

Trying out /remote-control

Being able to monitor a session running on my Mac from my iPhone feels useful when running long builds or tests. Combined with push notifications in particular, it should help reduce the time spent waiting in front of the terminal. Here I'll walk through the steps for enabling /remote-control from Claude Code on Mac and connecting from the Claude app on iPhone.

Requirements

Once connected, the steps themselves are only a few, but I think the requirements are where you're more likely to hit a snag. Let me confirm these upfront.

Item Condition
Plan Pro / Max / Team / Enterprise. API key authentication is not supported. For Team / Enterprise, the Owner must enable the Remote Control toggle in the admin panel
Authentication Sign-in to claude.ai via /login. Long-lived tokens from claude setup-token or CLAUDE_CODE_OAUTH_TOKEN cannot be used to connect
Endpoint Direct connection to api.anthropic.com only. Amazon Bedrock / Google Cloud Agent Platform / Microsoft Foundry, and configurations where ANTHROPIC_BASE_URL points to another host are not supported
Environment Variables DISABLE_TELEMETRY / DO_NOT_TRACK / CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC / DISABLE_GROWTHBOOK must not be set (as all of these stop feature flag evaluation)
Workspace Trust Run claude once in the project directory and approve the trust dialog

Note that if you want to disable Remote Control entirely, use the disableRemoteControl setting, and if you want to auto-connect for all interactive sessions, use the remoteControlAtStartup setting.

Steps to connect from Mac to iPhone

My PC is a MacBook and my phone is an iPhone, but the process shouldn't be much different for a Windows and Android combination. If you've already installed the Claude app on your smartphone and logged in, start from step 3.

  1. If the Claude app is not on your iPhone, install it from the Apple Store.

https://apps.apple.com/us/app/claude-by-anthropic/id6473753684

For Android, you should also be able to download and use it similarly from the store.

https://play.google.com/store/apps/details?id=com.anthropic.claude&hl=ja

  1. After installing, launch the Claude app and log in. In my case, entering my email address caused an email with the subject Your secure link to Claude.ai is here to arrive, and I could log in by entering the number displayed after pressing the [Sign in] button in the email body into the Claude app.

  2. Launch claude in your project directory on Mac. On first run, approve the workspace trust dialog. In the example below, the claude command is launched in the Mac terminal.

    20260822-cc-remote-control-2

  3. Run the /remote-control command (abbreviated as /rc) in the Mac terminal.

    20260822-cc-remote-control-3

  4. A menu is displayed. Use the ↓ key to select Show QR code and press Enter.

    20260822-cc-remote-control-4

    A status panel with the session URL and QR code opens.

    20260822-cc-remote-control-5

  5. Scan the QR code with the iPhone's camera app. Open the Code tab in the Claude app and select your session by name from the session list. Online sessions have a computer icon and a green dot.

    20260822-cc-remote-control-13

  6. Send a prompt from the iPhone. Here I send "Create a Tower of Hanoi program." This is immediately reflected on the Claude Code screen in the Mac terminal.

    20260822-cc-remote-control-14

    To use push notifications, open /config on the Mac side and enable Push when Claude decides (notifications at Claude's discretion) and Push when actions required (notifications for permission prompts and questions).

Notes

Remote Control runs as a local process, so if you close the terminal or stop the claude process, the session will go offline. To maintain a session on a machine connected via SSH, launch it inside tmux or screen.

Note that the connectivity issues covered here were intensively addressed in these 2 versions. Individual details are listed in the "Fixes" section below.

Target Versions and Period

Version Release Date
v2.1.238 2026-08-20
v2.1.239 2026-08-21

New Features

  • The keybindingFlavor setting has been added. Setting it to "readline" makes Ctrl+W in the prompt delete back to the previous whitespace, just like in Bash. The default "classic" behavior is unchanged (v2.1.238)
  • In the plugin marketplace, you can now specify headersHelper for URL marketplaces and catalog entries. The specified command generates HTTP headers (such as short-lived tokens) used for catalog retrieval and same-origin archive retrieval (v2.1.238)
  • claude self-hosted-runner --defer-shutdown-max-min <minutes> has been added. Even upon receiving SIGTERM, it continues processing connected sessions, then evacuates any remaining sessions after the specified number of minutes before exiting (v2.1.238)
  • claude self-hosted-runner --proxy-authorization-command / --proxy-authorization-file have been added. These support egress proxies that require a new Proxy-Authorization header per connection (v2.1.238)
  • /claude-api upgrade has been added, enabling migration of Python projects from anthropic 0.x to 1.x. The skill's Python reference has also been updated for 1.x (use anthropic.Timeout instead of httpx.Timeout for timeouts) (v2.1.239)
  • Cross-session messaging is now available on Windows. Just like on macOS and Linux, Claude Code sessions across multiple machines can send messages to each other with SendMessage and discover each other with ListAgents (v2.1.239)
  • The first-run introduction to the fullscreen renderer is now shown for configurations that were previously excluded, such as Bedrock, Vertex, and Foundry. New installations in these environments will launch in fullscreen (v2.1.239)
  • In cloud sessions, plugins synced from claude.ai are now displayed as name@synced. They can be managed with claude plugin enable/disable <name>@synced and will not overwrite a same-named plugin you installed yourself (v2.1.239)

Security

  • The headersHelper for catalog entries is now executed only during installation/update of that plugin, after displaying the command content. claude plugin install/update prompts with [y/N] for confirmation (can be skipped with -y) (v2.1.238)
  • The MCP headersHelper in a project's .mcp.json, and inline MCP servers in project or --add-dir agent files, now require that the trust dialog for that folder has been approved (claude -p included) (v2.1.238)
  • MCP headersHelper originating from a project's .mcp.json, plugins, or agent files are now executed without inheriting credential environment variables. User, managed, and claude.ai scope helpers run from Claude's configuration directory (v2.1.238)
  • Bash tool permission checks have been improved for zsh-specific syntax in shell conditional expressions (v2.1.238)
  • Fixed a bug where text in masked input fields (password-style), such as login code fields, could be pasted elsewhere with Ctrl+Y, or saved to the prompt history when cleared with a double Esc press (v2.1.239)
  • Fixed a bug in fullscreen mode where simply clicking the terminal to bring the window back into focus would answer a permission prompt or press a button (v2.1.239)
  • Fixed a bug where requests rejected by an organization's policy check were being resent before the rejection was displayed (v2.1.239)
  • In Claude Code on the web, requests from tools like Bash to non-API Anthropic hosts (www, docs, etc.) now go through the session's network proxy. The environment's allowed domain settings are applied (v2.1.239)

Improvements

  • Remote Control connection resilience has been improved. Temporary HTTP 403 rejections from network edges, VPNs, and proxies are now tolerated for up to 3 minutes, and the source of the block is named if it persists (v2.1.238)
  • The message shown when Remote Control is not enabled on an account and the wording in claude doctor have been clarified (v2.1.239)
  • Remote sessions now continue sending keepalives during long-running SessionStart or Setup hook executions. Containers will no longer be idle-reclaimed mid-hook (v2.1.239)
  • In remote sessions, images uploaded from mobile now include the destination file path. They can be copied to files created by Claude (v2.1.239)
  • keybindingFlavor: "readline" now matches Bash for word-based key operations. Alt+F and Ctrl/Option+→ stop at the end of a word, Alt+D deletes up to that point (retrievable with Ctrl+Y), and punctuation is treated as a word boundary (v2.1.239)
  • In cross-session messaging, when sending to a session on the same machine that is configured to refuse reception (such as crossSessionInbound: "refuse"), the sender now receives a "refused" response. Previously, it appeared to succeed silently (v2.1.238)
  • In cross-session messaging, the sending session is now notified when the receiving side discards a message (due to rate limiting or a full queue). Previously, messages disappeared silently (v2.1.238)
  • ListAgents now returns the session's own name (the name peers use to send it messages). Also, SendMessage addressed to one's own name now returns an appropriate message instead of "no agent named …" (v2.1.239)
  • ListAgents and /list-agents now also list active teammates. Previously, only sub-agents and other sessions were shown, making reachable teammates appear absent (v2.1.239)
  • claude mcp list and claude mcp get now display ⊘ Disabled for disabled servers instead of connecting to them for a health check (v2.1.238)
  • Cost estimates (/cost, status line, --max-budget-usd) now include the US-only-inference 1.1x premium for data residency workspaces (v2.1.239)
  • Persistent retry mode (CLAUDE_CODE_RETRY_WATCHDOG) now fails immediately on organization spending limit errors and credit depletion errors, rather than waiting indefinitely for a reset (v2.1.239)
  • The reminder displayed after compaction has been improved so that a skill's original arguments are not re-executed as a new request (v2.1.239)
  • The repeated check-ins for long-running background tasks in /goal now use progressively increasing intervals (30 minutes → 1 hour → every 2 hours thereafter) instead of a fixed 30-minute interval (v2.1.239)
  • Active /goal goals are now restored when resuming a session from the claude --resume picker (v2.1.239)
  • Startup has been improved; claude with no arguments now launches faster on macOS (v2.1.238)
  • Startup responsiveness has been improved. Auto-update checks now run approximately 10 seconds after startup instead of competing with startup for CPU (v2.1.238)
  • Additional minor improvements include center-truncation of long file paths in tool execution lines, adding reset times to usage limit messages, tab group cleanup for Claude in Chrome, updates to the bundled claude-api skill, and adjustments to the usage limit banner display in VSCode (v2.1.238 / v2.1.239)

Fixes (Key Items)

A selection focusing on fixes related to stability and usability.

  • Fixed Remote Control disconnecting on brief network interruptions: Fixed a bug where brief network interruptions causing delayed sign-in renewal resulted in disconnection with "login expired." It now retries to maintain the connection (v2.1.238)
  • Fixed Remote Control model selection not being reflected in the terminal: Fixed a bug where the Remote Control model selected on a smartphone or the web was not reflected in the terminal's display (v2.1.238)
  • Fixed per-task Stop in Remote Control not working: Fixed a bug where per-task Stop from the task panel had no effect on CLI host sessions (v2.1.238)
  • Fixed Remote Control messages disappearing from transcripts: Fixed a bug where messages sent from Web or Desktop while Claude was responding disappeared from the transcript after the turn ended (v2.1.238)
  • Fixed crashed Remote Control sessions being unusable: Fixed a bug where a Remote Control session whose process had crashed remained unusable until claude remote-control was restarted. It can now be reused the next time a message is sent (v2.1.238)
  • Fixed environment variable inheritance in Remote Control sessions: Fixed a bug where sessions started with claude remote-control inherited session-scoped environment variables from the launching shell (v2.1.238)
  • Fixed ListAgents / SendMessage not finding Remote Control peers in server mode: Fixed a bug where sessions running in claude remote-control (server mode) or Desktop/IDE hosts reported "Remote Control is not connected" (v2.1.238)
  • Fixed runaway session title sync to Remote Control: Fixed a bug (regression from v2.1.232) where title sync ran away when two Claude Code processes shared the state of one background job. Title updates are now deduplicated and rate-limited (v2.1.239)
  • Fixed memory growth in long-running sessions: Fixed a bug where memory grew without bound in long interactive sessions. Sub-agent tool results are now freed once they scroll out of the most recent display window (v2.1.238)
  • Fixed double billing on Bedrock streaming: Fixed a bug where, via a proxy that strips Content-Type headers from responses, Bedrock streaming re-executed as non-streaming every turn, silently doubling billable API calls (v2.1.239)
  • Fixed startup hang with Bedrock + SSO + HTTPS proxy: The pre-check for credentials now respects HTTPS_PROXY (v2.1.239)
  • Fixed output style reverting to default: Fixed a bug where custom/project/plugin output styles reverted to the default tone mid-session (v2.1.238)
  • Fixed race condition between Esc and queued prompts: Fixed a bug where pressing Esc with a prompt queued caused the next turn to be treated as an early termination, making the session appear idle even while Claude was still working, with the same operation repeating on later resubmission (v2.1.239)
  • Fixed WebFetch page content being retained for the entire session: Fixed a bug where expired page content was retained in memory for the entire session instead of the intended 15 minutes (v2.1.239)
  • Fixed claude -c picking up sessions from different directories: Fixed a bug where sessions from paths differing only in characters like _, -, and . were picked up (v2.1.239)
  • Fixed git commands breaking in the Linux sandbox: Fixed a bug where making the non-existent .git/config.worktree unreadable broke all git commands under the sandbox in repositories with extensions.worktreeConfig set (v2.1.239)
  • A quietly welcome fix: Fixed a bug where agents, skills, and commands with .md files starting with a UTF-8 BOM were silently ignored (v2.1.239). This is the kind of bug that's easy to hit with files created on the Windows side, and the kind where the cause is hard to notice.
  • Additional numerous minor bug fixes have been made in areas including /resume and session management, MCP server connectivity and dialog display, fullscreen mode rendering, key input and text editing, hook execution, and theme display.

Breaking Changes

Ctrl+L and Cmd+K in fullscreen mode have been changed to always perform only a screen redraw. The /clear shortcut via double-press has been removed. Additionally, the automatic /clear loop that occurred in a 1-line nvim terminal will no longer happen (v2.1.238).

Before the change (~ v2.1.237)

Press Ctrl+L (or Cmd+K) in fullscreen mode
  → 1st press: Redraws the screen
  → 2nd press (pressed again immediately): Clears the conversation (equivalent to /clear)

After the change (v2.1.238 ~)

Press Ctrl+L (or Cmd+K) in fullscreen mode
  → Screen redraw only, no matter how many times it is pressed
  → To clear the conversation, run /clear

Note that no deprecation notices were included in the covered range.

Closing

These were 2 versions where Remote Control felt like it had entered practical usability. Bugs of the "you'll definitely hit these if you keep using it" variety — disconnection on brief interruptions, models selected on smartphones not reflecting in the terminal, Stop in the task panel not working — have been resolved together, and I think those who tried it once and moved on will find it worth revisiting.

If any of the changes catch your interest, why not update and check them out in your own environment?

References

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://code.claude.com/docs/en/remote-control

https://code.claude.com/docs/en/interactive-mode

https://dev.classmethod.jp/articles/20260820-cc-updates-v2-1-237/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書