Press Ctrl+T on Opus 4.8, Sonnet 5 or anything newer and nothing appears. Claude Code gives those models no task tools at all: no TaskCreate, no TodoWrite, and so no todo list for Claude to write.
Nothing in the session tells you. Claude works through the same multi-step job it always did, but the checklist you used to watch it tick off is gone. Anthropic took it out on purpose.
Opus 4.7, Sonnet 4.6 and Haiku 4.5 still have a list
Straight from the tools reference:
The task-tracking tools,
TaskCreate,TaskGet,TaskUpdate,TaskList, andTodoWrite, are available by default only on Opus 4.7, Sonnet 4.6, Haiku 4.5, and earlier models.
That list is the default in Claude Code v2.1.268 and later. Every other model gets the tools only if you ask, and the docs say what that costs you: "without the tools, Claude adds nothing to the task list while it works."
An unrecognised model ID counts as every other model too, so a team whose gateway renames the model loses the list whatever sits behind it.
Two kinds of session ignore all of this: in background sessions and in cloud sessions, Claude Code provides the same tools on every model, listed or not.
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 brings the tools back
For one session:
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claudeThe variable needs Claude Code v2.1.233 or later. On an older build it does nothing, so run claude --version first if you aren't sure.
To stop typing it, put it in the env block of ~/.claude/settings.json:
Claude Code then "provides the same tools on every model and every provider". The same block in a repo's .claude/settings.json reaches your teammates, with one catch from the settings docs: most env values from a committed file "apply only after each teammate trusts the folder".
The docs give three narrower ways in:
claude --allowedTools TaskCreatenames one of the tools, which opts that session in, but not a split-pane teammate.--toolslists them, and cuts the session's built-in tools down to exactly what you name, so include everything else you use.- In the Agent SDK, the
allowedToolsandtoolsoptions and anenventry do the same jobs.
TodoWrite stays gone when you set CLAUDE_CODE_ENABLE_TASKS=0
The two variable names look alike and do different things.
CLAUDE_CODE_ENABLE_TASKS chooses which tools you get in a session that already has them: the four Task tools by default, or the older single TodoWrite when you set it to 0. Set it to 0 on a model that has neither and you still get neither.
People tried it first, because it's the documented fallback. In July it had its own bug report, filed on the 14th on v2.1.209: "CLAUDE_CODE_ENABLE_TASKS=0 does not restore TodoWrite on Opus 4.8 / Sonnet 5 / Fable 5 (no task/todo tool available at all)". One flag removed the Task tools and TodoWrite together, so there was nothing to fall back to.
Subagents inherit the fix, split-pane teammates don't
A subagent has the task tools only when your session has them, whatever model the subagent itself runs on. So the fix above covers your subagents for free.
A teammate in a split pane is a separate Claude Code process, and Claude Code passes it a fixed set of environment variables that leaves out whatever you exported in your shell. Start the session this way and the teammate gets it too:
claude --settings '{"env":{"CLAUDE_CODE_ENABLE_TODO_TOOLS":"1"}}'Naming the tools in --tools works as well, because a split-pane teammate inherits that list and your deny rules. Without the task tools, the docs say, "an agent coordinates with its team through messages instead of the shared task list", so the agents still divide the work and you read it in their messages instead of one list. If you run several at once, how to manage multiple Claude Code sessions covers keeping their work apart.
Skills that name TodoWrite fail outright
If a skill of yours tells Claude to call TodoWrite, it hits this:
That error has been around longer than the model gate. It opened superpowers #1518 on 11 May 2026, when TaskCreate and friends replaced TodoWrite as the default and several skills in that pack still called for it by name. The fix, shipped on 1 June, was to stop naming the tool: ask for the work in plain words ("create todos", "mark it complete") and let the session use whichever tool it has. That holds up better today, when a newer model has neither name available.
Check your own skills and memory files for the word:
grep -rn TodoWrite ~/.claude/skills ~/.claude/CLAUDE.md .claude/Check your model, then your tool list
Everything above turns on which model you're on, and /model answers that inside the session. For the tools, ask Claude:
For a yes-or-no answer from outside a session, the tips site wmedia gives a one-liner. A stream-json run opens with a system/init event, which reports "session metadata including the model, tools, MCP servers, and loaded plugins", so check whether that event names them:
claude -p --output-format stream-json --verbose "hi" | grep -c TaskCreate0 means the tools aren't there and 1 means they are. It answers for your default model, so add --model opus or another name to ask about that one.
Do that before you look for a stranger cause. One report of the tools vanishing with no model change never got an answer: on v2.1.237, someone deleted ~/.claude/.credentials.json, signed in with a second account on the same plan, and found the task tools gone from the tool set rather than just the view (#88119). It never says which model, and v2.1.237 already shipped the model gate, so a newer model is the likely answer. The inactivity bot closed it on 9 October.
Why the tools went away in July
This arrived as a server-side switch, not a release. On 8 July 2026, on v2.1.204, issue #75577 reported the Task tools silently gone on Opus 4.8, Sonnet 5 and Fable 5: no error, no warning, and no way to turn them back on. The switch had a name, the experiment flag tengu_vellum_ash, and it was rolled back on 24 July.
It came back as the documented default in v2.1.233. Anthropic closed the reports with the changelog line, quoted here:
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=1to bring them back
The reason is in the tools reference: "On newer models, Claude keeps track of multi-step work without a written checklist, and the tools' definitions and reminders take up context." The SDK docs go further and say not to turn them on unless something reads the tool calls, "whether to log task activity or to render its own progress display". Turn them on if you read the list while Claude works, and leave them off if you never pressed Ctrl+T before today.
Keep one list across sessions
Tasks survive a context compaction. Leave the panel expanded and Claude Code restores the expanded view the next time you open a session that still has tasks, with --resume or --continue. When the list is empty it starts collapsed instead. Both flags are in how to resume a Claude Code session.
To point several sessions at the same list, name it:
CLAUDE_CODE_TASK_LIST_ID=my-project claudeClaude Code then keeps that list in its own folder under ~/.claude/tasks/, as the task list docs describe, and every session you start with that name reads and writes it.
A named list still only covers the job in front of you. The work you left half-done in your other sessions this week is a separate problem, and tracking your Claude Code work across projects has the skills that read it back out of your own history.
Shabash, the Mac app I'm building, writes each piece of work its own checklist, and your agent ticks the steps off as it goes. To try it, book a 30-minute call.



