バックナンバー · BACK ISSUE
v2.1.163
バージョン範囲を制限する管理設定、/plugin list コマンド、/btw のコピー用ショートカット、Stop/SubagentStop フックの拡張出力を追加し、あわせて claude -p・Windows/bazel での Bash・権限ルール・フック・claude agents のバックグラウンドセッション周りの多数の修正を含むリリースです。
管理設定
requiredMinimumVersionとrequiredMaximumVersionを追加しました。Claude Code は自身のバージョンが許可された範囲外の場合は起動を拒否し、承認済みのバージョンへ案内します。詳しく
組織が許可する Claude Code のバージョン範囲を指定できる新しい管理設定です。requiredMinimumVersionとrequiredMaximumVersionを設定しておくと、Claude Code は自身のバージョンがその範囲外のときに起動を拒否し、承認済みのバージョンを使うよう利用者に案内します。古すぎる版や検証していない新しい版を社内で使わせたくない管理者が、バージョンを統制しやすくなります。インストール済みのプラグインを一覧表示する
/plugin listコマンドを追加しました。--enabled/--disabledで絞り込めます。詳しく
導入済みのプラグインを確認するための新しいコマンドです。/plugin listを実行すると現在インストールされているプラグインの一覧が表示され、--enabledや--disabledを付ければ有効・無効のものだけに絞り込めます。どのプラグインが入っていて、どれが有効になっているかをその場で把握できます。/btwに「c でコピー」のショートカットを追加しました。回答の生 Markdown をクリップボードにコピーし、別の場所に貼り付けたときに書式を保てます。詳しく
補足質問に答える/btwの使い勝手を高める追加です。回答が表示されているときにcを押すと、その回答の元になった Markdown テキストをそのままクリップボードにコピーできます。別のエディタやドキュメントに貼り付けても見出しや箇条書きなどの書式が崩れずに残るため、回答を再利用しやすくなります。フック: Stop および SubagentStop フックが
hookSpecificOutput.additionalContextを返せるようになり、フックエラー扱いにせずに Claude へフィードバックを渡してターンを継続できるようになりました。詳しく
ターン終了時に走る Stop / SubagentStop フックの機能拡張です。これまではフックから Claude に何かを伝えるとエラー扱いになりがちでしたが、今後はhookSpecificOutput.additionalContextに内容を入れて返すことで、エラーとはせずに Claude へ追加の指示やフィードバックを渡し、そのままターンを続けさせられます。たとえば「まだ作業が残っている」と伝えて処理を継続させる、といった制御がしやすくなります。スキル: コマンド本文で数字の前にリテラルの
$を入れるための\$エスケープ構文を追加しました。詳しく
スキルのコマンド本文で記号を扱う際の追加です。$1のような表記は引数の置換として解釈されますが、$をそのまま文字として残したい場合がありました。今後は\$と書くことで数字の前にリテラルの$を出力でき、引数置換と混同されずに済みます。価格表記やシェル変数など、$の直後に数字が続く文字列を正しく書けるようになります。
stdio の MCP サーバが、
--resume時にフックや Bash と同じCLAUDE_CODE_SESSION_IDを受け取るようになりました。詳しく
標準入出力(stdio)で接続する MCP サーバへ渡される環境変数の改善です。これまではセッションを--resumeで再開したとき、MCP サーバが受け取るCLAUDE_CODE_SESSION_IDがフックや Bash のものと食い違うことがありました。今後は再開時も同じセッション ID が渡されるため、セッション単位で状態を管理する MCP サーバが正しく同じセッションとして扱えるようになります。バックグラウンドのエージェントセッションが、新しい Claude Code のバージョンへバックグラウンドで更新されるようになりました。更新後にセッションを開くときにコールドリスタートを待たずに済みます。
詳しく
バックグラウンドで動くエージェントセッションの更新方法に関する改善です。これまでは Claude Code を更新した後にセッションを開くと、その場で起動し直す(コールドリスタート)ために待たされていました。今後は新しいバージョンへの更新がバックグラウンドで進められるため、更新直後にセッションを開いても待ち時間なくすぐに使い始められます。/メニュー内の組み込みコマンドとスキルの説明をより分かりやすくしました。詳しく
スラッシュコマンドを選ぶ/メニューの表示に関する改善です。組み込みのコマンドやスキルに添えられた説明文が、より分かりやすい表現に見直されました。各コマンドが何をするものかをメニュー上で把握しやすくなり、目的のコマンドを選びやすくなります。サブスクリプション切り替えの提案が、トースト通知ではなく起動時のお知らせ枠に表示されるようになりました。
詳しく
プランの切り替えを促す提案の表示場所を変える改善です。これまでは画面に一時的に出るトースト通知として表示されていましたが、今後は起動時のお知らせ枠にまとめて表示されます。通知が流れて消えてしまわず、起動時に他のお知らせと一緒に落ち着いて確認できます。状態別にグループ化したビューから
claude agentsでディスパッチすると、エージェントビューを開いたディレクトリでセッションが開始されるようになりました。詳しく
claude agentsで新しいセッションを起動(ディスパッチ)するときの作業ディレクトリに関する改善です。セッションを状態ごとにまとめて表示するビューから起動した場合、これまでは意図しない場所でセッションが始まることがありました。今後はエージェントビューを開いたときのディレクトリでセッションが開始されるため、想定どおりのプロジェクトで作業を始められます。
バックグラウンドのコマンドが終了しない場合に、
claude -pが最終結果を出した後も永遠にハングする問題を修正。標準入力が閉じた後、結果から約 5 秒でバックグラウンドのシェルが停止されるようになりました。詳しく
非対話実行のclaude -pが終わらなくなる問題の修正です。バックグラウンドで起動したコマンドがずっと終了しないと、claude -pは最終結果を出力した後もプロセスが終わらず、いつまでもハングしていました。今後は標準入力が閉じた後、結果出力からおよそ 5 秒でバックグラウンドのシェルが停止されるため、スクリプトや CI から呼び出しても処理が固まったままにならずに済みます。CI=trueで Anthropic の API キーが設定されていないとき、Bedrock/Vertex/Foundry 上でclaude -pが「ANTHROPIC_API_KEY required」で失敗する問題を修正。詳しく
Bedrock・Vertex・Foundry といったクラウド経由で Claude を使う構成でのclaude -pの修正です。これらの環境では Anthropic の API キーは不要ですが、CI=trueが設定されていてキーが無いと「ANTHROPIC_API_KEY required」と誤って失敗していました。今後はこれらのプロバイダー利用時に Anthropic の API キーが無くても CI 上で正しく動作します。bazel や EDR で保護された Go のワークフローで bash コマンドが失敗する問題を修正。
$TMPDIRがサンドボックス対象のコマンドだけでなく全コマンドで/tmp/claude-{uid}に上書きされていました(2.1.154 でのリグレッション)。詳しく
Bash コマンドの一時ディレクトリの扱いに関する修正です。2.1.154 の変更で、本来はサンドボックス内で実行するコマンドだけに適用すべき$TMPDIRの/tmp/claude-{uid}への上書きが、すべてのコマンドに適用されてしまっていました。その影響で bazel や EDR(エンドポイント検知・対応)で保護された Go のワークフローが失敗していました。今後は上書きがサンドボックス対象のコマンドに限られ、これらのビルドが正しく動作します。Windows で、セッション環境用ディレクトリが読み取り専用属性を持つ場合や OneDrive 内にある場合に、Bash コマンドが「EEXIST: file already exists」で失敗する問題を修正。
詳しく
Windows での Bash コマンド実行に関する修正です。セッション用の環境を置くディレクトリが読み取り専用属性になっていたり OneDrive の同期フォルダ内にあったりすると、「EEXIST: file already exists(ファイルが既に存在する)」というエラーで Bash コマンドが失敗していました。今後はこうした条件でもディレクトリの扱いが正しく処理され、コマンドが実行できるようになります。新規の設定ディレクトリで起動中に管理設定の取得が完了した場合、組織が管理する権限ルールがセッション全体に適用されない問題を修正。
詳しく
組織が一括管理する権限ルールの適用に関する修正です。設定ディレクトリがまだ無い初回起動などで、起動の途中に管理設定の取得が完了するタイミングだと、取得した権限ルールがそのセッションの間ずっと反映されないことがありました。今後はこの場合でも管理設定の権限ルールがセッション全体に正しく適用され、組織のポリシーが確実に効くようになります。claude agentsのバックグラウンドセッションが、Claude Code の更新後に再アタッチすると実行中のバックグラウンドタスクを失う問題を修正。詳しく
claude agentsのバックグラウンドセッションに関する修正です。Claude Code を更新した後にセッションへ接続(再アタッチ)し直すと、それまで動いていたバックグラウンドのタスクが失われてしまうことがありました。今後は更新をはさんで再接続しても実行中のバックグラウンドタスクが保持され、作業の続きをそのまま追えるようになります。Esc を押してエージェントビューを終了する際に、端末の表示が崩れたり数秒間ハングしたりする問題を修正。
詳しく
エージェントの一覧画面(エージェントビュー)を閉じるときの表示に関する修正です。これまでは Esc で画面を抜けると、端末の表示位置がずれて崩れたり、数秒間操作を受け付けずに固まったりすることがありました。今後は Esc での終了がすぐに行われ、端末の表示も崩れなくなります。デスクトップアプリで、対象のプロセスが既に終了している場合にバックグラウンドタスクのチップの Stop をクリックしてもチップが消えない問題を修正。
詳しく
デスクトップアプリのバックグラウンドタスク表示(チップ)に関する修正です。チップが指すプロセスが既に終了していると、Stop ボタンを押してもチップが画面に残り続けることがありました。今後はこの場合でも Stop をクリックすればチップが正しく消えるため、もう動いていないタスクの表示が残って紛らわしくなることがなくなります。端末が貼り付けの終端マーカーを取りこぼした場合に、貼り付け操作の後でキーボード入力が完全に反応しなくなる問題を修正。
詳しく
テキストの貼り付け後にキー入力が効かなくなる問題の修正です。端末が貼り付けの「終わり」を示す印(終端マーカー)を取りこぼすと、Claude Code が貼り付けがまだ続いていると誤認し、その後のキーボード入力をいっさい受け付けなくなることがありました。今後はこのケースでも入力状態が正しく戻り、貼り付け後も通常どおりキー入力できます。フックの
if: "Bash(...)"条件が、$()や$VARを含むあらゆる Bash コマンドで発火してしまう問題を修正。パターンがサブシェルやバッククォート内のコマンドにも照合されるようになりました。詳しく
フックの発火条件if: "Bash(...)"のマッチングに関する修正です。これまでは$()や$VARを含むコマンドだと、本来意図しないものまで含めて毎回フックが発火していました。今後はサブシェル($())やバッククォートの中に書かれたコマンドに対してもパターンが正しく照合されるようになり、条件に合致するコマンドのときだけフックが発火します。意図しない発火が減り、フックの条件指定が信頼できるようになります。ホームディレクトリのパスに対する deny ルール(例:
Read(~/Desktop/**))が、$HOME経由でそのパスを参照する Bash コマンドをブロックしない問題を修正。詳しく
ホームディレクトリ配下のパスを拒否する権限ルールに関する修正です。これまではRead(~/Desktop/**)のようにチルダ(~)で書いた deny ルールが、Bash コマンドが同じ場所を$HOME/Desktopのように$HOMEで参照した場合には効かず、ブロックをすり抜けていました。今後は$HOME経由でアクセスするコマンドも同じパスとして判定され、拒否ルールが正しく適用されます。/mcpや/pluginsのようなパネルダイアログを閉じた後に、トランスクリプトへ「(no content)」の行が残る問題を修正。詳しく
パネル型のダイアログを閉じた後の表示に関する修正です。/mcpや/pluginsなどのパネルを開いて閉じると、会話の記録(トランスクリプト)に「(no content)」という中身のない行が残ってしまうことがありました。今後はこの不要な行が残らず、トランスクリプトがすっきり保たれます。
原文 Markdown を表示
## 2.1.163
- Added `requiredMinimumVersion` and `requiredMaximumVersion` managed settings — Claude Code refuses to start if its version is outside the allowed range and directs the user to an approved version
- Added `/plugin list` command to list installed plugins, with `--enabled`/`--disabled` filters
- Added a "c to copy" shortcut to `/btw` that copies the raw markdown answer to the clipboard, preserving formatting when pasted elsewhere
- Hooks: Stop and SubagentStop hooks can now return `hookSpecificOutput.additionalContext` to give Claude feedback and keep the turn going without being labeled a hook error
- Skills: added `\$` escape syntax to include a literal `$` before a digit in command bodies
- stdio MCP servers now receive the same `CLAUDE_CODE_SESSION_ID` as hooks/Bash on `--resume`
- Fixed `claude -p` hanging forever after its final result when a backgrounded command never exits — background shells are now stopped ~5s after the result once stdin closes
- Fixed `claude -p` failing with "ANTHROPIC_API_KEY required" on Bedrock/Vertex/Foundry when `CI=true` and no Anthropic API key is set
- Fixed bash commands failing under bazel and EDR-protected Go workflows: `$TMPDIR` was overridden to `/tmp/claude-{uid}` for all commands instead of only sandboxed ones (regression in 2.1.154)
- Fixed Bash commands failing on Windows with "EEXIST: file already exists" on the session-env directory when it has the read-only attribute or is inside OneDrive
- Fixed org-managed permission rules not applying for the entire session when the managed settings fetch completed during startup on a fresh config directory
- Fixed background sessions in `claude agents` losing their running background tasks when reattached after a Claude Code update
- Fixed terminal misalignment and a multi-second hang when exiting the agent view by pressing Esc
- Fixed clicking Stop on a background-task chip in the desktop app not clearing the chip when the underlying process was already gone
- Fixed keyboard input becoming permanently unresponsive after a paste operation whose end marker is dropped by the terminal
- Fixed hook `if: "Bash(...)"` conditions firing on every Bash command containing `$()` or `$VAR`; the pattern now matches against commands inside subshells and backticks too
- Fixed deny rules on home-directory paths (e.g. `Read(~/Desktop/**)`) not blocking Bash commands that reference the path via `$HOME`
- Fixed a stray "(no content)" line left in the transcript after closing panel dialogs like /mcp and /plugins
- Background agent sessions now update to a new Claude Code version in the background, so opening a session after an update no longer waits on a cold restart
- Clearer descriptions for built-in commands and skills in the / menu
- The subscription-switch suggestion now shows in the startup announcement slot instead of a toast
- `claude agents` dispatching from the state-grouped view now starts the session in the directory the agent view was opened from