v2.1.83
📝 概要
Claude Code v2.1.83では、チーム別設定管理、環境変更フック、検索機能、多数のバグ修正とパフォーマンス改善が追加されました。
🔄 主な変更点
- 設定管理:
managed-settings.d/ディレクトリによる複数チーム向けポリシーフラグメントのマージ機能 - 環境フック:
CwdChangedとFileChangedイベントによる反応的環境管理(direnv対応など) - セキュリティ:
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1でサブプロセスから認証情報を除去 - UI改善: トランスクリプト検索機能(
/キー)、画像参照用の[Image #N]チップ挿入 - サンドボックス:
sandbox.failIfUnavailable設定でサンドボックス起動失敗時にエラー終了 - パフォーマンス: 大規模セッションの起動時間短縮、プラグインのディスクキャッシュ活用
- バグ修正: macOS終了時のハング、音声入力による起動フリーズ、ファイル差分タイムアウトなど多数
💡 解説・活用案
複数チームで異なるポリシーを管理したい組織では、managed-settings.d/を使って設定を分離できるようになり、運用が大幅に改善されます。CwdChangedフックはdirenvのような環境切り替えツールとの統合に最適で、プロジェクト移動時の自動設定変更が可能です。また、CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1を設定することで、Bashツールや外部スクリプト実行時のクレデンシャル漏洩リスクを低減でき、セキュリティが向上します。
🌐 日本語訳
変更内容
- 追加:
managed-settings.jsonと並行してmanaged-settings.d/ドロップインディレクトリを追加。別々のチームが独立したポリシーフラグメントをデプロイし、アルファベット順にマージ可能に - 追加: 反応的環境管理(direnvなど)のための
CwdChangedおよびFileChangedフックイベント - 追加:
sandbox.failIfUnavailable設定。サンドボックスが有効だが起動できない場合、サンドボックスなしで実行する代わりにエラー終了 - 追加:
disableDeepLinkRegistration設定でclaude-cli://プロトコルハンドラーの登録を防止 - 追加:
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1環境変数。サブプロセス環境(Bashツール、フック、MCP stdioサーバー)からAnthropicおよびクラウドプロバイダーの認証情報を除去 - 追加: トランスクリプト検索機能。トランスクリプトモード(
Ctrl+O)で/を押して検索、n/Nでマッチ間を移動 - 追加:
Ctrl+X Ctrl+Eを外部エディタ起動のエイリアスとして追加(readlineネイティブバインディング。Ctrl+Gも引き続き使用可能) - 改善: ペーストした画像が
[Image #N]チップとしてカーソル位置に挿入され、プロンプト内で位置的に参照可能に - 改善: エージェントがfrontmatterで
initialPromptを宣言し、最初のターンを自動送信可能に - 改善:
chat:killAgentsとchat:fastModeが~/.claude/keybindings.jsonでキーバインド変更可能に - 修正: 終了後にシェルプロンプトにマウストラッキングエスケープシーケンスが漏れる問題
- 修正: macOS上でClaude Codeが終了時にハングする問題
- 修正: 数秒間アイドル状態後に画面が空白に点滅する問題
- 修正: 共通行が少ない非常に大きなファイルの差分処理時にハングする問題。差分処理が5秒でタイムアウトし、グレースフルにフォールバック
- 修正: 音声入力有効時の起動時に1〜8秒のUIフリーズが発生する問題(ネイティブオーディオモジュールの遅延ロードが原因)
- 修正: 起動時にClaude Codeがclaude.aiのMCP設定取得のために約3秒待機する回帰問題
- 修正:
--mcp-configCLIフラグがallowedMcpServers/deniedMcpServers管理ポリシーの適用をバイパスする問題 - 修正: claude.ai MCPコネクター(Slack、Gmailなど)がシングルターン
--printモードで利用できない問題 - 修正: Claude Code終了時に
caffeinateプロセスが適切に終了せず、Macがスリープできない問題 - 修正:
!プレフィックス付きコマンド候補をタブ補完した際にbashモードがアクティブにならない問題 - 修正: 候補をナビゲート後に古いスラッシュコマンド選択が誤ったコマンドをハイライトする問題
- 修正:
/configメニューで検索カーソルとリスト選択が同時に表示される問題 - 修正: コンテキスト圧縮後にバックグラウンドサブエージェントが非表示になり、重複エージェントがスポーンされる可能性がある問題
- 修正: クリーンアップ中にgitやAPI呼び出しがハングした際、バックグラウンドエージェントタスクが「実行中」状態で停止する問題
- 修正: アップグレード後の初回起動時に
--channelsが「Channels are not currently available」と表示される問題 - 修正: アンインストールされたプラグインフックが次のセッションまで起動し続ける問題
- 修正: ストリーミングレスポンス中にキューイングされたコマンドがちらつく問題
- 修正: メッセージ処理中に送信されたスラッシュコマンドがテキストとしてモデルに送信される問題
- 修正: 折りたたまれた読み取り/検索グループが画面外にスクロールした後に完了すると、スクロールバックがジャンプする問題
- 修正: モデルが思考を開始または停止した際にスクロールバックが最上部にジャンプする問題
- 修正: フック進行状況/添付ファイルメッセージがparentUuidチェーンを分岐させることで、再開時にSDKセッション履歴が失われる問題
- 修正: ターミナルウィンドウ外でマウスを離した際に選択時コピーが実行されない問題
- 修正: 高さ制約付きリストでアイテムがオーバーフローした際にゴースト文字が表示される問題
- 修正: アイドルプロンプトで
Ctrl+Bがreadlineの後方移動を妨げる問題。現在はフォアグラウンドタスクをバックグラウンド化できる場合のみ発動 - 修正: ツール結果ファイルが
cleanupPeriodDays設定を無視してクリーンアップされない問題 - 修正: 音声ホールドトゥトーク解放後、最大3秒間スペースキーが無効化される問題
- 修正: オーディオハードウェアなしのLinux(Docker、ヘッドレス、WSL1)で音声モード使用時にALSAライブラリエラーがターミナルUIを破壊する問題
- 修正: Termux/Android上で音声モードのSoX検出が
whichのスポーンがカーネル制限されているため失敗する問題 - 修正: Remote Controlセッションがアクティブ実行中にWebセッションリストでアイドル表示される問題
- 修正: 設定駆動モードでフッターナビゲーションが非表示のRemote Controlピルを選択する問題
- 修正: リモートセッションでツール使用IDが無期限に蓄積されるメモリリーク
- 改善: 他のブート処理とプロファイル取得を並行化し、Bedrock SDKのコールドスタート遅延を改善
- 改善: 大規模セッションでの
--resumeのメモリ使用量と起動遅延を改善 - 改善: プラグイン起動の最適化。コマンド、スキル、エージェントが再取得なしでディスクキャッシュからロード
- 改善: Remote Controlセッションタイトル。AI生成タイトルが最初のメッセージから数秒以内に表示
- 改善:
WebFetchをClaude-Userとして識別し、サイト運営者がrobots.txt経由でClaude Codeトラフィックを認識・許可リスト化可能に - 改善: 大規模ページに対する
WebFetchのピークメモリ使用量を削減 - 改善: 長時間セッションでのスクロールバックリセットをターンごとから約50メッセージごとに削減
- 高速化: 非認証HTTP/SSE MCPサーバーでの
claude -p起動が約600ms高速化 - 改善: Bashゴーストテキスト候補が送信直後のコマンドを即座に含むように
- 拡大: 非ストリーミングフォールバックトークン上限(21k→64k)とタイムアウト(120s→300sローカル)を増加し、フォールバックリクエストが切り捨てられにくく
- 改善: レスポンス前にプロンプトを中断すると、入力が自動復元され編集・再送信可能に
- 改善:
/statusがClaude応答中も機能し、ターン終了まで待たずに実行可能に - 変更: 組織管理コネクターと重複するプラグインMCPサーバーが2つ目の接続を実行する代わりに抑制されるように
- Linux:
claude-cli://プロトコルハンドラー登録時にXDG_DATA_HOMEを尊重 - 変更: 「すべてのバックグラウンドエージェントを停止」のキーバインドを
Ctrl+FからCtrl+X Ctrl+Kに変更し、readlineの前方移動との競合を解消 - 非推奨:
TaskOutputツールを廃止し、バックグラウンドタスクの出力ファイルパスに対するReadの使用を推奨 - [VSCode] バックエンドが60秒間応答しない場合、スピナーが赤色になり「Not responding」と表示
- [VSCode] URLまたは再起動後にセッションを再開した際にセッション履歴が正しくロードされない問題を修正
原文(英語)を表示
What's changed
- Added
managed-settings.d/drop-in directory alongsidemanaged-settings.json, letting separate teams deploy independent policy fragments that merge alphabetically - Added
CwdChangedandFileChangedhook events for reactive environment management (e.g., direnv) - Added
sandbox.failIfUnavailablesetting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed - Added
disableDeepLinkRegistrationsetting to preventclaude-cli://protocol handler registration - Added
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers) - Added transcript search — press
/in transcript mode (Ctrl+O) to search,n/Nto step through matches - Added
Ctrl+X Ctrl+Eas an alias for opening the external editor (readline-native binding;Ctrl+Gstill works) - Pasted images now insert an
[Image #N]chip at the cursor so you can reference them positionally in your prompt - Agents can now declare
initialPromptin frontmatter to auto-submit a first turn chat:killAgentsandchat:fastModeare now rebindable via~/.claude/keybindings.json- Fixed mouse tracking escape sequences leaking to shell prompt after exit
- Fixed Claude Code hanging on exit on macOS
- Fixed screen flashing blank after being idle for a few seconds
- Fixed a hang when diffing very large files with few common lines — diffs now time out after 5 seconds and fall back gracefully
- Fixed a 1–8 second UI freeze on startup when voice input was enabled, caused by eagerly loading the native audio module
- Fixed a startup regression where Claude Code would wait ~3s for claude.ai MCP config fetch before proceeding
- Fixed
--mcp-configCLI flag bypassingallowedMcpServers/deniedMcpServersmanaged policy enforcement - Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available in single-turn
--printmode - Fixed
caffeinateprocess not properly terminating when Claude Code exits, preventing Mac from sleeping - Fixed bash mode not activating when tab-accepting
!-prefixed command suggestions - Fixed stale slash command selection showing wrong highlighted command after navigating suggestions
- Fixed
/configmenu showing both the search cursor and list selection at the same time - Fixed background subagents becoming invisible after context compaction, which could cause duplicate agents to be spawned
- Fixed background agent tasks staying stuck in "running" state when git or API calls hang during cleanup
- Fixed
--channelsshowing "Channels are not currently available" on first launch after upgrade - Fixed uninstalled plugin hooks continuing to fire until the next session
- Fixed queued commands flickering during streaming responses
- Fixed slash commands being sent to the model as text when submitted while a message is processing
- Fixed scrollback jumping when collapsed read/search groups finish after scrolling offscreen
- Fixed scrollback jumping to top when the model starts or stops thinking
- Fixed SDK session history loss on resume caused by hook progress/attachment messages forking the parentUuid chain
- Fixed copy-on-select not firing when you release the mouse outside the terminal window
- Fixed ghost characters appearing in height-constrained lists when items overflow
- Fixed
Ctrl+Binterfering with readline backward-char at an idle prompt — it now only fires when a foreground task can be backgrounded - Fixed tool result files never being cleaned up, ignoring the
cleanupPeriodDayssetting - Fixed space key being swallowed for up to 3 seconds after releasing voice hold-to-talk
- Fixed ALSA library errors corrupting the terminal UI when using voice mode on Linux without audio hardware (Docker, headless, WSL1)
- Fixed voice mode SoX detection on Termux/Android where spawning
whichis kernel-restricted - Fixed Remote Control sessions showing as Idle in the web session list while actively running
- Fixed footer navigation selecting an invisible Remote Control pill in config-driven mode
- Fixed memory leak in remote sessions where tool use IDs accumulate indefinitely
- Improved Bedrock SDK cold-start latency by overlapping profile fetch with other boot work
- Improved
--resumememory usage and startup latency on large sessions - Improved plugin startup — commands, skills, and agents now load from disk cache without re-fetching
- Improved Remote Control session titles: AI-generated titles now appear within seconds of the first message
- Improved
WebFetchto identify asClaude-Userso site operators can recognize and allowlist Claude Code traffic viarobots.txt - Reduced
WebFetchpeak memory usage for large pages - Reduced scrollback resets in long sessions from once per turn to once per ~50 messages
- Faster
claude -pstartup with unauthenticated HTTP/SSE MCP servers (~600ms saved) - Bash ghost-text suggestions now include just-submitted commands immediately
- Increased non-streaming fallback token cap (21k → 64k) and timeout (120s → 300s local) so fallback requests are less likely to be truncated
- Interrupting a prompt before any response now automatically restores your input so you can edit and resubmit
/statusnow works while Claude is responding, instead of being queued until the turn finishes- Plugin MCP servers that duplicate an org-managed connector are now suppressed instead of running a second connection
- Linux: respect
XDG_DATA_HOMEwhen registering theclaude-cli://protocol handler - Changed "stop all background agents" keybinding from
Ctrl+FtoCtrl+X Ctrl+Kto stop shadowing readline forward-char - Deprecated
TaskOutputtool in favor of usingReadon the background task's output file path - [VSCode] Spinner now turns red with "Not responding" when the backend hasn't responded for 60 seconds
- [VSCode] Fixed session history not loading correctly when reopening a session via URL or after restart