One todo list for Claude Code and Cursor
If you use Claude Code in the terminal and Cursor in the editor, each has its own idea of what to do next. Their built-in todo lists don't see each other, and neither survives the end of a session.
The fix is one list outside both tools that each of them reads and updates. This guide sets that up with Taskhold, a hosted task list with an MCP server, and covers the same idea with a plain file if you'd rather not use a service.
Option 1: a file in the repo
Free and fine for one repo. Create TASKS.md, tell both agents (CLAUDE.md for Claude Code, a rule or AGENTS.md for Cursor) to read it at the start and tick items off when done.
Where it breaks: you have to open the repo to see or change it, there's no record of which tool changed what beyond git, nothing stops both agents picking the same line, and it doesn't span repos.
Option 2: one hosted list over MCP
Make two setup URLs in Taskhold's Settings, one per client, and paste each into its agent. Claude Code runs a claude mcp add command; Cursor gets a ~/.cursor/mcp.json entry. Both point at the same list with separate keys.
Then put the same workflow snippet in CLAUDE.md and in Cursor's rules:
## Tasks (Taskhold)
The human and I share a task list through the taskhold MCP tools.
- Session start: taskhold_get_current; if nothing is in progress, taskhold_list status:todo and take the highest priority.
- taskhold_start before working on a task; taskhold_add_note as you go.
- Can't continue? taskhold_block with the reason. Done? taskhold_complete with a short summary.
- Found a TODO or a bug you aren't fixing now? taskhold_create (or taskhold_create_from_todo with file and line).How they avoid doing the same task
- An agent calls taskhold_start before working, which moves the task to in progress.
- The other agent lists todo tasks only, so it takes the next one.
- If an agent stops partway, taskhold_block records why, and the task stays out of the queue until you unblock it.
This is coordination by convention, not a hard lock: two agents that call start on the same task at the same moment can still collide. In practice, with one person running a few agents, the in-progress status is enough.
Reading what happened
Each task keeps its history and notes, with every change marked as made by you or by an agent. Agent Activity shows the task an agent is on, tasks blocked on you, recent agent notes and tasks agents created. Taskhold marks a change as "agent", not which agent, so if you want that, ask each agent to start its notes with its name.
Give your agents a list you can both see.
$12 a month or $120 a year per person, every agent included. 7-day trial with a card; cancel before it ends and nothing is charged.
Start your 7-day trialQuestions
- Can I use it with only one of the two?
- Yes. Most people start with one agent. Adding a second later is one more setup URL.
- Does it work across several repos?
- Yes. The list is per person, not per repo. Use projects in the web app to group tasks by repo.
- What does it cost?
- $12 a month or $120 a year per person, with a 7-day trial that starts with a card.
Related
Updated 2026-10-08