Why Claude Code's task list is empty, and how to get it back
By Jake Marsh, who builds Taskhold. Updated 2026-10-26. Facts about other tools checked 2026-10-26. 3 min read.
Short answer: Since Claude Code v2.1.268 the task tools (TaskCreate, TaskGet, TaskList, TaskUpdate) are on by default only on Opus 4.7, Sonnet 4.6, Haiku 4.5 and earlier models. On newer models Claude adds nothing to the list, so Ctrl+T shows nothing. Start Claude Code with CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring the list back.
If Claude used to show a checklist while it worked and now doesn't, nothing is broken. The list is filled by Claude calling task tools, and on newer models Claude Code no longer gives it those tools unless you ask. If you want progress you can see from outside the terminal, Taskhold's live board shows each task's steps as the agent reports them. More in Claude Code's tasks compared, Taskhold for Claude Code and seeing what your agent is doing.
The fix
Set the variable when you start Claude Code. The docs say this provides the task tools on every model and every provider:
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude
# or for every session, in ~/.zshrc or ~/.bashrc
export CLAUDE_CODE_ENABLE_TODO_TOOLS=1Naming one of the tools also turns them on for that session, for example claude --allowedTools TaskCreate, or listing them in --tools. Background sessions started from agent view and cloud sessions get the tools on every model without any setting.
Why the default changed
Claude Code's tools reference gives the reason: newer models keep track of multi-step work without a written checklist, and the tools' definitions and reminders take up context on every turn. So the list is off where it adds the least, and you can opt back in when you want to see the plan.
Other reasons the list looks empty
- Claude hasn't made a checklist yet. Ctrl+T toggles the view, and with nothing in the list the toggle has no visible effect.
- The view shows up to five tasks at a time, so a long plan looks shorter than it is.
- You're looking at /tasks. That lists background shells and subagents, not Claude's checklist.
- A model ID Claude Code doesn't recognize, such as a custom name behind an LLM gateway, is treated like a newer model: no tools unless you opt in.
- Sharing a list across sessions with CLAUDE_CODE_TASK_LIST_ID still needs the tools in each session.
When you want the plan outside the terminal
The built-in list is a good checklist for the session in front of you. It lives in ~/.claude/tasks/ on one machine and in one terminal. If you want to see the plan from a browser or your phone, across Claude Code and other agents, the agent has to report it somewhere shared.
Taskhold is built for that: Claude Code plans each task into steps with taskhold_plan and reports progress with taskhold_progress, and you watch it on a live board, on any model, alongside Codex or Cursor. Both can run at once: the built-in list for Claude's own short checklist, Taskhold for the tasks you queue and follow.
See how far along your coding agents are.
$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.
Questions
- Does turning the task tools back on cost anything?
- The tool definitions and their reminders use some context on every turn, which is the reason they're off by default on newer models. Nothing else changes.
- Is TodoWrite coming back?
- TodoWrite is disabled by default in favor of the four Task tools. Where the task tools are available, setting CLAUDE_CODE_ENABLE_TASKS=0 gives you TodoWrite instead.
- Which Claude Code version changed this?
- The tools reference says the default set applies in Claude Code v2.1.268 and later. Run claude --version to check yours.
Sources
- Claude Code docs: task tool availability, checked 2026-10-26
- Claude Code docs: task list, checked 2026-10-26
Related
Updated 2026-10-26. Something wrong or out of date? Email hello@greatwork.company.