結論|v2.1.233 から新しいモデルではタスク管理ツールが出ない

Claude Code v2.1.233 から、TodoWriteTaskCreate / TaskGet / TaskUpdate / TaskList が、一部のモデルで提供されなくなりました。 このリリースは 2026 年 8 月 14 日 (協定世界時) に公開されています。

対象は Opus 4.8・Sonnet 5・Fable 5・Mythos 5 と、それぞれの系列のそれ以降のバージョンです。これらのモデルを使っていると、Ctrl+T で開くタスク一覧は空のままになります。不具合ではなく、リリースノートに記載された仕様変更です。

戻したい場合は 1 行で済みます。

CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude

以下では、変更前後の対比、対象モデルの見分け方、恒久的に戻す設定、hook やサブエージェントへの波及までを順に整理します。バージョンアップ後に挙動が変わったときの確認手順全般は、Claude Code のトラブルシューティングにまとめています。

変更履歴の記載と、更新前後の違い

一次情報は Claude Code の変更履歴です。v2.1.233 の項に、次の 1 行が記載されています。

Todo/task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back

記載はこの 1 行だけです。廃止予告の見出しも、移行期間の案内も添えられていません。既に適用済みの変更として書かれています。原文は Claude Code の変更履歴v2.1.233 のリリースページで確認できます。

変更前と変更後

同じモデルを使い続けていても、更新をまたいだ時点で提供されるツールが変わります。

使っているモデルv2.1.232 までv2.1.233 以降
Opus 4.8・Sonnet 5・Fable 5・Mythos 5 以降Task 系 4 ツールが既定で提供される既定では提供されない。明示的に有効化した場合のみ提供される
上記以外 (Opus 4.7 など)Task 系 4 ツールが既定で提供される変わらず Task 系 4 ツールが既定で提供される

つまり対象モデルでは、既定の状態で Claude がタスク一覧に何も書かなくなります。作業そのものが止まるわけではありませんが、進捗を一覧で追っていた人からは「表示が消えた」ように見えます。

対象になるモデル、ならないモデル

公式のツールリファレンスには、変更履歴より踏み込んだ記載があります。

In Claude Code v2.1.233 and later, the following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: TodoWrite, TaskCreate, TaskGet, TaskUpdate, and TaskList.

変更履歴の "and newer models" が、ドキュメントでは「それぞれの系列のそれ以降のバージョン」と言い換えられています。列挙された 4 つより前の世代がどうなるかは、同じ段落で Opus 4.7 を例に挙げて説明されています。

モデル既定で提供されるツールTodoWrite を出す条件
Opus 4.8・Sonnet 5・Fable 5・Mythos 5 以降なし有効化 + CLAUDE_CODE_ENABLE_TASKS=0
Opus 4.7 など、上記以外Task 系 4 ツールCLAUDE_CODE_ENABLE_TASKS=0

例外もあります。バックグラウンドセッションと Claude Code on the web では、対象モデルかどうかにかかわらず同じツールが提供されると明記されています。手元のターミナルでは一覧が空なのに、Web 側では埋まっている、という差はここから来ます。

自分がどのモデルで動かしているかは /model で確認できます。Opus 4.8 を前提にした設定の勘所はOpus 4.8 を Claude Code で使うときの要点にまとめています。

公式が挙げている 2 つの理由

変更履歴だけを読むと理由が分かりませんが、ツールリファレンスには説明が書かれています。

Those models keep track of multi-step work without a written checklist, and the tools' definitions and reminders take up context, so Claude Code leaves them out.

挙げられているのは 2 点です。対象モデルは書き出したチェックリストなしでも複数手順の作業を追えること。そして、ツールの定義とリマインダーがコンテキストを占有すること。この 2 つを理由に、Claude Code 側がツールを渡さない構成に変えたと説明されています。

補足

一方で、外したことで空いたコンテキストがどれくらいの量なのか、それによって長い作業の精度がどう変わるのかは公表されていません。効果の大きさは手元のワークフローで確かめるしかない部分です。

戻す 3 つの方法と、TodoWrite を選ぶ設定

