Claude Code Changelog

v2.1.118

2026年4月23日 GitHub で見る

📝 概要

Vim visual モード追加、使用状況コマンド統合、カスタムテーマ機能、MCPフック強化など大幅な機能追加とバグ修正を実施

🔄 主な変更点

  • Vim visual モード追加: v (visual mode) と V (visual-line mode) のサポート、選択・操作・視覚フィードバック機能を実装
  • コマンド統合: /cost/stats/usage に統合(既存コマンドもショートカットとして使用可能)
  • カスタムテーマ機能: /theme から名前付きテーマの作成・切り替えが可能、~/.claude/themes/ でJSON編集可、プラグインからのテーマ提供もサポート
  • MCP直接呼び出し: Hooksから type: "mcp_tool" で直接MCPツールを呼び出し可能に
  • アップデート制御強化: DISABLE_UPDATES 環境変数で手動更新含む全更新パスをブロック可能
  • WSL設定継承: Windows上のWSLがWindowsの管理設定を継承可能(wslInheritsWindowsSettings ポリシーキー)
  • Auto mode柔軟化: "$defaults" を使用してビルトインルールとカスタムルールの併用が可能
  • プラグイン管理: claude plugin tag でバージョン検証付きリリースタグ作成が可能
  • 多数のバグ修正: MCP OAuth、認証情報保存、キーボード入力フリーズ、Remote Control、ファイルウォッチャーなど

💡 解説・活用案

今回のリリースでは、Vimユーザー向けのvisual modeサポートにより編集効率が大幅に向上します。カスタムテーマ機能は、チームで統一した見た目を共有したり、作業内容に応じてテーマを切り替えるといった使い方が可能です。$defaults によるAuto modeのルール拡張は、既存の安全性を保ちながら組織固有のワークフローを追加できるため、エンタープライズ環境での導入がより柔軟になります。

🌐 日本語訳

変更内容

  • Vim visual mode (v) と visual-line mode (V) を追加。選択、操作、視覚的フィードバックを実装
  • /cost/stats/usage に統合 — 両コマンドはタイピングショートカットとして残り、関連タブを開く
  • /theme から名前付きカスタムテーマの作成・切り替えが可能に。~/.claude/themes/ でJSONファイルを直接編集可能。プラグインも themes/ ディレクトリ経由でテーマを提供可能
  • Hooksが type: "mcp_tool" で直接MCPツールを呼び出し可能に
  • DISABLE_UPDATES 環境変数を追加。手動の claude update を含むすべての更新パスを完全にブロック — DISABLE_AUTOUPDATER より厳格
  • Windows上のWSLが wslInheritsWindowsSettings ポリシーキーでWindows側の管理設定を継承可能に
  • Auto mode: autoMode.allowautoMode.soft_denyautoMode.environment"$defaults" を含めることで、ビルトインリストを置き換える代わりにカスタムルールを追加可能
  • Auto modeオプトインプロンプトに「次回から表示しない」オプションを追加
  • claude plugin tag を追加。バージョン検証付きでプラグインのリリースgitタグを作成
  • --continue/--resume/add-dir で現在のディレクトリを追加したセッションを検索するように改善
  • /color がRemote Control接続時にセッションのアクセントカラーを claude.ai/code に同期
  • /model ピッカーがカスタム ANTHROPIC_BASE_URL ゲートウェイ使用時に ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION のオーバーライドを反映
  • 自動更新が他のプラグインのバージョン制約によりプラグインをスキップした場合、そのスキップが /doctor/plugin Errorsタブに表示されるように改善
  • /mcp メニューが headersHelper で設定されたサーバーのOAuth認証/再認証アクションを隠す問題を修正。カスタムヘッダー付きHTTP/SSE MCPサーバーが一時的な401後に「認証が必要」状態でスタックする問題を修正
  • MCPサーバーのOAuthトークンレスポンスが expires_in を省略した場合に毎時間再認証が必要になる問題を修正
  • MCPステップアップ認証で、サーバーの insufficient_scope 403が現在のトークンが既に持つスコープを指定した場合に、再同意プロンプトではなくサイレントリフレッシュしてしまう問題を修正
  • MCPサーバーのOAuthフローがタイムアウトまたはキャンセルされた際の未処理のpromise rejectionを修正
  • MCP OAuth更新が競合時にクロスプロセスロックなしで進行する問題を修正
  • macOSキーチェーンの競合状態で、同時実行されるMCPトークン更新が新しく更新されたOAuthトークンを上書きし、予期しない「/login を実行してください」プロンプトが表示される問題を修正
  • サーバーがローカルの有効期限前にトークンを取り消した際にOAuthトークン更新が失敗する問題を修正
  • Linux/Windowsで認証情報保存時のクラッシュが ~/.claude/.credentials.json を破損する問題を修正
  • CLAUDE_CODE_OAUTH_TOKEN で起動したセッションで /login が効果を持たない問題を修正 — env トークンがクリアされ、ディスク認証情報が有効になるように改善
  • 「新しいメッセージ」スクロールピルと /plugin バッジのテキストが読めない問題を修正
  • --dangerously-skip-permissions で実行時にプラン受諾ダイアログが「バイパス権限」ではなく「auto mode」を提示する問題を修正
  • Stop または SubagentStop 以外のイベント用に設定されたagent-type hooksが「Messages are required for agent hooks」で失敗する問題を修正
  • agent-hook検証サブエージェントによるツール呼び出し時に prompt hooksが再発火する問題を修正
  • /fork がforkごとに親会話全体をディスクに書き込む問題を修正 — ポインタを書き込み、読み取り時にハイドレートするように改善
  • Alt+K / Alt+X / Alt+^ / Alt+_ がキーボード入力をフリーズさせる問題を修正
  • リモートセッション接続時にローカルの ~/.claude/settings.jsonmodel 設定が上書きされる問題を修正
  • / で始まるファイルパスを貼り付けた際にタイプアヘッドが「コマンドが一致しません」エラーを表示する問題を修正
  • 既にインストール済みのプラグインで plugin install を実行しても、間違ったバージョンでインストールされた依存関係が再解決されない問題を修正
  • 無効なパスやfd枯渇時のファイルウォッチャーからの未処理エラーを修正
  • JWT更新中のCCR初期化の一時的な問題でRemote Controlセッションがアーカイブされる問題を修正
  • SendMessage で再開されたサブエージェントが、起動時に明示的に指定された cwd を復元しない問題を修正
