← Claude Code Hub
✦ Tip #169 Aug 18, 2026

Claude Code task list: your model writes it but no longer saves it

You ask for the list, Claude writes one out, and it all looks normal. But Ctrl+T is empty and nothing survives /compact: since 2.1.233 the newest models ship without the tools that fill it.

The same task-list request in two states: by default the list arrives as text inside the reply and Ctrl+T shows nothing; with the variable set it lives in the session and survives /compact

TL;DR On Opus 4.8, Sonnet 5, Fable 5 and Mythos 5 the task list sits empty, because Claude Code no longer loads TaskCreate and its three siblings: they cost context, and those models hold the thread without a checklist. What you get when you ask for a list is loose markdown inside the reply, with no Ctrl+T and nothing left after /compact. If that list was your anchor, one line in settings.json brings it back.

You ask Claude Code to break the work into tasks. It hands you a clean list with ticked boxes. You hit Ctrl+T and nothing shows up.

Nothing broke. As of version 2.1.233, on Opus 4.8, Sonnet 5, Fable 5, Mythos 5 and later releases in those families, Claude Code ships without the tools that fill that list: TaskCreate, TaskGet, TaskList, TaskUpdate and TodoWrite. With no tools to write to it, Claude adds nothing to the list while it works, and the list stays empty.

The docs give two reasons in one sentence: those models track multi-step work without a written checklist, and five tool definitions plus their reminders take up context on every turn. Scaffolding traded for context window.

Why it slips past you

Because a list still comes back.

Here is a real run on Opus 5 with the variable unset:

> break shipping a tip into a task list and tick items off

## Shipping a tip

**1. Write the draft**
- [x] Break the work into tasks (this)
- [ ] ES + EN drafts
- [ ] Build the image
- [ ] Publish and cross-link

Zero tool calls. No new file under ~/.claude/tasks/. That is not the task list, it is markdown inside a message: it never reaches Ctrl+T, you cannot query or clear it on its own, and it goes out with the rest of the text at the next compaction. The real list did the opposite, being one of the few things that survives /compact.

Check it in ten seconds

claude -p --output-format stream-json --verbose "hi" | grep -c TaskCreate

0 means your sessions start without the tools. 1 means they have them.

How to get it back

One line in ~/.claude/settings.json, inside the env block:

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

Restart Claude Code and run the check again: it flips to 1. From there, the habit of asking for a list when a long task starts works exactly as before, and so does chaining tasks so one blocks another.

Four doors lead to the same place, depending on where it suits you:

Where How
Permanent, every session "env": { "CLAUDE_CODE_ENABLE_TODO_TOOLS": "1" } in settings.json
This session only CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude
This session, one tool claude --allowedTools TaskCreate
A session with a fixed tool set --tools, naming these alongside the rest

Where it still works untouched

Background sessions and Claude Code on the web get these tools on every model, listed or not. That is why a scheduled run you leave going still builds its checklist while your terminal has none.

A subagent gets the tools only when your session has them, even when the subagent runs a different model. It is the same inheritance that makes subagents lose tools once they move to the background. Without the task tools, an agent team coordinates through messages instead of a shared list.

And if you never looked at it

Then there is nothing to do, and you just got back the context those five tool definitions were spending every turn.

This is the original tip's argument turned inside out: the list was never there to make the model work better, it was there so you could see the scope. Anthropic has now signed that same idea by taking the scaffolding away from the model. The call left to you is a fair one: if you read that list, bring it back; if you never opened it, it is already settled.

Official docs: Tools reference: Task tool availability

Requirement: the behavior starts with Claude Code 2.1.233. The variable works on any version that has it.

Workshop for teams

Multiply your team's output without sacrificing quality: a 6 to 8 hour AI First workshop, online, on the Claude platform.

See the workshop
Free guide

The 51 essentials, as a PDF.

One page per tip. Five chapters. What I actually use daily in production — no theory, no fluff.

  • I. Getting started 10 tips
  • II. Awareness 3 tips
  • III. Mastery 22 tips
  • IV. Autonomy 10 tips
  • V. Comparison 6 tips
Are you a professional Web developer?

You'll receive the guide by email · You join the Gravitas newsletter · Unsubscribe anytime

of 51
#

Wmedia · 51 Tips
Free guide · 51 tips · 5 chapters

The 51 essentials, as a PDF.

Are you a professional Web developer? · Unsubscribe anytime