その場かぎりで戻す

公式ドキュメントが例として挙げているのは、起動時に環境変数を渡す形です。

CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude

これを指定すると、モデルとプロバイダを問わず同じツールが提供されると記載されています。まずはこの形で 1 回試し、期待どおりに一覧が埋まるかを確かめるのが確実です。

設定ファイルに書いて常に戻す

毎回打つのが面倒なら、settings.jsonenv に書けます。

{
  "env": {
    "CLAUDE_CODE_ENABLE_TODO_TOOLS": "1"
  }
}

配置先は目的で選びます。自分の全プロジェクトに効かせるなら ~/.claude/settings.json、チームで共有するならリポジトリの .claude/settings.json、自分だけの上書きなら .claude/settings.local.json です。設定ファイルの階層については Claude Code の初期設定も参照してください。

注意

公式が明示している手順は、起動前に環境変数を export する形です。env は環境変数を渡す一般的な仕組みとして案内されているもので、この変数について個別に検証された記載は見当たりません。先にコマンド 1 行で動作を確かめてから、設定ファイルへ移すほうが安全です。

ツール名を指定して戻す

環境変数以外に、ツール名を明示する方法も案内されています。

claude --allowedTools TaskCreate

--tools を使う手もありますが、こちらはセッションの組み込みツールを列挙したものだけに絞る挙動になると記載されています。普段使っている他のツールも一緒に並べる必要があるため、単に戻したいだけなら --allowedTools か環境変数のほうが素直です。

旧来の TodoWrite を出す

TodoWrite は既に Task 系ツールに置き換えられており、旧来の仕組みとして扱われています。あえてこちらを使いたい場合は 2 つの環境変数を組み合わせます。

CLAUDE_CODE_ENABLE_TODO_TOOLS=1 CLAUDE_CODE_ENABLE_TASKS=0 claude

CLAUDE_CODE_ENABLE_TODO_TOOLS はツールを提供するかどうかを決め、CLAUDE_CODE_ENABLE_TASKS はそのうち Task 系と TodoWrite のどちらを渡すかを決める、という役割分担です。

なお CLAUDE_CODE_ENABLE_TODO_TOOLS は v2.1.233 以降でのみ有効と明記されています。それより前のバージョンで書いても効きません。

表示が出ないときの切り分け

一覧が空になる原因は今回の変更だけとは限りません。順に確認していくと早く切り分けられます。

  1. claude --version でバージョンを確認する。v2.1.233 より前なら、今回の変更は原因ではありません
  2. /model で使用中のモデルを確認する。対象の 4 系列かどうかで判断が分かれます
  3. Ctrl+T を押しても何も出ないことを確かめる。対象モデルであれば、これは想定どおりの状態です
  4. 有効化したうえで同じ操作をやり直し、一覧が埋まるかを見る

コツ

Ctrl+T のタスク一覧と /tasks は別物です。前者は Claude が作った作業のチェックリスト、後者は動いているシェルやサブエージェントの一覧です。「タスクが見えない」と言うとき、どちらを指しているのかで原因がまったく変わります。

補足

タスク一覧は一度に最大 5 件まで表示されると記載されています。件数の上限で見えていないだけ、という場合もあります。全件を見たいときや消したいときは Claude に直接頼む形になると案内されており、複数のセッションで同じ一覧を共有したい場合は CLAUDE_CODE_TASK_LIST_ID に名前を指定して起動する方法も示されています。

影響が波及するところ

hook への影響

TaskCreated は、TaskCreate 経由でタスクが作られたときに発火する hook としてドキュメントに記載されています。ツールが提供されなければ発火の起点がなくなる、という関係になります。この hook を進捗の通知やログ収集に使っている場合は、有効化して従来どおり動かすか、別のイベントへ寄せるかの判断が要ります。hook の組み方そのものは Claude Code の hook 実践パターンにまとめています。

サブエージェントとエージェントチーム

サブエージェントについては、ドキュメントにこう書かれています。別のモデルで動いている場合でも、渡されるのは親セッションがツールを持っているときだけ。つまりサブエージェント側のモデルを旧世代にしても、それだけでは戻りません。

