v2.1.118
📝 概要
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.allow、autoMode.soft_deny、autoMode.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と/pluginErrorsタブに表示されるように改善 /mcpメニューがheadersHelperで設定されたサーバーのOAuth認証/再認証アクションを隠す問題を修正。カスタムヘッダー付きHTTP/SSE MCPサーバーが一時的な401後に「認証が必要」状態でスタックする問題を修正- MCPサーバーのOAuthトークンレスポンスが
expires_inを省略した場合に毎時間再認証が必要になる問題を修正 - MCPステップアップ認証で、サーバーの
insufficient_scope403が現在のトークンが既に持つスコープを指定した場合に、再同意プロンプトではなくサイレントリフレッシュしてしまう問題を修正 - 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検証サブエージェントによるツール呼び出し時に
prompthooksが再発火する問題を修正 /forkがforkごとに親会話全体をディスクに書き込む問題を修正 — ポインタを書き込み、読み取り時にハイドレートするように改善- Alt+K / Alt+X / Alt+^ / Alt+_ がキーボード入力をフリーズさせる問題を修正
- リモートセッション接続時にローカルの
~/.claude/settings.jsonのmodel設定が上書きされる問題を修正 /で始まるファイルパスを貼り付けた際にタイプアヘッドが「コマンドが一致しません」エラーを表示する問題を修正- 既にインストール済みのプラグインで
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
/costand/statsinto/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 athemes/directory - Hooks can now invoke MCP tools directly via
type: "mcp_tool" - Added
DISABLE_UPDATESenv var to completely block all update paths including manualclaude update— stricter thanDISABLE_AUTOUPDATER - WSL on Windows can now inherit Windows-side managed settings via the
wslInheritsWindowsSettingspolicy key - Auto mode: include
"$defaults"inautoMode.allow,autoMode.soft_deny, orautoMode.environmentto 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 tagto create release git tags for plugins with version validation --continue/--resumenow find sessions that added the current directory via/add-dir/colornow syncs the session accent color to claude.ai/code when Remote Control is connected- The
/modelpicker now honorsANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTIONoverrides when using a customANTHROPIC_BASE_URLgateway - When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in
/doctorand the/pluginErrors tab - Fixed
/mcpmenu hiding OAuth Authenticate/Re-authenticate actions for servers configured withheadersHelper, 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_inrequiring re-authentication every hour - Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's
insufficient_scope403 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
/loginhaving no effect in a session launched withCLAUDE_CODE_OAUTH_TOKEN— the env token is now cleared so disk credentials take effect - Fixed unreadable text in the "new messages" scroll pill and
/pluginbadges - 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
StoporSubagentStop - Fixed
prompthooks re-firing on tool calls made by an agent-hook verifier subagent - Fixed
/forkwriting 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
modelsetting in~/.claude/settings.json - Fixed typeahead showing "No commands match" error when pasting file paths that start with
/ - Fixed
plugin installon 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
SendMessagenot restoring the explicitcwdthey were spawned with