Claude Code v2.1.145 — Bashの環境変数代入で起きる権限バイパスを修正、セッション一覧のJSON出力を追加
Claude Code v2.1.145は、Bashコマンドの環境変数代入で権限プロンプトを回避できる問題を修正し、claude agents --jsonでセッション一覧をスクリプトから扱えるようにした版です。
⚠️ Bashコマンド内で非許可リストの環境変数を代入するだけで権限プロンプトを回避できる挙動が修正されています。
--dangerously-skip-permissionsを付けずにBashコマンドを許可リスト方式で運用しているチームでは、本版以降で許可リストの想定どおりに権限プロンプトが通るようになります。
このリリースで何ができるようになるか
Claude Code v2.1.145は、Bashコマンドの環境変数代入で権限プロンプトを回避できる問題を修正し、claude agents --json でセッション一覧をスクリプトから扱えるようになった版です。直前のv2.1.144がバックグラウンドセッションを /resume の導線に組み込む方向の更新だったのに対し、本版はそのバックグラウンドセッション群を外部ツールやスクリプトから機械的に扱える基盤を作り、あわせて権限まわりの抜け道を塞いだ版です。
読者の体験を直接変える主な変更は次の3つです。
claude agents --jsonでセッション一覧を機械可読出力できるようになります:claude agentsの一覧をJSONで取得できるようになり、tmux-resurrect、ステータスバー、独自のセッションピッカーといった外部ツールにClaude Codeのセッション状態を渡せます。あわせてclaude_code.toolのOTEL(OpenTelemetry、分散トレーシングの業界標準)スパンにagent_idとparent_agent_id属性が追加され、バックグラウンドのサブエージェントスパンが起動元のAgentツールスパン配下に正しく入れ子表示されます- プラグインの中身をインストール前に確認できるようになります:
/pluginの発見・閲覧画面で、プラグインが提供するコマンド・エージェント・スキル・フック・MCP/LSPサーバの一覧をインストール前に表示するようになります。何が増えるかを事前に把握したうえで導入判断ができます - Bashコマンドの環境変数代入での権限プロンプトバイパスが修正されます:Bashコマンド内で許可リストにない環境変数への裸の代入(例:
SOME_VAR=value commandのような形)が自動承認されていた抜け道が塞がれます
加えて、Stop/SubagentStopフックの入力に background_tasks と session_crons フィールドが追加され、Readツールがファイル全体読み取り時にトークン上限を超えた場合にハードエラーではなく「PARTIAL view」の警告付きで先頭ページを返すようになるなど、自動化とフック設計の前提となる情報まわりの改善が多数入っています。
あなたの開発フローはどう変わるか
Bashコマンドの権限プロンプトを許可リスト方式で運用している場合
本版で最も重要な修正が、Bashコマンドの権限プロンプトを回避できる抜け道の塞ぎです。これまでは、Bashコマンド内で許可リストに無い環境変数への裸の代入(SOME_VAR=value command のような書き方)が自動承認されていました。Bashの構文として VAR=value command は「command を実行するときの環境変数として VAR=value を一時設定する」という意味を持つため、許可リストの判定上は「環境変数代入だけだから安全」と扱われていた構造です。
この挙動は、許可リストでBashコマンドを絞っている運用にとっては、意図しないコマンドが代入と同時に実行される経路になっていました。本版以降は、許可リストに無い環境変数の代入を含むBashコマンドはきちんと権限プロンプトを通るようになります。--dangerously-skip-permissions を付けずに細かい許可リストでBashを運用しているチーム、特に複数開発者や自動化システムが同じClaude Codeセッションを使う環境では、本版以降で権限プロンプトが許可リストの想定どおりに発火する形に戻ります。
claude agents のセッションを外部ツールから扱いたい場合
v2.1.139でエージェントビューが追加され、v2.1.144で /resume の対象になるなど、バックグラウンドセッションは版を追うごとに対話セッションとの統合が進んできました。ただし、これらは「Claude Codeの内側」での統合にとどまり、外部ツール(tmuxプラグイン、ステータスバー、独自のセッションピッカーなど)からセッション状態を取得する手段は無いままでした。
本版で、claude agents --json を実行すると、現在動いているClaude Codeセッションの一覧をJSONで取得できます。changelogが挙げる典型用途は次の3つです。
- tmux-resurrect:tmuxのセッションを保存・復元するプラグインから、Claude Codeのセッションを判別できる
- ステータスバー:ターミナルマルチプレクサや独自シェルのステータスバーに、走行中のClaude Codeセッション数を表示できる
- セッションピッカー:fzfやrofiなどで、Claude Codeのセッションを一覧から選んでアタッチする独自スクリプトを書ける
合わせて、claude agents のターミナルタブタイトルに、入力待ちのセッション数が表示されるようになります。タブを切り替えていても、どのウィンドウのClaude Codeがユーザーの入力を待っているかが、タブタイトルだけで分かります。
OpenTelemetryでClaude Codeの動作をトレースしている場合
OpenTelemetry(OTel、分散トレーシングの業界標準)でClaude Codeを観測している場合、本版で claude_code.tool のスパンに agent_id と parent_agent_id 属性が追加されます。さらに、これまではバックグラウンドのサブエージェントが発行するスパンが、起動元のAgentツールスパン配下に入れ子されず、トレース上で親子関係が崩れていました。本版でこの親子関係(trace parenting)が修正され、サブエージェントのスパンが起動元のAgentツール呼び出しの配下に正しく入れ子表示されます。
エージェントが他のエージェントを呼び出す入れ子構造を、トレースビューワー上で「どの呼び出しからどの呼び出しが派生したか」として一目で追えるようになります。マルチエージェント運用のデバッグや、コスト分析でどのトップレベル呼び出しがどれだけのトークンを消費したかを分解する用途に効きます。
プラグインの導入判断をしている場合
これまでの /plugin の発見(Discover)・閲覧(Browse)画面では、プラグインの説明文や作者情報は確認できましたが、「インストールしたら何が増えるのか」(コマンド・エージェント・スキル・フック・MCPサーバ・LSPサーバ)はインストール後でないと分かりませんでした。プラグイン経由でフックやMCPサーバが追加されると、Claude Codeの権限挙動や外部接続が変わるため、事前に把握できないとセキュリティ判断が難しい状態でした。
本版で、/plugin の発見・閲覧画面が、プラグインが提供するコマンド・エージェント・スキル・フック・MCP/LSPサーバの一覧をインストール前に表示するようになります。フック数やMCPサーバ数を確認したうえで、社内で使うかどうかの判断ができます。
Stop/SubagentStopフックでバックグラウンドタスクを意識した制御をしたい場合
Stop/SubagentStopフック(Claudeが返答を返した直後や、サブエージェントが終了した直後に走るフック)の入力に、background_tasks と session_crons フィールドが追加されます。フックスクリプト側で「まだ動いているバックグラウンドタスクがあるか」「定期実行(session_crons)が設定されているか」を判定したうえで、追加処理を走らせるかどうかを決められます。
/loop のスケジュール実行や /goal のような自走系コマンドと、ローカルのフック処理を組み合わせて運用しているチームにとっては、「自走中なのに通知を出してしまう」「バックグラウンドジョブが走っているのに完了通知を出してしまう」といった誤発火を防ぐ材料が手に入ります。
ステータスラインにGitHub情報を出したい場合
statusLine 設定でカスタムステータスラインを使っている場合、ステータスラインスクリプトに渡されるJSON入力に、GitHubリポジトリとPR情報が含まれるようになります(検出できた場合のみ)。ステータスライン上に「現在のPR番号」「PR作成済みかどうか」を出したり、レビュー中のPRと作業中のブランチが一致しているかを表示したりする使い方ができます。
スラッシュコマンドや@-メンションをマウスで選びたい場合
フルスクリーンモードで、スラッシュコマンドと@-メンションの候補リストが、マウスホバーとクリックに対応するようになります。キーボード派・マウス派のいずれの操作でも候補から選べるようになり、ターミナルマルチプレクサのフルスクリーンモードでも操作の一貫性が増します。
主な変更点
追加・改善
claude agents --json— 走行中のClaude Codeセッションの一覧をJSONで出力。tmux-resurrect、ステータスバー、セッションピッカーなどの外部スクリプト連携用- OTELスパンに
agent_id/parent_agent_idを追加 —claude_code.toolスパンにエージェント識別子を追加し、バックグラウンドのサブエージェントスパンが起動元のAgentツールスパン配下に正しく入れ子される(trace parenting修正) - ステータスラインJSON入力にGitHubリポジトリ・PR情報 — 検出できた場合のみ追加
/pluginの発見・閲覧画面でプラグインの中身を事前表示 — コマンド・エージェント・スキル・フック・MCP/LSPサーバの一覧をインストール前に確認可能claude agentsのターミナルタブタイトルに入力待ちカウントを表示 — タブを切り替えていても、どのウィンドウが入力を待っているか分かる- スラッシュコマンドと@-メンションの候補リストがマウスホバー・クリック対応(フルスクリーンモード)
- Stop/SubagentStopフック入力に
background_tasksとsession_cronsを追加 - Readツールの大ファイル挙動を改善 — トークン上限を超えるファイル全体読み取り時に、ハードエラーではなく「PARTIAL view」注記付きの先頭ページを返すように
主な修正(セキュリティ)
- Bashコマンド内で許可リスト外の環境変数代入が自動承認されていた権限プロンプトのバイパスを修正
主な修正(その他)
- MCPプロンプトのスラッシュコマンドで必須引数を省略したとき、サーバの生のバリデーションエラーがそのまま表示されていた問題を修正。欠けた引数名と期待される使い方を表示するように
- ターミナルのリサイズや再フォーカスの後、キー入力があるまでスピナーと経過時間表示が固まる問題を修正
- クロスプロジェクトの再開ヒントが、Windows既定のPowerShell 5.1で機能しない問題を修正。Windowsではコマンドセパレータに
;を使うように - エージェントビューの返信ペインでボイスのプッシュ・トゥ・トークが動作しない問題を修正
- 複数のタスクを一度に作成したとき、タスクリストの並び順がランダムになる問題を修正
- マーケットプレイス導入済みなのに「Failed to install Anthropic marketplace」の古いバナーが残る問題を修正
- セッション内で
gh pr createなどPR状態を変えるコマンドを実行した直後、フッターのPRバッジが即座に更新されない問題を修正 - 非ASCII文字を含む名前のAgent Teamsメンバーで、HTTPヘッダの不正なエンコードによりAPI呼び出しがすべて失敗していた問題を修正
/reviewが非推奨のprojectCardsGraphQLクエリを使っており、Classic Projectsが有効なリポジトリでエラーになっていた問題を修正claude plugin validateが、skills:エントリにディレクトリではなくファイルを指定していた場合に検出できなかった問題を修正。エラーメッセージに親ディレクトリを示唆するようにcontext: forkを使うスキルが、実行されずに自身を繰り返し再呼び出しする無限ループを修正
v2.1.144とv2.1.145を機能体験で並べると何が違うか
直前のv2.1.144は、バックグラウンドセッションが /resume の対象になり、api.anthropic.com につながらない環境での起動ハングが解消された版でした。本版v2.1.145は、そのバックグラウンドセッション群を外部ツールから機械的に扱える出力(--json とOTELスパンの親子関係)を整え、加えてBashの権限プロンプトの抜け道を塞ぐことで、自動化と権限制御の両面を進めた版です。
| 領域 | v2.1.144 | v2.1.145 |
|---|---|---|
| バックグラウンドセッションの扱い | /resume の一覧に bg 印付きで表示 | claude agents --json でセッション一覧をJSON出力、外部ツール連携可能に |
| セキュリティ・権限 | 変更なし | Bashコマンドの環境変数代入での権限プロンプトバイパスを修正 |
| オブザーバビリティ | 変更なし | OTELスパンに agent_id / parent_agent_id 追加、サブエージェントの入れ子表示を修正 |
| プラグイン体験 | 閲覧・発見ペインに最終更新日を表示 | プラグインの中身(コマンド/エージェント/スキル/フック/MCP/LSP)を事前表示 |
| フック設計の入力 | 変更なし | Stop/SubagentStopに background_tasks と session_crons を追加 |
| ステータスライン | 変更なし | JSON入力にGitHubリポジトリ・PR情報を追加 |
| 起動・通信 | オフライン時の最大75秒ハングを解消 | 変更なし(本版は機能拡張と権限修正が中心) |
v2.1.144が「バックグラウンドセッションを対話セッションと同じ導線で再開できる」ところまで進めたのに対し、本版v2.1.145は「そのバックグラウンドセッション群をClaude Codeの外側からも扱えるようにする」方向に踏み出した版と読めそうです。claude agents --json の追加は、Claude Codeのセッション状態を外部の運用ツール(tmux、独自スクリプト、監視システム)から扱う土台を作るもので、エージェントビューが「人間が見るUI」だったのに対し、JSON出力は「機械が読むAPI」の役割を果たします。
運用形態別の影響度早見表
本版の変更が利用形態別にどの程度効くかを示すと、次のとおりです。
| 利用形態 | 判定 | 主な変化 |
|---|---|---|
| 許可リスト方式でBashを運用 | 明確な恩恵あり(セキュリティ) | 環境変数代入による権限プロンプトバイパスが塞がれる |
| 外部ツール(tmux、ステータスバー、独自ピッカー)と統合 | 明確な恩恵あり | claude agents --json でセッション一覧を機械可読出力できる |
| OpenTelemetryでClaude Codeをトレース | 明確な恩恵あり | スパン属性追加と親子関係修正で、エージェント入れ子が一目で追える |
| プラグインを社内で導入判断 | 明確な恩恵あり | 中身(コマンド/エージェント/スキル/フック/MCP/LSP)を事前確認できる |
| Stop/SubagentStopフックで自動化を組んでいる | 条件次第 | background_tasks / session_crons を見て誤発火を防げる |
| カスタムステータスラインを利用 | 条件次第 | GitHubリポジトリ・PR情報が入力JSONに追加される |
| Agent Teamsで非ASCII名のメンバーがいる | 条件次第 | API呼び出しが失敗していた問題が解消される |
/review をClassic Projects有効リポジトリで使用 | 条件次第 | GraphQLエラーが解消される |
| ローカルで対話のみ・拡張なしで使う | ほぼ影響なし | スピナー固まりや候補リストのマウス対応など、UI改善が間接的に効く程度 |
特にBashの権限プロンプトを許可リストで絞っている運用は、本版で抜け道が塞がれるため、許可リストの想定外コマンド実行を許してきた可能性がある点で更新価値が大きいと言えそうです。
セッション一覧のJSON出力(claude agents --json)がClaude Codeのエコシステム拡張に与える意味
本版の claude agents --json 追加は、単一の機能改善以上の方向性を示しています。これまでのClaude Codeのセッション管理は、/resume ピッカーやエージェントビューといったClaude Code内部のUIで完結する設計でした。外部ツールがClaude Codeのセッション状態を知るには、プロセス一覧を ps で監視するか、ログファイルを直接読みに行くしか手段が無く、運用スクリプトを安定して書けない状況でした。
JSON出力が公式に提供されることで、コミュニティが次のような統合を組み立てやすくなります。
- tmuxプラグイン:tmux-resurrectやtmux-continuumのようなセッション永続化プラグインが、Claude Codeのセッションを認識してアタッチ先を選べる
- シェル統合:zshやfishのプロンプト、starshipなどのプロンプトジェネレータに「走行中のClaude Codeセッション数」「入力待ちセッションの有無」を組み込める
- 監視・自動化:CIランナーやモニタリング基盤が、長時間動いているClaude Codeセッションを検出してアラートを上げたり、idle状態のセッションを自動的に終了したりできる
- 独自セッションピッカー:fzfやrofi、Alfredといったランチャーから、Claude Codeのセッションを選んでアタッチするワークフローを組める
v2.1.139でエージェントビューが追加されてから、/resume 対応・依存関係チェック・JSON出力と、版を追うごとにバックグラウンドセッションをClaude Codeのファーストクラス概念として整備する動きが続いています。本版はその流れの中で「外部からの観測・操作の口を開けた」ステップと位置付けられます。OTELスパンの親子関係修正と合わせて、マルチエージェント・バックグラウンド多重実行の運用が、外部の運用ツールチェーンと噛み合うようになる方向が見えてきます。
まとめ
Claude Code v2.1.145は、Bashコマンドの環境変数代入による権限プロンプトのバイパスを修正し、claude agents --json でセッション一覧を外部ツールから扱えるようになった版です。これに加えて、OTELスパンにエージェント識別子と親子関係が追加されてマルチエージェントのトレースが追いやすくなり、/plugin の発見・閲覧画面でプラグインが提供するコマンド・エージェント・スキル・フック・MCP/LSPサーバをインストール前に確認できるようになり、Stop/SubagentStopフックの入力に background_tasks と session_crons が追加されるなど、自動化と権限制御、オブザーバビリティの3方向で土台が整えられています。
許可リスト方式でBashを運用しているチーム、tmuxや独自ステータスバーとClaude Codeを統合したいチーム、OpenTelemetryでマルチエージェントの呼び出し関係を追っているチーム、社内でプラグインの導入可否を判断しているチームでは、本版で詰まりが取れる、または抜け道が塞がる方向に動きます。直前のv2.1.144でバックグラウンドセッションが対話セッションと同じ導線で扱えるようになった流れを、本版で「外部から機械的に扱える」ところまで広げた版と読めそうです。更新は claude update で取得でき、claude --version で 2.1.145 になっていれば本版の変更が反映されています。
関連する記事
Claude Code をもっと見る →Claude Code v2.1.143 — プラグインの依存関係チェックと、バックグラウンドセッションの設定保持
Claude Code v2.1.141 — フック通知の新フィールド + ワークスペース単位トークン
Claude Code v2.1.139 — agent viewと /goalコマンドの追加
Claude Code v2.1.144 — バックグラウンドセッションの/resume対応と、オフライン時の起動ハング解消
Claude Code v2.1.142 — fast modeがOpus 4.7既定に、claude agentsに起動時設定フラグを追加
Claude Code v2.1.140 — /goalの停止と企業環境での背景サービス起動失敗を解消する修正版
Claude Code v2.1.119 — /config永続化と--from-prのGitLab/Bitbucket
Claude Code v2.1.85 — フック条件分岐・AskUserQuestion・MCP RFC9728