はじめに
Claude Codeの公式「What’s new」週次ダイジェスト(https://code.claude.com/docs/en/whats-new)は、2026-09-06時点で最新が「Week 34」(2026年8月17〜21日、v2.1.234〜v2.1.239)止まりで、直近1週間のv2.1.257〜v2.1.261の内容はまだ掲載されていない。一方GitHubのCHANGELOG.md(https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)にはv2.1.261まで既に記載がある。このブログでは以前からdocsサイトよりCHANGELOG.mdを優先する方針を取っているが、今回のように「docsサイトがまだ丸ごと1週間分遅れている」実例が確認できたのは初めてで、方針の妥当性を裏付ける具体的な根拠になった。
今回取り上げるのはv2.1.260(2026-09-03公開、GitHub Releasesで確認)のCHANGELOG.md記載3項目。
Added a diff panel that opens beside the conversation in fullscreen mode and shows your uncommitted changes as Claude edits; toggle it with /diffAdded /reload-plugins to headless sessions, so it appears in the Claude Code Desktop and SDK command listsAdded a text form of /advisor (/advisor, /advisor <model>, /advisor off) for the desktop app, Remote Control, and other headless (-p/Agent SDK) sessions
「ヘッドレス(-p)対応が増えた」という書き方は共通だが、実際に無人パイプラインへ組み込めるのはどれか。手元の環境(v2.1.258、これらの3項目より前のバージョン)と、npmで隔離環境に用意したv2.1.260をclaude -pで対照実験し、実際に動くもの・動かないものを実測で切り分けた。
手順: ヘッドレスで実際に何が変わったかを検証する
検証の骨子は3段階。
- 手元の旧バージョン(v2.1.258)で
/advisor・/reload-plugins・/diffをclaude -pから叩き、応答とコストを記録する。 - 比較のため、存在しないコマンド名を叩いて「バージョン未対応」と「単なる未知のコマンド」の応答がどう違うかを確認する。
- グローバル環境を汚さないよう
npm install --prefixで隔離ディレクトリにv2.1.260を導入し、同じコマンドを叩いて差分を見る。
この3段階をそのまま実行できる形にしたのが次のプロンプト集。
コピペ用プロンプト集
プロンプト1: 手元バージョンでのベースライン取得
前提: claudeコマンドが導入済みで、jqが使えること。
claude --version
claude -p "/advisor" --output-format json | jq '{result, total_cost_usd, duration_ms}'
claude -p "/reload-plugins" --output-format json | jq '{result, total_cost_usd, duration_ms}'
claude -p "/diff" --output-format json | jq '{result, total_cost_usd, duration_ms}'
期待結果(手元v2.1.258での実測):
2.1.258 (Claude Code)
{
"result": "/advisor isn't available in this environment.",
"total_cost_usd": 0,
"duration_ms": 20
}
{
"result": "/reload-plugins isn't available in this environment.",
"total_cost_usd": 0,
"duration_ms": 19
}
{
"result": "/diff isn't available in this environment.",
"total_cost_usd": 0,
"duration_ms": 19
}
成功判定: 3つともtotal_cost_usdが0であること。これはAPIへのリクエストを一切送らず、ローカルの判定だけで即座に応答が返っていることを意味する(duration_msも20ms前後と、モデル呼び出しでは到底出ない速さ)。バージョンが古い場合、この3コマンドは「動かない」のではなく「動かないと自己申告して即座に終わる」という穏やかな失敗の仕方をする。
プロンプト2: 「未知のコマンド」との違いを確認する対照実験
前提: プロンプト1と同じ環境。
claude -p "/thiscommanddoesnotexist12345" --output-format json | jq -r '.result'
期待結果:
Unknown command: /thiscommanddoesnotexist12345
成功判定: プロンプト1で見た"/advisor isn't available in this environment."と、この"Unknown command: ..."が明確に異なる文言であることを確認する。同じにならなかった場合、/advisor・/reload-plugins・/diffはコマンドとして認識された上で「今の実行環境では使えない」と判定されている、つまり存在しないコマンド名を打ち間違えたのとは別の状態だと分かる。
プロンプト3: 隔離環境に特定バージョンを導入して対照実験する
前提: npmが使え、ネットワーク接続があること。グローバルのclaude本体には触らない。
mkdir -p /tmp/cc-2.1.260
npm install @anthropic-ai/claude-code@2.1.260 --prefix /tmp/cc-2.1.260 --no-save
/tmp/cc-2.1.260/node_modules/.bin/claude --version
which claude
期待結果:
2.1.260 (Claude Code)
/Users/(あなたのユーザー名)/.local/bin/claude
成功判定: 新しいバージョンの表示に加えて、which claudeが示すグローバルのパスが検証前と変わっていないこと。--prefix付きのnpm installはカレントの隔離ディレクトリ配下にしかファイルを置かないため、既存のセットアップ(このブログの自動投稿パイプラインが使っている本番のclaude本体)に影響しない。
プロンプト4: v2.1.260で3コマンドがどう変わったかを確認する
前提: プロンプト3で/tmp/cc-2.1.260にインストール済み。
CC=/tmp/cc-2.1.260/node_modules/.bin/claude
$CC -p "/advisor" --output-format json | jq -r '.result'
$CC -p "/reload-plugins" --output-format json | jq -r '.result'
$CC -p "/diff" --output-format json | jq -r '.result'
期待結果(実測。プラグイン構成によって/reload-pluginsの件数は環境ごとに変わる):
Advisor: off
Usage: /advisor <fable|opus|sonnet|off>
Reloaded: 18 plugins · 189 skills · 8 agents · 9 hooks · 0 plugin LSP servers
/diff isn't available in this environment.
成功判定: /advisorと/reload-pluginsは具体的な状態(現在のアドバイザー設定、リロードされたプラグイン・スキル・エージェント・フックの件数)を返すようになっている一方、/diffだけはv2.1.260でも文言が一切変わっていないこと。これが今回の核心の発見で、CHANGELOG.mdの3項目はどれも「ヘッドレス対応」と読めるが、実際にヘッドレスで機能するのは/advisorと/reload-pluginsだけで、/diffは「フルスクリーンモードの会話横に開くパネル」という機能の性質上、無人実行では原理的に表示のしようがない。バージョンを上げても解決しない種類の「対応外」がある、という点は見落としやすい。
プロンプト5: --advisorフラグを安価なメインモデルと組み合わせて呼び出す
前提: プロンプト3の環境。実際にAPIを呼ぶため、わずかに課金が発生する(下記の実測では約3.6セント)。
CC=/tmp/cc-2.1.260/node_modules/.bin/claude
$CC -p "2+2は?" --model haiku --advisor sonnet --output-format json \
| jq '{result, total_cost_usd, models_used: (.modelUsage | keys)}'
期待結果(実測):
{
"result": "2+2 = 4 です。",
"total_cost_usd": 0.035714499999999996,
"models_used": ["claude-haiku-4-5-20251001"]
}
成功判定: models_usedにメインモデル(claude-haiku-4-5-20251001)しか含まれておらず、--advisor sonnetで指定したSonnetが呼ばれていないこと。公式ドキュメント(https://code.claude.com/docs/en/advisor)は「Claude decides when to call the advisor」(アドバイザーをいつ呼ぶかはClaude自身が判断する)と説明しており、単純な四則演算のような一手で終わるタスクでは呼ばれない。この実測はその説明を裏付けている。逆に言えば、--advisorを付けただけでは追加コストは発生せず、Claudeが「詰まった」「判断に迷う」と感じた場面でだけ課金対象になる。
活用例: 無人パイプラインへの組み込み方
このブログの自動投稿パイプライン(daily_post_runner.sh)のように、スケジュール実行でclaude -pを叩く運用を念頭に、今回の検証結果を次のように整理できる。
- バージョンアップ後の初回だけ、プロンプト1・4のような版差監査をワンライナーで流す。
/reload-pluginsのように「Added to headless sessions」と書かれた項目は、実際に空応答から実データに変わることを確認してから初めてパイプラインに組み込む。 - コスト最適化に
--advisorを使う場合は、modelUsageを毎回ログに残す。 プロンプト5で見た通りアドバイザーは常に呼ばれるわけではないため、「安いメインモデル+強いアドバイザー」構成の実際のコスト増分は、ログを溜めて後から確認する以外に把握する方法がない。 - 長時間稼働するヘッドレスセッションでプラグイン/フックを更新したら、再起動の代わりに
/reload-pluginsを挟む選択肢が増えた。 ただし次の「注意点」で触れる通り、無条件に安全というわけではない。 /diffはパイプラインに組み込まない。 無人スクリプトで変更差分を取得したいなら、素直にgit diffを使う方が確実で、バージョンが上がるのを待つ必要もない。
注意点・つまずき所
/reload-pluginsの繰り返し呼び出しはコンテキストを肥大化させる可能性がある。 GitHub Issue #87514(open、2026-08-18作成、https://github.com/anthropics/claude-code/issues/87514)は、/reload-pluginsがセッション開始時に読み込んだスキル一覧のコピーを破棄せずに全スキルロースターを再注入し、1回あたり約7,500トークン増える、という報告をしている。長時間稼働するループの中で定期的に/reload-pluginsを呼ぶ設計にすると、意図せずコンテキストと課金が膨らむ恐れがある。これは私自身が再現確認した挙動ではなく、Issueで報告されている事実として紹介する。- キューされた入力の実行順序に既知の不具合報告がある。 Issue #84320(open、2026-08-05作成、https://github.com/anthropics/claude-code/issues/84320)は、
/reload-pluginsより後にキューした入力が、先に古いプラグイン状態のまま実行されてしまうケースを報告している。自動化スクリプトで複数コマンドを連続投入する場合は、この順序保証の弱さを踏まえて1コマンドずつ結果を待つ設計が無難。 /diffパネル自体(インタラクティブ利用時)にもバグ報告がある。 Issue #92101(open、2026-09-04作成、https://github.com/anthropics/claude-code/issues/92101)は、サンドボックスで読み取り不可のファイルを/diffパネルが「Binary file – cannot display diff」と誤表示する、というv2.1.260の不具合を報告している。インタラクティブ側で使う場合はこの点も踏まえておきたい。/costの「likely cause」表示は今回自分では再現できなかった。 CHANGELOG.mdと公式ドキュメント(https://code.claude.com/docs/en/costs)によれば、プロンプトキャッシュのミスが起きた際に「likely cause: tool definitions changed」のような原因表示が/costと/usageのPrompt cache (main)行に付くのはv2.1.260以降だが、これは実際にキャッシュミスが起きた多ターンのセッションでなければ表示されず、今回行った単発の-p呼び出しでは再現しなかった。ドキュメントに明記されている仕様として紹介するに留め、自分で実行して確認した事実とは分けて書く。- advisorツールは実験的機能で、Anthropic API限定。 公式ドキュメントはAmazon Bedrock、Claude Platform on AWS、Google CloudのAgent Platform、Microsoft Foundryでは利用できないと明記している。組織のAPI提供形態によっては、今回のプロンプト5がそもそも動かない環境もある。
まとめ
v2.1.260のCHANGELOG.mdは3項目すべてを「ヘッドレス対応」というくくりで書いているが、実際に手元の旧バージョンと隔離環境の新バージョンをclaude -pで叩き比べると、/advisorと/reload-pluginsは本当にテキスト応答へ切り替わる一方、/diffはUIパネルという性質上バージョンに関係なくisn't available in this environment.のまま変わらなかった。無人パイプラインに新機能を組み込む前に、まずプロンプト1・4のような数十秒の対照実験で「本当にヘッドレスで動くか」を自分の手元で確かめる価値がある。
参考情報
本記事のテーマはGitHub Releases(https://github.com/anthropics/claude-code/releases)の直近リリース確認を起点に選定した。YouTube「AI大学」チャンネルは今回参照していない。


Comments