終端機新增 Readline 按鍵風格,Ctrl+W 可改成刪整詞
習慣在 Bash 終端機用 Ctrl+W 刪除前一個單字的使用者,現在可在使用者設定檔 ~/.claude/settings.json 加入 {"keybindingFlavor": "readline"} 來切換按鍵風格,讓 Ctrl+W 改成刪到前一個空白為止,跟 Bash 的習慣一致;若不設定,預設的 "classic" 模式維持不變。
發布日期:2026-08-20
習慣在 Bash 終端機用 Ctrl+W 刪除前一個單字的使用者,現在可在使用者設定檔 ~/.claude/settings.json 加入 {"keybindingFlavor": "readline"} 來切換按鍵風格,讓 Ctrl+W 改成刪到前一個空白為止,跟 Bash 的習慣一致;若不設定,預設的 "classic" 模式維持不變。
全螢幕狀態下的 Ctrl+L 與 Cmd+K 快捷鍵,過去按下後除了重繪畫面,還可能連按兩次觸發 /clear(清除對話紀錄),一不小心就把整段對話洗掉。現在這兩個快捷鍵重新聚焦,按下後一律只重繪畫面,連按兩次觸發 /clear 的捷徑已移除,同時也解決了單行 nvim 終端機不斷觸發自動清屏迴圈的問題。
外掛(plugin,擴充 Claude 功能的附加元件)市集現在支援更嚴密的動態身分驗證。
透過在市集網址或目錄項目設定 headersHelper,系統能執行指定指令動態產生 HTTP 標頭,藉由短期 token(授權令牌)安全抓取目錄與同源封存檔。此外,目錄項目的 helper 只會在安裝或更新時執行;claude plugin install 與 update 會先展示要跑的指令並跳出 [y/N] 詢問,你也可以帶 -y 參數直接同意。
自託管執行器(self-hosted runner,在自己主機上代跑任務的程式)收到 SIGTERM 時,可用 claude self-hosted-runner --defer-shutdown-max-min <minutes> 指定延後關機。它會繼續服務已連線的工作階段,並在指定分鐘數後將剩餘工作留在待處理狀態,再退出。伺服器也不會只因一次輪詢變慢或遺失,就移除健康的 runner 並將工作階段交給另一個 runner。
若出站代理伺服器每次連線都要求剛簽發的 Proxy-Authorization 標頭,現在可使用 claude self-hosted-runner --proxy-authorization-command 或 claude self-hosted-runner --proxy-authorization-file 提供它。這兩個選項讓每次連線取得所需的最新認證標頭,而非沿用前一次資料。
長時間互動時,記憶體不再因子代理工具結果一路累積。結果仍在近期顯示視窗時會留在記憶體中;一旦離開該視窗,系統就會釋放它們,避免長對話出現無上限的記憶體成長。近期顯示視窗內的結果照常可用,釋放的是已不再顯示的工具結果。這個界線會隨顯示內容往前移動。
你替 Claude 指定輸出風格時,長對話也會維持那個選擇。自訂、專案和外掛 output styles 過去可能在工作階段中途飄回預設語氣;現在不會再發生。修正涵蓋這三種來源,讓同一場對話不必因為語氣突然改變而重新設定。設定來源雖不同,維持方式相同。
在終端機查看權限確認與差異比對時,排版細節變得更加可靠。過去當 MCP(Model Context Protocol,讓 AI 連接外部工具的協定)跳出輸入對話框時,長度超過 4,096 個字元的網址會直接變成一片空白,現在已經能正常顯示。如果專案路徑太長超出終端機寬度,權限提示也不會再漏掉「不再詢問」的勾選選項。此外,權限提示中的差異對照文字換行也獲得修正,包含 Emoji 在內的寬多碼點字元或 Tab 縮排的長行都不再被裁切。
在遠端連線或暫停程式時,終端機的輸入反應與畫面狀態現在更乾淨。
過去在 SSH 或 mosh 等慢速連線上,若終端機將倒退鍵轉為 Ctrl+H,當大量按鍵密集湧入時長按 Backspace 容易被忽略;現在連打輸入已能精準接收。另外,強制結束被 Ctrl+Z 暫停的工作階段時,也不會再發生游標消失且卡在括號貼上模式(bracketed-paste mode)的窘境了。
在終端機啟動工具時,體驗變得更為迅速輕快。針對 macOS 使用者,直接輸入 claude 啟動主程式的時間大幅縮短,能更快進入互動提示列。為了讓開啟時的操作更流暢,系統將自動檢查更新的背景排程由程式啟動時改為啟動後約 10 秒才執行,避免在程式剛啟動的關鍵時刻與核心載入程序爭搶 CPU 資源。
外部工具的設定執行現在有了更嚴格的安全防護。
如果專案的 .mcp.json 包含 headersHelper,或是專案與 --add-dir 代理檔內嵌了 MCP(Model Context Protocol,讓 AI 連接外部工具的協定)伺服器,現在都必須先通過該資料夾的信任對話框確認,即便在 claude -p 非互動模式下也一樣。此外,從專案設定、外掛或代理檔執行的 helper 不再繼承終端機的機密憑證環境變數;而個人、管理與 claude.ai 範圍的 helper 也一律限定在 Claude 設定目錄下執行。
管理與檢查外部工具時,系統不再打擾處於休眠或停用狀態的伺服器。過去透過 stdio 連線的 MCP(Model Context Protocol,讓 AI 連接外部工具的協定)伺服器會在收到 initialize 初始化請求前,先收到 server/discover 探測,導致設計為延遲載入的伺服器在每次開啟工作階段時都被迫提早啟動後端;現在已修正順序。另外,執行 claude mcp list 或 claude mcp get 查看清單時,已被停用的伺服器會直接標示為 ⊘ Disabled,不再特地連線進行健康檢查。
在終端機執行指令前,Bash 工具的權限檢查現在能正確判讀 zsh 專屬條件判斷式。工作樹(Git 讓同一專案平行開多份副本的功能)隔離環境中,沒有重新導向的指令也不會再被誤說成必須移除重新導向。兩項修正分別處理 zsh 條件式與工作樹隔離,避免權限提示錯指問題。
Bash 指令遭強制終止、超時或中途被中斷時,/tmp/claude-*-cwd 不再留下殘餘檔案。這些工作目錄相關的暫存資料,即使指令未正常走到結尾也會被清理。不論哪種中斷原因,後續執行都不會再看見前一個指令留下的這批檔案。清理目標就是該路徑下的工作目錄暫存檔。
遠端遙控在複雜網路環境下的連線韌性大幅增強。代理伺服器拒絕連線時,現在會直接指出該代理伺服器,不再含糊報成一般網路錯誤。另一種情況是網路節點、VPN 或代理伺服器短暫回傳 HTTP 403 拒絕:系統現在最多能容忍等待 3 分鐘並持續重試;若阻擋持續,會直接點名是哪一個拒絕方。如果短暫的網路波動延誤了登入憑證的自動續約,系統會自動重試保持連線,不再動輒中斷並跳出登入過期。此外,使用者手動登出時,也會以明確訊息正常結束工作階段,不再誤報成重連失敗。
你從手機或網頁選擇模型後,終端機顯示的模型現在會同步更新。Claude 正在回覆時,若你從網頁或桌面版送出新訊息,它在回覆結束後也會留在逐字稿中。因此兩個畫面看到的模型選擇與實際對話紀錄能保持一致,不會一邊更新另一邊遺漏。終端機與遠端介面的顯示因此不再脫節。
當你在 Remote Control 任務面板想停止某個指定工作時,個別 Stop 按鈕如今也能作用於 CLI(命令列介面,透過文字指令操作程式的方式)託管的工作階段。先前按下這個按鈕,CLI 託管的工作階段不會停下來;這項修正讓面板的任務控制能確實傳到它。
遠端工作階段收到來自用戶端、卻缺少有效角色的使用者訊息時,現在不會再直接退出。角色是用來標示訊息身分與用途的欄位;以前這個欄位無效就會讓整個工作階段結束,現在它會留在可繼續使用的狀態。後續訊息仍可交給同一個遠端工作階段處理,不必因單一欄位出錯而重新建立它。
透過 claude remote-control 新建的遠端工作階段,現在不再繼承啟動指令的 shell 工作階段環境變數。先前這些變數會從發起終端機帶入新工作階段,可能影響遠端環境;如今已被隔離。因此啟動新工作階段時,來源 shell 的工作階段設定不會混進遠端環境。
遠端工作階段的處理程序當機後,過去必須重新啟動 claude remote-control 才可使用。現在你下一次傳送訊息時,它會重新初始化並可再次使用,不必先手動重啟指令。這個改變在你下一次傳送訊息時發生,無須先額外執行重啟步驟。原本必須手動重啟才能恢復的步驟已不需要。
跨工作階段傳訊時的狀態回饋更加透明。
在本機多個工作階段互相發送訊息時,若接收端設定了 {"crossSessionInbound": "refuse"} 來拒收外來訊息,系統現在會明確向發送端回報已拒絕,不再假裝成功送達。同樣地,若接收端的收件匣因為達到傳輸速率限制或佇列已滿而丟棄訊息,也會主動通知發送端,避免訊息無聲無息地蒸發。
多代理協同合作與尋找夥伴的功能現在更加完善。過去在透過 claude remote-control 伺服器模式或桌面版與 IDE 運行的工作階段中,執行 ListAgents 或 SendMessage 工具時常會誤報遠端遙控未連線;現在已能正確列出並連繫夥伴代理。同時,代理檢視畫面為了加速下一個背景工作階段而預先熱身的閒置 worker,不再提早暴露在清單中,只有在真正有任務認領它時才會正式出現在名單上。
提示詞建議與快取狀態的判斷邏輯變得更加準確。當你啟用環境變數 CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true 時,過去只要帳號的使用量接近上限但尚未超額,提示詞自動建議就會提早關閉;現在只要未真正超額,建議功能就會持續開啟。另一方面,在使用 /model 切換模型或 /effort 調整思考深度時,若先前的 prompt 快取(cache,把先前處理過的上下文暫存起來直接用)本來就已經自然過期,系統不會再跳出不必要的快取未命中警示。
內建的 claude-api 技能配合 Managed Agents 於 8 月 19 日釋出的新版功能完成了同步更新。這次更新針對自託管沙盒環境,加入了網頁搜尋與網頁抓取的網域設定支援,方便你精確規範代理能存取的網站範圍;同時也支援了記憶庫,讓託管代理能在專屬沙盒中安全讀寫長期記憶資料。
If you are used to pressing Ctrl+W in Bash to delete the previous word, you can now add {"keybindingFlavor": "readline"} to your user settings file at ~/.claude/settings.json to switch Ctrl+W to delete back to the previous whitespace, matching Bash; the default "classic" flavor remains unchanged if you don't set it.
In fullscreen mode, pressing Ctrl+L or Cmd+K used to both repaint the display and, if double-pressed, trigger /clear, wiping out the whole conversation by accident. These shortcuts now focus exclusively on repainting the display; the double-press /clear shortcut has been removed, and 1-row nvim terminal windows no longer trigger unexpected clear loops.
Plugin marketplaces now support dynamic authentication.
By configuring headersHelper on a URL marketplace or catalog entry, the system runs a custom command to mint dynamic HTTP headers, using a short-lived token to fetch catalogs and same-origin archive files. Catalog helpers only execute when installing or updating that plugin after displaying the command, and claude plugin install or update will prompt with [y/N] unless -y is passed.
On SIGTERM, claude self-hosted-runner --defer-shutdown-max-min <minutes> lets a self-hosted runner keep serving attached sessions, then park remaining work before exiting. A single slow or lost poll request also no longer removes a healthy runner and hands its sessions to another runner.
For egress proxies requiring a freshly issued Proxy-Authorization header for every connection, self-hosted runners can use claude self-hosted-runner --proxy-authorization-command or claude self-hosted-runner --proxy-authorization-file.
Long sessions no longer keep accumulating memory from subagent tool results. Results remain in memory while in the recent display window, then are released once they leave it, preventing unbounded memory growth.
Custom, project, and plugin output styles no longer drift back to the default voice mid-session.
Permission dialogs and diff previews now format text reliably across all terminal sizes. When MCP (Model Context Protocol, an open standard connecting AI to external tools) opens an elicitation prompt, URLs exceeding 4,096 characters no longer render completely blank. If a project path is wider than your terminal window, the permission prompt will no longer drop the "don't ask again" choice. Furthermore, line wrapping in permission diff views has been fixed so that lines with tabs or wide multi-code-point characters like emoji are never clipped.
Input responsiveness and terminal state cleanup are now reliable over laggy remote connections.
Previously over high-latency SSH or mosh connections where terminals map Backspace to Ctrl+H, holding down Backspace during keystroke bursts would cause inputs to be dropped; these bursts are now handled accurately. Additionally, killing a session suspended with Ctrl+Z will no longer leave your terminal with a hidden cursor or stuck in bracketed-paste mode.
Launching the tool is now noticeably snappier from the command line. On macOS, running bare claude opens the interface significantly faster so you can get straight to work. To keep the app responsive from the very first keystroke, the automatic update check now waits approximately 10 seconds after launch instead of competing with startup routines for CPU cycles.
Security boundaries around external tool configurations have tightened significantly.
If a project .mcp.json contains headersHelper, or if inline MCP (Model Context Protocol, an open standard connecting AI to external tools) servers exist in project or --add-dir agent files, that directory's trust dialog must now be accepted first, even when running non-interactively via claude -p. In addition, helpers launched from project files, plugins, or agent configurations no longer inherit credential environment variables, and user, managed, or claude.ai-scoped helpers now run strictly from the Claude config directory.
Inspecting external tools no longer wakes up dormant or disabled services. Previously, stdio MCP (Model Context Protocol, an open standard connecting AI to external tools) servers received a server/discover request before initialize, unnecessarily forcing lazy-loaded servers to boot up their backends every time a session opened. This handshake order is now resolved. In addition, claude mcp list and claude mcp get now display disabled servers directly as ⊘ Disabled rather than opening a connection to perform a health check.
Bash tool permission checks now evaluate zsh-specific conditional syntax correctly. In isolated git worktrees, commands without a redirect stop receiving false refusals telling you to remove one.
When a Bash command is killed, times out, or is interrupted, it no longer leaves /tmp/claude-*-cwd files behind. These work-directory temporary files are cleaned up even when the command does not finish normally.
Remote Control connectivity is now far more resilient across complex network environments. When a proxy refuses a connection, it now names that proxy rather than returning a generic network error. Separately, when a network edge, VPN, or proxy briefly returns HTTP 403, it tolerates the refusal and retries for up to 3 minutes; if the block persists, it names the refusing party. When a brief network hiccup delays your sign-in credential refresh, the client retries seamlessly instead of abruptly dropping out with "login expired". Signing out also concludes the session cleanly without misreporting a reconnection failure.
A model chosen from a phone or web client now updates the terminal display. A new message sent from the web or Desktop while Claude is mid-turn also remains in the transcript after the turn ends.
When you want to stop one named task in the Remote Control panel, its individual Stop button now works for a CLI (command-line interface, a way to operate programs with typed commands) hosted session too. Previously, pressing it left that type of session running; the panel's task control now reaches it.
A remote session no longer exits when it receives a user message from a client without a valid role. A role is the field that identifies a message's identity and purpose; before, an invalid value could end the whole session, while it now remains usable. Later messages can still go to the same remote session instead of requiring a new one because of a single bad field.
New remote sessions started by claude remote-control no longer inherit session-scoped environment variables from the launching shell. They are now isolated instead of being carried into the remote environment.
After a Remote Control session process crashes, it used to stay unavailable until claude remote-control was restarted. Now, the next message can reinitialize and reuse it.
Cross-session messaging now provides direct feedback when messages cannot be delivered.
When sending messages to a local session that rejects incoming chats via {"crossSessionInbound": "refuse"}, the sender now receives a clear "refused" status instead of a deceptive success report. Likewise, if a target inbox drops messages due to rate limits or a full queue, your active session is notified immediately instead of messages vanishing silently.
Multi-agent collaboration tools can now discover and communicate with peers across environments. Running ListAgents or SendMessage inside sessions hosted by claude remote-control server mode, Desktop, or IDE hosts previously failed with "Remote Control is not connected"; they can now locate and message remote peers reliably. Additionally, idle workers pre-warmed in the background to speed up your next session are no longer prematurely listed, appearing only after a task officially claims them.
Prompt suggestions and cache status warnings now reflect exact account and cache states. If you set CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true, suggestions previously shut off prematurely when your account approached its usage limit; they now remain active until the quota is genuinely reached. Meanwhile, switching models with /model or tweaking reasoning depth with /effort will no longer display false cache-miss warnings when prompt caches had simply expired on their own schedule.
The bundled claude-api skill has been updated to align with the Managed Agents release from August 19. On self-hosted sandboxes, agents can now configure allowed domains for web searching and web fetching, giving you granular control over external site access. Sandboxes also introduce memory stores, allowing managed agents to persist and retrieve long-term state securely within their private sandboxed environments.
Added a `keybindingFlavor` setting: set it to `"readline"` to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default (`"classic"`) is unchangedChanged Ctrl+L and Cmd+K in fullscreen to always just repaint — the double-press `/clear` shortcut was removed, and 1-row nvim terminals no longer trigger automatic `/clear` loopsPlugin marketplaces: `headersHelper` on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches
A catalog entry's `headersHelper` runs only when you install or update that plugin, after its command is shown; `claude plugin install/update` ask `[y/N]` (or pass `-y`)Added `claude self-hosted-runner --defer-shutdown-max-min <minutes>`: on SIGTERM, keep serving attached sessions, park what is left after that many minutes, then exit
Fixed self-hosted runners occasionally being removed by the server after a single slow or lost poll request, handing their healthy session to another runnerAdded `claude self-hosted-runner --proxy-authorization-command` / `--proxy-authorization-file` for egress proxies that require a freshly issued `Proxy-Authorization` header on every connectionFixed unbounded memory growth in long interactive sessions: subagent tool results are now released once they leave the recent display windowFixed custom, project, and plugin output styles drifting back to the default voice mid-sessionFixed MCP elicitation dialogs showing nothing for URLs longer than 4,096 characters, and permission prompts dropping the "don't ask again" option when the project path didn't fit the terminal width
Fixed text-wrapping in permission prompt diffs: lines containing wide multi-code-point characters (such as emoji) or tabs are no longer clippedFixed held Backspace being ignored on terminals that send Ctrl+H for Backspace when keystrokes arrive in large bursts (slow SSH/mosh links)
Fixed killing a suspended (Ctrl+Z) session sometimes leaving the terminal in bracketed-paste mode with the cursor hiddenImproved startup: bare `claude` starts sooner on macOS
Improved startup responsiveness: the automatic update check now runs about 10 seconds after launch instead of competing with startup for CPUMCP `headersHelper` in a project `.mcp.json`, and inline MCP servers in project or `--add-dir` agent files, now require that folder's trust dialog to have been accepted (also under `claude -p`)
MCP `headersHelper` from a project `.mcp.json`, plugin, or agent file runs without inherited credential env vars; user, managed and claude.ai-scope helpers now run from the Claude config dirFixed stdio MCP servers receiving a `server/discover` request before `initialize`, forcing lazy servers to start their backend on every session open
Changed `claude mcp list` and `claude mcp get` to show disabled servers as `⊘ Disabled` instead of connecting to them for a health checkFixed worktree-isolation Bash refusals telling you to remove a redirect when the command had none
Improved Bash tool permission checking for zsh-specific syntax in shell conditionalsFixed leftover `/tmp/claude-*-cwd` files when a Bash command is killed, times out, or is interruptedFixed a proxy's refusal of a connection being reported as a generic network error instead of naming the proxy
Fixed Remote Control disconnecting with "login expired" when a brief network hiccup delays renewing your sign-in; it now retries and stays connected
Fixed Remote Control reporting a failed reconnect on sign-out; signing out now ends the session with a clear message
Improved Remote Control connection resilience: brief HTTP 403 refusals from a network edge, VPN, or proxy are now tolerated for up to 3 minutes, with the refusing party named when a block persistsFixed Remote Control messages sent from the web or Desktop while Claude is mid-turn disappearing from the transcript after the turn finishes
Fixed Remote Control model picks made on a phone or web not updating the model shown in the terminalFixed per-task Stop from the Remote Control tasks panel doing nothing on CLI-hosted sessionsFixed remote sessions exiting when a client delivered a user message without a valid roleFixed Remote Control sessions started by `claude remote-control` inheriting session-scoped environment variables from the launching shellFixed a Remote Control session whose process crashed staying unavailable until `claude remote-control` was restarted; it can now be reused when you next message itCross-session messaging: sending to a session on this machine that refuses inbound messages (e.g. `crossSessionInbound: "refuse"`) now reports "refused" to the sender instead of a silent success
Cross-session messaging: a session whose inbox drops your messages (rate limit or full queue) now tells your session, instead of the messages vanishing silentlyFixed `ListAgents`/`SendMessage` reporting "Remote Control is not connected" in sessions run by `claude remote-control` (server mode) or Desktop/IDE hosts; they now list and reach Remote Control peers
Fixed `ListAgents` and `SendMessage` exposing the idle worker that the agent view pre-warms for your next background session; it now appears only once a task claims itFixed `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true` not keeping prompt suggestions on when your account is near, but not over, its usage limit
Fixed the `/model` and `/effort` cache-miss warning appearing when the prompt cache had already expiredUpdated the bundled `claude-api` skill for the Managed Agents Aug 19 release: web search/fetch domain settings and memory stores on self-hosted sandboxes