エージェントチームでは扱いが分かれます。同一プロセスで動くチームメイトは親セッションに追従します。分割ペインで動くチームメイトは独立した Claude Code のプロセスになるため、そのプロセスで使っているモデルで判定されます。Task 系ツールがないとき、エージェントは共有のタスク一覧ではなくメッセージでやり取りする、と説明されています。サブエージェントの設計は Claude Code のサブエージェント設計パターンを参照してください。

Agent SDK

Agent SDK でも同じ制限がかかると記載されています。対象は TypeScript 版 0.3.233 以降、Python 版 0.2.139 以降です。

戻すときは env オプションで環境変数を渡す形が案内されています。TypeScript では env が子プロセスの環境を置き換えるため、...process.env の展開が要ります。Python では継承した環境にマージされる、という違いがあります。

tool_use ブロックを監視して進捗を表示している実装は、対象モデルでは何も流れてこなくなります。監視コードを持っているなら、ここが最初に壊れる場所です。

そもそも戻すべきか

戻す作業自体は 1 行ですが、外れた理由がコンテキストの占有である以上、戻せばその分は消費されます。判断の目安は次のとおりです。

状況判断
人が一覧を見て進捗を追っていた戻す価値がある
hook や監視スクリプトがツール呼び出しに依存している戻すか、依存先を作り替える
Claude が作業を進めればよく、一覧は見ていなかった戻さずに様子を見る

長い作業で Claude が手順を見失うかどうかは、扱っているコードベースと指示の粒度で変わります。まず戻さずに数回動かし、実際に困ったときだけ有効化するほうが、判断の材料が手元に残ります。

FIXITFIXIT

えっ、勝手にタスク一覧が消えたんだけど。壊れた?

HayateHayate

壊れていません。新しいモデルでは、一覧を埋めるツール自体が渡されなくなりました。

FIXITFIXIT
じゃあ戻したほうがいいの?
HayateHayate

使い分けの目安は、その一覧を人が見ていたかどうかです。見ていないなら戻さなくて済みます。

FIXITFIXIT
じゃあ、見た目が減っただけ?
KanameKaname

運用に乗せているなら別です。hook の発火の起点ごと消えるので、そこは先に確認してください。

タスク管理ツールのこれまで

今回の変更は、単発の廃止というより段階的な移行の一区切りに見えます。変更履歴をさかのぼると、次のような経緯になっています。

バージョン出来事
v0.2.93Claude が Todo リストを持つようになった
v1.0.94現在の Todo 項目を一覧する /todos コマンドが追加された
v2.1.16依存関係の追跡を含む新しいタスク管理の仕組みが追加された
v2.1.19CLAUDE_CODE_ENABLE_TASKS が追加され、旧来の仕組みを一時的に残せるようになった
v2.1.233新しいモデルでタスク管理ツールが既定から外れ、有効化の環境変数が追加された

TodoWrite 1 つで一覧をまるごと書き換える方式から、TaskCreateTaskUpdate で 1 件ずつ操作する方式へ移り、そのうえで新しいモデルでは既定から外れた、という流れです。監視コードを持っている場合、この 2 段階の差はそのまま実装の差になります。

まとめ

タスク一覧が空になっていても、それは今回の変更による想定どおりの状態です。まず claude --version/model で条件に当てはまるかを確認し、必要なら CLAUDE_CODE_ENABLE_TODO_TOOLS=1 を付けて起動してみてください。

影響が読みにくいのは、人の目に見える一覧ではなく hook や監視スクリプトのほうです。ツール呼び出しに依存した仕組みを持っているなら、そこから先に点検するのが順番として効きます。更新のたびに挙動が変わる前提でチームの運用を整えたい場合は、AI 開発ツール導入支援で伴走しています。どこから手を付けるか迷っているなら、お問い合わせからご相談ください。

出典は Claude Code の変更履歴v2.1.233 のリリースページ、および公式ドキュメントのツールリファレンス環境変数一覧インタラクティブモードAgent SDK (TypeScript)Agent SDK (Python)です。