原文(英語)を表示

What's changed

  • Added vim visual mode (v) and visual-line mode (V) with selection, operators, and visual feedback
  • Merged /cost and /stats into /usage — both remain as typing shortcuts that open the relevant tab
  • Create and switch between named custom themes from /theme, or hand-edit JSON files in ~/.claude/themes/; plugins can also ship themes via a themes/ directory
  • Hooks can now invoke MCP tools directly via type: "mcp_tool"
  • Added DISABLE_UPDATES env var to completely block all update paths including manual claude update — stricter than DISABLE_AUTOUPDATER
  • WSL on Windows can now inherit Windows-side managed settings via the wslInheritsWindowsSettings policy key
  • Auto mode: include "$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing it
  • Added a "Don't ask again" option to the auto mode opt-in prompt
  • Added claude plugin tag to create release git tags for plugins with version validation
  • --continue/--resume now find sessions that added the current directory via /add-dir
  • /color now syncs the session accent color to claude.ai/code when Remote Control is connected
  • The /model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL gateway
  • When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in /doctor and the /plugin Errors tab
  • Fixed /mcp menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with headersHelper, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401
  • Fixed MCP servers whose OAuth token response omits expires_in requiring re-authentication every hour
  • Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's insufficient_scope 403 names a scope the current token already has
  • Fixed an unhandled promise rejection when an MCP server's OAuth flow times out or is cancelled
  • Fixed MCP OAuth refresh proceeding without its cross-process lock under contention
  • Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token, causing unexpected "Please run /login" prompts
  • Fixed OAuth token refresh failing when the server revokes a token before its local expiry time
  • Fixed credential save crash on Linux/Windows corrupting ~/.claude/.credentials.json
  • Fixed /login having no effect in a session launched with CLAUDE_CODE_OAUTH_TOKEN — the env token is now cleared so disk credentials take effect
  • Fixed unreadable text in the "new messages" scroll pill and /plugin badges
  • Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with --dangerously-skip-permissions
  • Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than Stop or SubagentStop
  • Fixed prompt hooks re-firing on tool calls made by an agent-hook verifier subagent
  • Fixed /fork writing the full parent conversation to disk per fork — now writes a pointer and hydrates on read
  • Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input
  • Fixed connecting to a remote session overwriting your local model setting in ~/.claude/settings.json
  • Fixed typeahead showing "No commands match" error when pasting file paths that start with /
  • Fixed plugin install on an already-installed plugin not re-resolving a dependency installed at the wrong version
  • Fixed unhandled errors from file watcher on invalid paths or fd exhaustion
  • Fixed Remote Control sessions getting archived on transient CCR initialization blips during JWT refresh
  • Fixed subagents resumed via SendMessage not restoring the explicit cwd they were spawned with