
Claude Code v2.1.280 の主要アップデート - Fable 5.1 と GPT-6 Astra 超えの最新モデル Opus 5.5 の登場
クラウド事業統括本部の石川です。Claude Code の v2.1.280(2026-09-22 公開)がリリースされました。本日は、Fable 5.1 と GPT-6 Astra超えの最新モデル Opus 5.5 が登場しました。既定の Opus モデルになった Claude Opus 5.5 を試してみました。
前回のアップデート記事はこちらです。
アップデートサマリー
v2.1.280 では 114 件の変更が入りました。内訳は修正 66 件、改善 24 件、新機能 12 件、破壊的変更 7 件、セキュリティ 5 件で、このうち 29 件は VS Code 拡張・Claude Code on the web・Claude Tag・Code Review 向けの変更です。既定の挙動が変わる変更は、モデル・エフォート・キー操作・フック・セルフホストランナーにまたがっています。なお、npm には v2.1.279 が公開されておらず、v2.1.278 の次のバージョンが v2.1.280 です。
注目のアップデート
Claude Opus 5.5 が既定の Opus モデルに
Claude Opus 5.5(claude-opus-5-5)が追加され、既定の Opus モデルになりました。コンテキストは 1M で、料金は 100 万トークンあたり入力 $4/出力 $20、キャッシュ読み取りは $0.20 です。つまり、Opusのコストは20%削減されました。
公式ドキュメントによると、opus エイリアスは Anthropic API、Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform で Opus 5.5 に解決されます(Microsoft Foundry では Opus 4.6)。Opus 5.5 を使うには v2.1.280 以降が必要です。
opus エイリアスや既定の Opus モデルを使っている方は、アップデートするだけで Opus 5.5 に切り替わるため、料金と挙動の変化を一度確認しておく価値があると感じます。
Pro・Team Standard プランの既定モデルが Opus に
Pro と Team Standard プランの既定モデルが Sonnet から Opus に変わり、Max、Team Premium、Enterprise と同じになりました。公式ドキュメントには、v2.1.280 より前の Pro と Team Standard の既定は Sonnet 5 だったと記載されています。
Sonnet を前提に使っていた Pro・Team Standard の方は、アップデート後に /model で現在のモデルを確認しておくと安心だと感じます。
ダイアログの y/n キーが既定の割り当てから外れる
ダイアログで誤って押した n でダイアログが閉じ、y で確定されてしまう問題が修正されました。確定と取り消しは Enter と Esc で行います。y/n で操作したい場合は、keybindings.json で confirm:yes/confirm:no に割り当てます。
公式ドキュメントによると、v2.1.280 より前に /keybindings で作成した keybindings.json にはこの 2 つの割り当てが含まれており、その 2 行を削除するまで有効です。
y/n で素早く答える操作に慣れている方ほど、最初は戸惑う変更だと感じます。
シンボリックリンク経由の書き込みを実際の書き込み先で判定
シンボリックリンクを経由した書き込みが、ツリー内のパス表記で判定されていた問題が修正されました。権限プロンプトには実際の書き込み先が表示され、acceptEdits、allow ルール、auto モードは、ツリーの外に書き込まれる操作を承認しなくなりました。
作業ディレクトリの外を指すシンボリックリンクを含むリポジトリを、acceptEdits や auto モードで扱っている方ほど効いてくる修正だと感じます。
予約済みの名前を模倣したマーケットプレイスを拒否
予約済みのマーケットプレイス名を模倣した名前のプラグインマーケットプレイスは、追加時に拒否されるようになりました。すでに追加されている場合は読み込まれなくなります。
名前を手がかりにマーケットプレイスを追加している方ほど、効いてくる変更だと感じます。
アップデート内容
新機能
CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTHが追加されました。MCP のツール説明とサーバー指示(server instructions)に対する 2,048 文字の上限を、セッション内のすべての MCP サーバーについて変更できます- OpenTelemetry の
hook_execution_completeイベントに、フック出力のサイズと、サイズ超過でファイルに保存された出力の件数が追加されました - フルスクリーンモードでマウス操作に対応するリストが増えました。
/skillsの一覧をホイールでスクロールでき、/pluginではスキルの状態オプションをクリックで選べます - [VS Code] Status ダイアログが追加されました。セッションのバージョン、アカウント、モデル、サーバーの詳細を表示し、
/statusの入力でも開けます - [VS Code] Sandbox ダイアログが追加されました。サンドボックスモード、サンドボックス外へのフォールバック、除外コマンドを扱い、パネルメニューまたは
/sandboxの入力で開けます - [VS Code] Claude in Chrome ダイアログが追加されました(拡張機能の状態、インストール・再接続・権限のページ、既定で有効にする設定)。パネルメニューまたは
/chromeの入力で開けます - [VS Code] このほか、会話をプレーンテキストでコピー・保存する Export conversation(
/export)、Slash commands ダイアログでのスキルのソース・トークン見積もり・オン/オフ状態の表示(/skills)、プランモードへの切り替えやセッションのプランの表示を行う/planが追加されました - [Claude Tag] チャンネル内の Claude のスレッドに、Slack ネイティブの Working インジケーター、Stop ボタン、スレッドタイトルが追加されました。Stop でタスクを中断できます
- [Claude Tag] Restrict または Channel only のゲスト設定のもとで、ゲストの参加や最後のゲストの退出によって Claude の応答の仕方が変わる場合に、Slack チャンネルに短い通知が表示されるようになりました
改善
/permissionsで、ルールの表示・追加・削除の後にフォーカスがルール一覧に戻るようになり、ルール削除とディレクトリ削除の確認は既定で No が選ばれるようになりました。ルール一覧で ←/→ や Tab を押すと、フォーカスをタブバーに移さずにタブを切り替えられます/costが、キャッシュミスの原因として thinking モードと thinking 表示の変更を挙げるようになりました- 言語名を指定していないコードブロックが、インラインコードと同じ色で表示されるようになりました
@によるファイル候補で、ファイル名にクエリを含むファイルが、フォルダ名だけで一致するファイルより上位に並ぶようになりました- UserPromptSubmit フックのタイムアウト通知とデバッグログで、どのフックコマンドがタイムアウトしたかが示されるようになりました
- ツールの実行中に
/btwで質問した場合、実行中の呼び出しを失敗したものではなく、進行中のものとして扱うようになりました - Artifact ツールが、渡された artifact のリンクを読めない場合に、処理を続ける前にその旨を伝えるようになりました。artifact ページも、閲覧画面でブロックされる印刷ボタン・確認ダイアログ・デバイス機能を使わなくなり、メールアドレスや電話番号はテキストで表示され、ダークモードがフォームコントロールとスクロールバーにも適用されるようになりました
/artifactsと/workflowsの一覧に、隠れている量と現在位置を示すスクロールバーが付きました。このほか、ワークフローの進捗ツリー、/pluginの Add Marketplace フォーム、/workflowsの詳細表示、/install-github-app、/autocompact・/fastのフッターの表示が改善されています- セッション間メッセージングの起動時の警告で、
--debug-fileは指定したパスにデバッグログを書き出すことが説明されるようになりました - [VS Code] チャット欄に 800 文字を超える、または改行が 2 つを超えるテキストを貼り付けると、入力したテキストと区別できるよう印が付くようになりました。「Open in New Tab」は、作業中のエディターグループの横に Claude を開くようになりました
- [Claude Code on the web] 管理者向けの Routines のオン/オフ設定が Admin settings → Capabilities → Remote sessions に移動しました。このほか、Claude アプリで表示するクラウドセッションでのファイルの保存先と、GitHub をオフにした組織でのセルフホスト環境のセッション開始画面が改善されています
- [Claude Tag] 管理設定の GitHub バナーが、GitHub が接続されていない理由(未サインイン、アプリの未リンクまたは未インストール、サインインの期限切れ、SSO 未承認)を示すようになりました
- [Code Review] REVIEW.md の指示がサイズ上限を超えてレビューから切り詰められたり除外されたりした場合に、チェック実行でファイル名と上限が示されるようになりました
セキュリティ
/ultrareviewのアップロードで、id_rsa copyやkubeconfig (1).yamlのような鍵ファイルの名前違いのコピーも、アップロードされず手元のマシンに留まるようになりました- artifact の再公開で、その capability をアクセスルールや閲覧者プロフィールのスコープなしで再送すると、保存済みのデータベースのアクセスルールがリセットされたり、閲覧者プロフィールのスコープが外れたりする問題が修正されました。そうした再公開は拒否されます
- [VS Code] チャット欄で、貼り付けたテキストに含まれる不可視の Unicode 書式文字とタグ文字が通知付きで除去され、それ以外の入力からも送信前に除去されるようになりました
修正(主要なもの)
- auto モードでの操作の繰り返しを修正: 安全性チェックがレビューを辞退した操作を何度も再試行する問題が修正され、1 回で拒否されるようになりました。安全性チェックが応答を返さなかった場合に間を置かず拒否を繰り返す問題も修正され、再試行はバックオフし、10 回連続するとメッセージを出してターンを停止します
- Write の検証失敗を修正: モデルが
file_pathとcontentの代わりにpath、file_text、file_content、または余分なdescriptionを送った場合に、Write の呼び出しが検証に失敗する問題が修正されました - プロンプトキャッシュのミスを修正: Claude の作業中にホストアプリ(Claude Desktop、VS Code、SDK)からモデルを切り替えた場合と、再開したフォークサブエージェントがツールリストを作り直した場合に、プロンプトキャッシュがミスする問題が修正されました
- スキルが
.trashに移動される問題を修正:~/.claude/skills/内のmanifest.jsonにスキル名が記載されていると、それらのスキルが~/.claude/skills/.trash/に移動されてしまう問題が修正されました - 毎ターン失敗する API エラーを修正: 「role 'system' must precede an 'assistant' message」の API エラーで会話が毎ターン失敗する問題と、advisor を有効にした会話が、対応していないプロキシやゲートウェイの背後で「Input tag 'advisor_20260301'」の API Error 400 により毎ターン失敗する問題が修正されました。後者は advisor を外して再試行されます
- 保存済みセッションの失敗とクラッシュを修正: 保存された履歴に、読み込めなかった MCP ツールに関する不正な形式の通知が含まれていると、セッションが毎ターンと
/compactで失敗する問題が修正されました。あわせて、保存されたトランスクリプトに不正な形式のシステムメッセージや、ファイル一覧の無いメモリ保存通知が含まれるセッションを再開するとクラッシュする問題も修正されています - セッション再開時にターンが勝手に始まる問題を修正: 未完了のバックグラウンドエージェント、シェル、ワークフローがあるセッションを再開すると、何も入力していないうちにモデルのターンが始まる問題が修正されました
- サブエージェントのメッセージと報告の消失を修正: ヘッドレスセッションと SDK セッションで、ターンを終えようとしているバックグラウンドサブエージェントに送ったメッセージが失われる問題と、報告を読む前に会話がコンパクションされると、完了したサブエージェントの報告が失われる問題が修正されました
- バックグラウンドのシェルタスクの誤った失敗報告を修正: 問題のない非ゼロ終了(該当なしの grep など)を失敗として報告する問題が修正されました
- プライベートリポジトリのマーケットプレイスの自動更新を修正: バックグラウンドの自動更新が git の認証情報ヘルパー(credential helper)を無視していたため、プライベートリポジトリのマーケットプレイスが毎回クローンし直されるか、まったく更新されない問題が修正されました
- Windows のクリーンアップによるリンクの削除を修正:
~/.claude/session-envやimage-cacheなどのフォルダを移すために使っているディレクトリのシンボリックリンクやジャンクションを、バックグラウンドのクリーンアップが削除してしまう問題が修正されました - 地味に嬉しい修正: 多くのダイアログ(
/model、/effort、/config、/permissionsなど)で Ctrl+C または Ctrl+D を 2 回押すと、ダイアログを閉じる代わりに Claude Code が終了する問題が修正されました。ダイアログを閉じるつもりの操作でセッションごと終わってしまう類の問題なので、地味に助かる修正だと感じます - このほか、
/configのクラッシュ、フルスクリーン表示とキー操作、/plugin・/skills・/mcpの表示、音声入力、セルフホストランナー、VS Code 拡張、Claude Code on the web、Claude Tag など、多数の細かな不具合が修正されています。
破壊的変更・非推奨
Pro・Team Standard プランの既定モデルの変更
Pro と Team Standard プランの既定モデルが Sonnet から Opus に変わりました。モデルを設定していない場合の解決先は、公式ドキュメントの記載では次のとおりです。
変更前(〜v2.1.278):
Pro・Team Standard で model を設定していない場合 → Sonnet 5
変更後(v2.1.280〜):
Pro・Team Standard で model を設定していない場合 → Opus 5.5
以下は、Sonnet を使い続ける場合の設定例です。
// ~/.claude/settings.json
{
"model": "sonnet"
}
旧形式の effortLevel が Opus 5.5 に適用されない
/effort がモデルごとの設定になる前に保存されたエフォートレベルが、Opus 5.5 のような新しくリリースされたモデルには適用されなくなりました。こうしたモデルは、レベルを選ぶまで既定値で始まります。
公式ドキュメントによると、対象はユーザー設定ファイルのトップレベルの effortLevel で、Opus 5 や Fable 5.1 など以前のモデルには引き続き適用されます。プロジェクト・ローカル・マネージド設定や --settings で指定したトップレベルの effortLevel は、すべてのモデルに適用されます。Opus 5.5 のエフォートの既定値は medium です。
変更前(〜v2.1.278):
// ~/.claude/settings.json(旧形式。すべてのモデルに適用)
{
"effortLevel": "xhigh"
}
変更後(v2.1.280〜):
// ~/.claude/settings.json
// トップレベルの effortLevel は Opus 5.5 には適用されず、Opus 5.5 は medium で始まります
// Opus 5.5 のレベルを固定する場合は modelSettings に書きます
{
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "high"
}
}
}
/effort や /model のピッカーでレベルを保存すると、Claude Code はこの modelSettings にモデルごとに書き込みます。公式ドキュメントのエフォートの解決順を、Opus 5.5 の場合について図にしました(ultracode や組織の既定エフォートによる例外は省略しています)。
Opus 4.7・Opus 4.8・Fable 5 が設定したエフォートに従う
Opus 4.7、Opus 4.8、Fable 5 が、-p や Agent SDK での /effort、プロジェクト・マネージド・--settings の effortLevel、モデルごとのレベルよりも、リリース時の既定エフォートを優先することがなくなりました。これらのモデルで既定とは異なるレベルを設定している場合、v2.1.280 からはその設定が適用されます。
以下は設定例です。
変更前(〜v2.1.278):
// .claude/settings.json(プロジェクト設定)
// Opus 4.7・Opus 4.8・Fable 5 では、この設定よりリリース時の既定エフォートが優先されていました
{
"effortLevel": "medium"
}
変更後(v2.1.280〜):
// .claude/settings.json(プロジェクト設定)
// Opus 4.7・Opus 4.8・Fable 5 でも medium が適用されます
{
"effortLevel": "medium"
}
ダイアログの y/n キーの既定割り当ての削除
ダイアログの確定と取り消しは Enter と Esc で行うようになり、y/n は既定の割り当てから外れました。
変更前(〜v2.1.278):
確定: Enter または y(confirm:yes)
取り消し: Esc または n(confirm:no)
変更後(v2.1.280〜):
確定: Enter(confirm:yes)
取り消し: Esc(confirm:no)
y/n で操作したい場合は、公式ドキュメントの例のとおり keybindings.json に割り当てます。
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
v2.1.280 より前に /keybindings で keybindings.json を作成している場合は、この 2 行がすでに含まれており、削除するまで y/n が有効なままです。また公式ドキュメントでは、y と n をキーとして表示しているダイアログは、割り当てがなくてもその文字を受け付けると記載されています。
PermissionRequest フックでエージェント型フックが動かなくなる
PermissionRequest フックで、エージェント型のフックが実行されなくなりました。その応答ではリクエストを許可も拒否もできなかったためです。代わりに、command 型または http 型のフックを案内するエラーが表示されます。公式ドキュメントでは、許可・拒否は command 型または http 型のフックが decision オブジェクトを返して行うと記載されています。
以下は設定例です。
変更前(〜v2.1.278):
{
"hooks": {
"PermissionRequest": [
{
"matcher": "Bash",
"hooks": [
{
"type": "agent",
"prompt": "このコマンドを許可してよいか確認してください。$ARGUMENTS"
}
]
}
]
}
}
変更後(v2.1.280〜):
{
"hooks": {
"PermissionRequest": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "/path/to/check-permission.sh"
}
]
}
]
}
}
セルフホストランナーのライフサイクルフック内の git
セルフホストランナーで、ライフサイクルフック内の git が、ランナーの共有 git ファイルで指定されたフックフォルダやプログラムを無視するようになりました。そこでローカルパスや git:// のリモートを使うには GIT_ALLOW_PROTOCOL が必要です。
変更前(〜v2.1.278):
ライフサイクルフック内の git で、ローカルパスや git:// のリモートを追加の設定なしで使えた
変更後(v2.1.280〜):
# ライフサイクルフック内の git でローカルパスや git:// のリモートを使う場合の例
GIT_ALLOW_PROTOCOL=file:git:https:ssh
GIT_ALLOW_PROTOCOL は git の環境変数です。git のマニュアル(git(1)、git-config(1) の protocol.allow)によると、許可するプロトコルをコロン区切りで指定し、列挙しなかったプロトコルは使えなくなります。また file はローカルパスを含みます。そのため上の例では、https や ssh も列挙しています。ランナーへの渡し方は Claude Code の公式ドキュメントに記載が見当たらないため、環境に合わせて設定してください。
フルスクリーンモードの ctrl+l/cmd+k の取り消し
フルスクリーンモードで ctrl+l/cmd+k がトランスクリプト表示をクリアする挙動(v2.1.260 で追加)が取り消され、再び画面の再描画に戻りました。
変更前(v2.1.260〜v2.1.278):
ctrl+l / cmd+k → トランスクリプト表示をクリア
変更後(v2.1.280〜):
ctrl+l / cmd+k → 画面を再描画
Opus 5.5 を試してみた
既定の Opus モデルになった Opus 5.5 が実際に使われるかを、claude -p の JSON 出力で確認しました。--model opus を指定した場合と、モデルを指定しない場合の 2 通りです。検証環境ではユーザー設定で model を指定しておらず、モデル関連の環境変数も設定していません。空の作業ディレクトリで実行しています。
% claude --version
2.1.280 (Claude Code)
--model opus を指定した場合:
% claude -p --max-turns 1 --model opus --output-format json "1 + 1 は?短く答えてください。" > out1.json
% jq '.modelUsage | keys' out1.json
[
"claude-opus-5-5"
]
モデルを指定しない場合:
% claude -p --max-turns 1 --output-format json "1 + 1 は?短く答えてください。" > out2.json
% jq '.modelUsage | keys' out2.json
[
"claude-opus-5-5[1m]"
]
どちらも Opus 5.5 が使われました。modelUsage の中身も確認します。
% jq '{result, is_error, num_turns, total_cost_usd, modelUsage}' out1.json
{
"result": "2",
"is_error": false,
"num_turns": 1,
"total_cost_usd": 0.1703666,
"modelUsage": {
"claude-opus-5-5": {
"inputTokens": 2,
"outputTokens": 91,
"cacheReadInputTokens": 10813,
"cacheCreationInputTokens": 20797,
"webSearchRequests": 0,
"costUSD": 0.1703666,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 88,
"canonicalModel": "claude-opus-5-5",
"provider": "firstParty",
"costBasis": "list"
}
}
}
% jq '{result, is_error, num_turns, total_cost_usd, modelUsage}' out2.json
{
"result": "2",
"is_error": false,
"num_turns": 1,
"total_cost_usd": 0.1564074,
"modelUsage": {
"claude-opus-5-5[1m]": {
"inputTokens": 2,
"outputTokens": 3,
"cacheReadInputTokens": 12377,
"cacheCreationInputTokens": 19233,
"webSearchRequests": 0,
"costUSD": 0.1564074,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 0,
"canonicalModel": "claude-opus-5-5",
"provider": "firstParty",
"costBasis": "list"
}
}
}
2 回とも canonicalModel は claude-opus-5-5、contextWindow は 1000000、maxOutputTokens は 128000 でした。
既定の起動では claude-opus-5-5[1m]、--model opus では claude-opus-5-5 と、modelUsage のキーの表記が分かれました。どちらも canonicalModel は claude-opus-5-5 なので、ログやコストを modelUsage のキーで集計している場合は canonicalModel で集計するほうが安全だと感じます。
costUSD を単価から計算し直す
costUSD を、CHANGELOG の単価(入力 $4、出力 $20、キャッシュ読み取り $0.20)と、公式の料金ページにある Opus 5.5 の 1 時間キャッシュ書き込みの単価($8)で計算すると、2 回とも costUSD と一致しました。単価はいずれも 100 万トークンあたりです。
| 区分 | 単価 | --model opus |
モデル指定なし |
|---|---|---|---|
| 入力 | $4 | 2 | 2 |
| 出力 | $20 | 91 | 3 |
| キャッシュ読み取り | $0.20 | 10,813 | 12,377 |
| キャッシュ書き込み(1 時間) | $8 | 20,797 | 19,233 |
| 計算結果 | $0.1703666 | $0.1564074 | |
costUSD |
$0.1703666 | $0.1564074 |
5 分キャッシュ書き込みの単価($5)で計算すると $0.1079756 と $0.0987084 になり、一致しません。このことから、今回のリクエストでは 1 時間のキャッシュ書き込みが使われたと推測します。
最後に
今回は Opus 5.5 の追加と、それに伴う既定モデル・エフォートの扱いの変更が中心でした。114 件の大半は修正ですが、既定の挙動が変わる変更も 7 件あり、特にダイアログの y/n キーと旧形式の effortLevel は気づかないうちに影響を受けやすいと感じます。アップデート後に /model と /effort で現在の設定を一度確認しておくとよいのではないでしょうか。
Opus 5.5 を使ってみたい方も、既定モデルが変わる Pro・Team Standard の方も、アップデートして試してみてはいかがでしょうか。
参考文献









