16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code のタスクリストが出ない — 原因は環境変数 ENABLE_TASKS=0 だった

16
Last updated at Posted at 2026-08-19

複数手順の作業を頼むと、Claude Code は進捗をチェックリストで見せてくれます。

その TodoWrite が、手元の環境ではツールごと存在しない状態でした。

2.1.233 の changelog にこうあります。

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
(Todo・タスク管理ツール(TaskCreate/Get/Update/List、TodoWrite)は Opus 4.8、Sonnet 5、Fable 5、Mythos 5 以降のモデルでは利用できない。CLAUDE_CODE_ENABLE_TODO_TOOLS=1 を設定すると戻せる)

「新しいモデルだから」で終わりそうですが、条件を変えて測ったら違いました。

同じ Opus 5 でも、環境変数しだいで使えます。 消していたのは CLAUDE_CODE_ENABLE_TASKS=0 のほうでした。


まず結果

claude -p の非対話モードで条件を変え、「今使えるツールのうち Todo / Task で始まるものを挙げて」と聞いた結果です。

モデル ENABLE_TASKS ENABLE_TODO_TOOLS 使えたツール
Opus 5 未設定 未設定 TodoWrite
Haiku 4.5 未設定 未設定 TaskCreate / Get / List / Update
Opus 5 0 未設定 なし
Opus 5 未設定 1 TaskCreate / Get / List / Update

3行目が、自分の環境と同じ条件です。 CLAUDE_CODE_ENABLE_TASKS=0 が入っていました。

検証環境: Windows 10 / Claude Code 2.1.234 / --model opusclaude-opus-5 に解決される


犯人は ENABLE_TASKS=0 だった

環境変数を見たら、こうなっていました。

CLAUDE_CODE_ENABLE_TASKS      = 0
CLAUDE_CODE_ENABLE_TODO_TOOLS = (未設定)

settings.json には書いていません。 親プロセスから渡っていました。

この変数の意味は、公式ドキュメントにあります。

On other models, Claude Code provides the Task tools by default and TodoWrite only when you set CLAUDE_CODE_ENABLE_TASKS=0.
(それ以外のモデルでは、Claude Code は既定で Task ツールを提供し、CLAUDE_CODE_ENABLE_TASKS=0 を設定したときだけ TodoWrite を提供する)

つまり ENABLE_TASKS=0 は、「Task ツールをやめて TodoWrite にする」という切り替えです。

ところが新しいモデルでは Task ツールが既定で付いていません。
そこに「Task ツールをやめろ」を足すと、やめる対象がないまま、TodoWrite も出てこない。

結果、両方消えます。 これが実測の3行目でした。


戻す変数の名前と、戻ってくるものが違う

復活させる変数は CLAUDE_CODE_ENABLE_TODO_TOOLS=1 です。名前からして TodoWrite が戻りそうですが、

TaskCreate
TaskGet
TaskList
TaskOutput
TaskStop
TaskUpdate

返ってきたのは Task ツール一式。TodoWrite は入っていません。

公式ドキュメントも、この変数をそう扱っていました。

sets only CLAUDE_CODE_ENABLE_TODO_TOOLS=1, the opt-in for the models that otherwise don't get the tools
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 だけを設定する。これは、そのままではツールが付かないモデルのための opt-in である)

変数名は Todo、実体は Task。 知らないと混乱します。


Todo と Task は別物

両者は設計から違います。

TodoWrite Task ツール
更新の単位 1回でリスト全体を書き換え TaskCreate で1件追加、TaskUpdate で1件更新
読み出し なし TaskList / TaskGet
依存関係 なし addBlocks / addBlockedBy で指定できる

Task ツールには依存関係と担当者があります。 ただしこの表は公式ドキュメントの記載をまとめたもので、
依存関係を実際に作って試してはいません。

無効化の理由は公式に書かれていません。 「高機能な方へ寄せた」と読めますが、
そう書かれた文章は見つかりませんでした。推測です。


モデルによって既定が違う

環境変数なしでも、モデルで結果が割れました。

モデル 既定で付くもの
Opus 5 TodoWrite
Haiku 4.5 Task ツール一式

changelog は「Opus 4.8、Sonnet 5 以降では使えない」と書いていますが、
Opus 5 に素で聞いたら TodoWrite が返りました-p での結果)。

なお、詳しい仕様が載っているのは Agent SDK 向けのページで、条件も SDK のバージョンで書かれています。
SDK と CLI で既定が一致していない可能性があります。 結局、自分の環境で確かめるのが早いです。


どうするか

まず自分の環境を見てください。

echo "TASKS=${CLAUDE_CODE_ENABLE_TASKS:-未設定} TODO=${CLAUDE_CODE_ENABLE_TODO_TOOLS:-未設定}"
状態 どうなるか
両方とも未設定 モデル既定のまま。触らなくてよい
ENABLE_TASKS=0 が入っている 新しいモデルでは全部消える。これが原因
ENABLE_TODO_TOOLS=1 を追加 Task ツールが使えるようになる

常に出したいなら settings.json に入れておけます。

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

なお公式によれば、リストが作られるのは「3つ以上の別々の操作が必要な複雑な作業」のときです。
短い依頼では元々作られないので、そこは戻しても変わりません。


まとめ

  • 原因は CLAUDE_CODE_ENABLE_TASKS=0 新しいモデルと組み合わさると全部落ちる
  • ENABLE_TASKS=0 は本来「Task ツールをやめて TodoWrite にする」設定。 やめる対象がないと、TodoWrite も出ない
  • 戻すのは CLAUDE_CODE_ENABLE_TODO_TOOLS=1 ただし戻ってくるのは Task ツールで、TodoWrite ではない
  • Task ツールは TodoWrite の上位版で、依存関係と担当者を持てる(ドキュメント記載。未実測)
  • モデルで既定が違う-p で確認)。Opus 5 は TodoWrite、Haiku 4.5 は Task ツール
  • 公式ドキュメントは Agent SDK 向け。CLI の挙動と一致しない部分がある

「最近リストが出ないな」と思ったら、モデルではなく環境変数かもしれません。
まず CLAUDE_CODE_ENABLE_TASKS を確認してみてください。


参考

※ 引用は原文と日本語訳を併記しています。訳は読みやすさを優先しているので、正確な表現は原典をご確認ください。

関連記事

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?