New Task Plan has a bad UX
Resolved 💬 87 comments Opened Aug 27, 2025 by marcoscale98 Closed Sep 2, 2025
💡 Likely answer: A maintainer (bcherny, collaborator)
responded on this thread — see the highlighted reply below.
I prefer the old version of Task Plan, showing always the entire plan.
- [ ] Task 1
- [ ] Task 2
- [ ] Task 3
The new one doesn't show the entire plan.
<img width="1130" height="86" alt="Image" src="https://github.com/user-attachments/assets/4be41e0d-2238-46be-a559-1d113640f796" />
87 Comments
Yeah this is a rough change for me personally. Keeping track of a larger plan is much easier when you can see progress through the to-do list at all times. There should at least be some config option to specify which to show...
This is a huge downgrade in functionality. This cuts observability and pushes the whole terminal UI into a "black box" type of a tool. The ability to see the todo task list was one of the strongest features of Claude Code. It helped with steerability and gave confidence that it could execute long running tasks. Big time downgrade.
Edit:
I created a hook based todo tracker in a repo if anyone wants to use it while we wait for Anthropic to add the todos back.
<img width="603" height="362" alt="Image" src="https://github.com/user-attachments/assets/b2773716-c15c-42e6-8953-6111f4784076" />
Its really a downgrade when we talk about keeping the AI in the tracks, after each todo implemented i always check if it really was implemented and if its working correctly.
Here's my 2 thoughts:
This new UI/UX decision might be Anthropic's way of getting around observation #2.
I agree, it looks like a functionality downgrade... why can't we just keep the Todo list on a combination with a new task indicator? like a new indicator is way better than random words, but without the Todo plan we lose the connection with the agent so that it makes it impossible to detect an incorrect plan at early stages
With the old todo list I could intercept bad ideas and course correct by sending a message while Claude is working. Now I press [ESC] way more often, sometimes too late and need to tell Claude to revert parts of the work. This is a major regression.
I couldn't believe removing the TODO list was on purpose, I kept thinking it was just broken... this new version does not seem to keep claude on track very well. Like others have said, even on the 20x it seems to have gotten lazy and stopped before completing it's initial task set that was laid out. This is a significant downgrade to UX and just seems like an odd thing to do with no real upside?
Huge downgrade. We are losing in transparency and observability. Seeing the entire TODO list is essential to understand what's happening. Please fix.
I agree. This is a large downgrade in every aspect. Observability takes a hit. Steering agents live takes an indirect hit. I have no indication that my task was actually completed - which has already caused some issues for me, it seems to be slipping around my task list.
If you're going to force us to use output tokens to write the list - provide and out of the box agent for it.
We need the TODO impl one back!
Just adding my plea to the chorus, the todo list was the way I could make sure Claude remains on track, hiding from this information from me is a huge regression in my opinion.
Please fix this - it should at least be something we can toggle on.
+1 please fix!
+1 The expanded todo list was very very helpful
+1 Please re-expose the TODO list, or is there a better UI option in the works?
Yup need that back.
Bring it back, its a huge downgrade
Revert Claude Code Version
Safely downgrade Claude Code to a previous version when encountering bugs, compatibility issues, or needing specific features from earlier releases.
Quick Reversion Method[](https://claudelog.com/faqs/revert-claude-code-version/#quick-reversion-method "Direct link to Quick Reversion Method")
Navigate to Claude installation directory:
Install specific version:
What Gets Preserved[](https://claudelog.com/faqs/revert-claude-code-version/#what-gets-preserved "Direct link to What Gets Preserved")
Your data and configuration remain completely intact during version changes:
~/.claude/settings.jsonand project configurations~/.claude/projects/Only the Claude Code executable changes - all your personal data stays safe.
Verification
Check successful version change:
Test basic functionality:
Common Reversion Scenarios[](https://claudelog.com/faqs/revert-claude-code-version/#common-reversion-scenarios "Direct link to Common Reversion Scenarios")
Bug workarounds - Revert when new versions introduce issues affecting your workflow.
Feature compatibility - Stay on versions that support your required integrations or MCP servers.
Stability preference - Use tested versions for critical development work.
Data Safety
Version changes using npm only affect the Claude Code executable. Your settings, projects, and all personal data in
~/.claude/remain untouched and accessible across all versions.Version Strategy
Keep track of working versions for your setup. You can always upgrade again with
npm install @anthropic-ai/claude-code@latestwhen issues are resolved.Source
Please enable it back. This new update break a lot of dev workflow. Explicit todos is what make Claude Code great.
What is the user story behind a change like this? Why change one of the best features?
Please make an option to have transparency in the todo's, and other things that are now behind the scenes. Claude was a great pair coder, and now he's like a pair coder that locks me out of his room only to show me things done wrong that I used to correct him on inflight. Not sure why abstracting the user away further is good here. If you are trying to go after the loveable / bolt crowd you should release a different product. It's the equivalent if Apple turned their laptops into iOS machines and remove the terminal etc. Please!!!
The todos were a great feature, they should be expanding observability, not reducing it
Absolutely horrible choice. Please revert this.
There should be a config option to bring back TODOs. Having to hit ESC and fetch the todos with /todos is awful UX.
Old TODO list was one of the things that selled claude code for me (I was a cursur user). Very sad that anthropic team removed it.
Please revert this change. The todo list was very useful.
Absolutely this. So often when Claude used the previous version of the
TodoWriteI would spot errors or hallucinated tasks it had added to the todos, and was able to course correct before any damage was done. Now Claude will go off burning through credits on its hallucinated goals before I even realise what it is doing.It also kept us on the same page as to where we were and what we were doing next.
I also liked to make sure Claude added explicit check ins with me to it's todo list, now I can't see if it has actually done this.
The
TodoWritetool was a fantastic feature, and made working with Claude Code more predictable and reliable, and this is a definite regression.v1.0.94, Added /todos command to list current todo items, we do not want to run this command every time, we want to configurer claude turning on the todo lists and we can go with it. Or else im going to need stopping claude from coding to know what is being done now and will be done next.
Please get todos back
Please fix the TODO. Having the TODO repeatedly displayed was NOT redundant, as one can reflect on what is being done and maybe change course and spot errors.
Yes this would be the best option. Please add an option to have the TODO automatically displayed at every iteration as before.
I had no idea such a small change could make me go from loving a user experience to hating it so quickly.
I know this isn't perfect, but I created a hook with a viewer script that you can run in a second terminal window that tracks the todos if anyone is interested. It should be pretty lightweight, and may be a stand in until Anthropic adds the todos back. It may struggle to keep multiple sessions straight, but for a single session it works pretty well. Feel free to add functionality or features.
Claude Code Todo Tracker Repo
<img width="603" height="362" alt="Image" src="https://github.com/user-attachments/assets/5a732912-211b-4253-811b-cadc9db0e142" />
+1,000,000 on this.
Agents now fail as slash-commands (both Windows and Mac, so not a config issue).
And Todos lists are hidden.
@anthropics ... what's up with destroying Claude Code's most useful new features?
I am not sure this has been mentioned already and since I just saw this update, but the new /todo as a work around is a dud on arrival as it does not accomplish it’s task. The /todo does not work when claude is currently processing things—which is like 99% of the time I would be looking at the TODO list anyway. So it’s essentially a worthless addition.
<!-- Uploading "Untitled.png"... —>
Agreed this needs to come back so we can see what the plan is and instruct it to add or remove items from the Todo list.
Yes, Claude Code now seems to fail to recognise legitimate slash-commands.
I can tell it to run agent
~/.claude/agents/myagent.mdand that will work.If I type
/agentsI will see my agents listed includingmyagent.mdBut
/myagentnow routinely fails saying invalid slash-command.The last thing we need is stochastic behaviour around commands that are meant to be deterministic!
I watch CC as it is coding and the todo list has allowed me to intervene many times when the plan is off base. I agree - please bring it back. It adds several steps for me to have to manually type /todos over and over as CC is doing its thing.
@dimension-zero I think you can still reference specific agents by using "@" then the agent name to invoke them directly. Not sure if that solves all your problems with sub-agents, but you can at least get them to initialize with that method.
Please get todos back its a mast tool
Agreed with everyone: Bring the task list back and I'll add give use visibility in subagents' task list
+1 on this todos is like life. that was one of the features that makes it stand out above all other coders.
Bring it back!
It was so better before!!!
We need TODOs back ASAP. Also another thing. I have noticed that /todo command exists. But while agent is working, you cannot access it, i tried typing /todo and pressing enter, the agent got it as a message. Also none of the other commands seem to work while agent is working. When agent stops working, then commands work. But this is very useless for TODO of course, since we want to see the progress on the TODO list.
But for real, why are commands not working while agent is running / working on tasks? I often try to reconnect it with "ide" with /ide command, but it also gets send to agent as a message and then he is wondering if i accidentally messaged him. I think commands should be available while agent is working? Perhaps i am doing something wrong?
Commands can only be initiated by the user (you), not by the LLM. CC cannot initiate commands.
I also don't like that the message for what it is currently doing now get stuck of the todo it was working on. So if you interrupt it and ask it something else the message when it is "thinking" will still say the thing you just interrupted.
So something like:
It's alarming at times.
I know that only user (me) can initiated commands. But while claude agent is working, you can still type in all the commands, just use "slash", like this /ide or /todo and so on...even tab completion works ,but when user (me) presses enter it sends it as a message instead of executing the command. See what i mean?
Yea this is a terrible change. Really hope they bring it back to what it was.....
@archneon
It helps to think of it like this: the slash commands (/todos, /ide, etc.) are not instructions for the AI agent. The agent has no idea what they are and can't run them.
Those commands are for you to control the Claude Code application itself.
So, when the agent is busy thinking or working, the application is locked into "agent mode." Any input you send goes directly to the agent as a message. That's why it gets confused and treats /todos as part of the conversation.
The only way to switch the application back to "user command mode" is to interrupt the agent.
Hit Esc to stop the agent. Once you have the > prompt back, the application is listening to you again, and you can successfully run your command.
Thanks all for the feedback ❤️. Fix incoming.
Thank you @bcherny !!!! <3
@bcherny Thank you for responding to everyone on this GH issue! It promotes trust with Anthropic and I really appreciate that.
👏👏👏👏 @bcherny
Thank you @bcherny
New UX just landed in 1.0.98. Feedback welcome -- love it? like it? hate it?
Claude Code's New Task List Functionality: A Comprehensive Guide
Claude Code has introduced a more streamlined and on-demand way to track its progress on multi-step tasks. The previous implementation, which displayed the task list persistently, has been replaced by a system that keeps the list hidden by default to reduce UI clutter, allowing users to view it with a simple keyboard shortcut.
This guide details how the new functionality works, how to interact with it, and the benefits of this updated approach.
1. Overview: From Persistent to On-Demand
Previously, when Claude Code undertook a multi-step task, it would display a persistent checklist in the terminal, which updated as each step was completed.
The new implementation (since 1.0.98) changes this behavior. The task list is now generated and tracked internally but remains hidden from view by default. This provides a cleaner interface that focuses on the current active task, while still giving you full visibility into the overall plan whenever you need it.
2. How It Works: The Task Execution Loop
The core process remains similar, but the user interface has been refined.
TodoWritetool, where each task has a status:pending,in_progress, orcompleted.3. Interacting with the Task List
There are two primary ways to view the task list:
A. Toggling Visibility with
Ctrl+T(Primary Method)This is the main way to interact with the task list. The status line at the bottom of the interface provides a hint for this shortcut.
Ctrl+T. The task list will appear directly below the active task line.Ctrl+Tagain to hide it.Example Workflow:
When Claude begins working, the UI is clean, showing only the active task:
After pressing
Ctrl+T, the full task list becomes visible:B. Using the
/todosCommandAs noted in the changelog for version 1.0.94, a new slash command was introduced to interact with the list.
This command will print the current state of the task list to the conversation, providing a static snapshot of progress at that moment.
4. Understanding the Task List UI
When the task list is visible, it uses simple icons to denote the status of each item:
☐Pending: The task has not yet been started.☒Completed: The task has been successfully completed.The line above the list always indicates the task that is currently in progress.
In this example, Claude has finished the HTML file and is now actively working on the CSS file.
5. Benefits of the New Approach
This change, while requiring a new user habit (
Ctrl+T), offers several key advantages:In summary, the new task list functionality provides the same powerful progress tracking as before but in a more streamlined, user-controlled, and less intrusive manner.
Title: Feature Request: Add a configuration option for persistent TODO list visibility
Is your feature request related to a problem? Please describe.
First off, great work on the new on-demand TODO list feature (viewable with
Ctrl+T), which I see was introduced around v1.0.98. The move to a cleaner, less cluttered UI by default makes a lot of sense, especially for quick tasks and maintaining focus. My initial impression is very positive.However, for more complex, long-running tasks (like a large refactor or scaffolding a new feature), I find myself constantly toggling the list on to maintain an at-a-glance awareness of the overall progress. The previous "always-on" behavior was very beneficial for these "dashboard-style" monitoring workflows, where seeing the full plan provides valuable context at all times.
Describe the solution you'd like
I would like to propose adding a configuration option that allows users to set the TODO list to be visible by default whenever a task list is generated, without needing to press
Ctrl+Tat the start of each task.This would allow users to opt-in to the persistent view based on their personal preference or workflow. Ideal implementations could be:
export CLAUDE_CODE_SHOW_TODOS_BY_DEFAULT=1claude --show-todos "Refactor the entire authentication module"settings.json: This would be the most robust option, allowing it to be managed via the/configcommand and potentially set on a per-project basis..claude/settings.json:{ "showTodosByDefault": true }Describe alternatives you've considered
The current alternative is to manually press
Ctrl+Tat the beginning of each task execution. While functional, this adds a small but repetitive step for users who prefer the persistent view. Making this a "set-it-and-forget-it" option would significantly improve the user experience for this workflow.Additional context
This feature would cater to two different but valid user workflows without compromising the new default:
``
``✢ Adding Matrix rain animation effect… (esc to interrupt · ctrl+t to show todos)
``
``✢ Adding Matrix rain animation effect… (esc to interrupt · ctrl+t to hide todos)
⎿ ☒ Create calculator folder structure
☒ Create HTML file with calculator structure
☒ Add CSS styling for Matrix theme
☒ Implement calculator JavaScript functionality
☐ Add Matrix rain animation effect
---
Thanks for being so open to feedback on new features! This small addition would greatly enhance the tool's flexibility and cater to different developer preferences. Happy to provide more details if needed.
Feels good! I could not persist todo list view from a previous sessions or new session in the same project. Is there a configurable for the project or user scoped settings.json, so todo is always visible?
<img width="1051" height="187" alt="Image" src="https://github.com/user-attachments/assets/50baaf00-586a-430b-b0c4-c324b3bdbdcf" />
Incoming
Yes persistent would be better as would being able to send /Todo while it is running and see it without /todo being interpreted as a message directly to the LLM.
Please give people the options to maintain their workflow. For me the todos is not cluterring at all. It is a must-have visualization (for trust and verification) and must be present all the time. Please add the ability for users to opt out of this new UI change. I dont want to press Control-T all the time.
I think I can explain why this feature is getting so much feedback.
It's very satisfying to watch a todo list get ticked off by an AI. It generates a feeling of accomplishment in the user.
Because things that the user care about are being accomplished.
This new design robs the users of that sense of satisfaction.
It requires them to press a key every time in order to achieve the dopamine release they are looking for.. which creates a feeling of EFFORT.
So ironically, you thought you were making things easier for the user.. but you actually made the user experience seem harder.
Don't rob your users of their sense of satisfaction by forcing them to make a repetitive action over and over... never a good idea.
The todo list should always be prominently displayed.. and the user should have to press ctrl+t to minimize it. ctrl +t should toggle globally and persist across sessions.. reflecting that users preference.
If you don't believe me.. do an A/B test. Make the ctrl+t a toggle, and default it to on in the A group, and default it to off in the B group. I'm certain you will see a lot more users leaving the todo list open, than closing it. And I'm sure you will get more frustrated feedback from the B group.
Does that make sense?
@coygeek can I ask the heretic question why not show less code and more task planning if you want to declutter the output?
You usually can tell well in advance if Claude is going to do something smart or stupid just by looking at the Todo list and I really would love to have more control and insight into the Plan -> Todo -> Code workflow.
Because there is nothing more frustrating then Claude having a perfect plan shortly before compaction only to roll the dice what's going to happen afterwards.
It's actually a very good point. When you think about the ideal user experience.. is it reviewing code patch-by-patch in case claude makes a mistake? Or is it watching claude run through do the to-do list, knowing that everything is just going to work?
Obviously, we are going to be reviewing a lot of code patch by patch for a number of years yet... but as claude gathers all the data from the acceptance-rejection of HITL, what will the UX move towards?
Well Claude is so fast at generating new code that you end up needing a full stack CI system really quickly to have even the slightest chance to process all those changes. With a lot of people like me testing how far you can go once you have a full feedback loop between Claude and your testing system.
Claude has a lot of options to tweak it like commands, hooks, MCP or agents. But once you start to push claude towards automation keeping track of things is becoming quite an UX challenge.
I don't understand where the reason for this change came from. Seems just like changing things for change's sake, a la Google. Respectfully
I don't mind CTRL-T, but I'd agree with the suggestion to use environment variables to control default state.
I prefer the old way, but it isn't a big deal to control-T if I want to see the todo. In other words, I went from very put out, to meh, this is fine. I think someone up thread was onto something when they said with agentic programming we are going to be less and less concerned with code level changes, and more interested in "the plan" and watching it move through the plan, watching thinking and commentary from the model is what is important now. I personally like to watch claude work because it increases my understanding and allows me to interupt when I think we are off track.
I think a /settings command where we can navigate through settings (e.g. todo behavior), toggling defaults, turning mcp servers on and off on the fly, etc would be awesome.
CTRL T is no good to me. That shortcut is assigned elsewhere on my Mac. What I cannot understand is why any of this was necessary. Todo Lists (that updated in realtime) were a great feature.
Now it's fine! And it seems to me that in the same conversation, the system remembers that I pressed Ctrl + T and continues to show me the todo list expanded in the next messages 👍
After using it for a couple days I think there is a lot of positive items in this change. Being able to have the todos open while long tasks are running eliminates the necessity to scroll back to the last time the todos were listed to see where we are in the process. If we could still toggle the ctrl+t menu when claude code isn't working (similar to the ctrl-r for the expanded view) that would be helpful. That way we don't have to use the /todos command and muddy up the feed.
I think that this item opens up the discussion for a sidebar that can hold custom information. If ctrl+t opened a sidebar on the right that housed the todo list, you could also open up an amazing opportunity for a status line style customization area. Being able to toggle it on and off opens up it's functionality that the status line doesn't currently provide. I personally can think of a ton of items that I would like to have in a side panel if give the option.
ctrl + T doesnt even work for me. nothing happens when i press it.
this is a regression in ux. being able to see the entire plan at all times is valuable for maintaining trust with the agent. now it's hard to see if the plan is any good of if i need to adjust it.
this regression makes no sense to me. plz consider reverting
Thanks all for the feedback! Feel free to open new issues with any other feedback. Working on polishing the UX up a bit more, per @JamesonNyp and others' feedback.
@bcherny take a look at the GUI Todo list tracker "Claude Todo Monitor - Electron App" at https://github.com/dimension-zero/cc-todo-hook-tracker/tree/powershell-version/typescript which is a fork of the CLI original by @JamesonNyp
having Ctrl+T is nice for me! It gives options. If you'd just set visibility on for TODOList as default I think we would have the best of both worlds! Thanks for your help!!
Um, I've been trying to get it out of Claude exactly how it can READ the todo list. It CAN'T. So you may have a list you can see via Ctrl-T but CLAUDE don't, and relying on ITS memory is worth less than the pile I left in the toilet this morning.
I think they should add an option that can be controlled locally or globally if the todos list should be displayed or not. Like
defaultDisplayTodos: trueinsettings.local.json. Exactly like thedefaultModeI'm on v1.0.108 and i just noticed that the task list is visible by default.
Now, to hide the full list, you have to press CTRL+T.
Looks like Anthropic made this a permanent change, without the user having to do anything.
@ZeldOcarina @brantsrasmus the todo list is sticky, so if you ctrl+t it will stay expanded/hidden next time
@acidtech Claude sees the todo list, even when it's collapsed
I'm also on v1.0.108, and I cannot get it to show the task list.
I've tried changing the /config to "Use todo list"... and turned verbose config on and off. A couple of times today I saw the sticky todo list, but now it's gone. I've tried Ctrl+t, Ctrl+r, different IDEs, everything, and I cannot find a pattern.
It just shows:
claude - TodoWrite (MCP)(todos: [{"content":" a loot of json}])Take a look at this Claude Code Todo Tracker GUI.
Forked from @JamesonNyp's script-based bash original, it has added a powerful GUI.
@tjementum it looks like you're using a todos MCP server. Try removing that MCP server.
Hmm... I actually ended up "reinstalling" Claude Code, as i could also not see when it was calling sub agents, and hooks were also not working so I could not even use Claude Code Todo Tracker GUI.
After reinstall (and agressivly cleaning up files form Claude Code and Claude Desktop which is scattred all over the system, everything now works inluding Todos, Hooks, Sub Agents 🎉 I even installed all the same MCP Servers.
The /doctor command did not report any problems before I reinstalled, but something was clearly wrong on my system.
URL of Claude Code Todo Tracker GUI has changed to https://github.com/dimension-zero/Entropic
Old one https://github.com/dimension-zero/cc-todo-hook-tracker still works for now.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.