Give Claude Code your to-do list
Claude Code already knows what’s left to do in your code. Connect it to SwitchDesk and those loose ends become real to-dos in the right category, and the to-do for a fix gets checked off when the fix ships. Your key stays in the macOS Keychain.
- Connects over MCP or the CLI
- About 5 minutes
- Set up on your Mac · Pro
Needs Your Approval2
What Claude Code can do with your list
Claude Code reaches SwitchDesk the same way it reaches any other MCP server: as a set of tools it can call while it works. With your permission it can:
- Read before it starts. Today, This Week, a category, one to-do’s notes and sub-to-dos, or a search across titles and notes.
- Capture what it finds. New to-dos in Incoming by default, or under a category or a parent to-do, with a due date.
- Close the loop. Mark a to-do in progress while it works and done when it’s finished, or add a progress note.
- Leave notes for your team. A Team Note on a shared to-do, so teammates see what changed.
The switchdesk CLI does the same from a plain shell: it can list, add, check off and edit your to-dos, and it can act as Claude Code’s MCP server too.
Why a coding agent should see your list
Coding sessions end with loose threads: a TODO comment, a test you skipped, a reviewer’s “can we handle this later?”. They tend to stay in the code, where nobody plans from. Claude Code can move them into SwitchDesk as it goes, filed under the project’s category because it reads the category bios.
The list also helps the session. Ask Claude Code to read Today at the start, and it knows which piece of work you meant before you explain it. When the change is merged, it can find the matching to-do and check it off, so your list matches what actually shipped.
Things to ask Claude Code
“Read my SwitchDesk Today list and pick the item that belongs to this repo.”
ReadsReads Today and the to-do’s notes, then plans the session around it.
“Find the TODO comments on this branch and add each one under Fernhill.”
ChangesAdds them to the bottom of Fernhill. In Assistant they wait for your tap; sent together, they’re one “Add” card.
“Put the reviewer’s follow-ups in Incoming.”
ChangesAdds them to Incoming straight away; no card needed in Assistant.
“Add a sub-to-do under “Fernhill billing page”: write the migration tests.”
ChangesNests a new to-do under the parent. In Assistant this waits for your tap.
“The Lumora import fix is merged. Check off its to-do and note the branch.”
ChangesChecks it off and appends a short note. In Assistant, both wait for your tap.
“What’s still open in Fernhill that touches billing?”
ReadsSearches titles and notes in that category and lists what’s left.
Set it up
You need SwitchDesk for Mac, signed in, Node.js for npm, and Claude Code installed.
SwitchDesk on your Mac
Click Connect an AI and choose Terminal & coding tools (CLI)
Open Settings → AI Access and click Connect an AI. Choose Terminal & coding tools (CLI) (“Claude Code, Cursor, Codex”).
SwitchDesk on your Mac
Answer “What can it do?”, then Continue
Pick Read only, Assistant or Full control; Fine-tune sets each permission on its own. Click Continue (with Full control the button reads Allow & Continue). Keep Assistant. The connection is named “Terminal” on its cards and in Activity.
Terminal
Install the CLI.
You need Node.js 20 or newer.
npm install -g switchdeskTerminal
Run switchdesk login and paste this key.
Run it in Terminal. Nothing shows while you paste. The key is checked, then saved in your macOS Keychain (service
switchdesk), never in a plain file, never in Claude Code’s chat or your repo. The setup page shows the key (it starts withsda_) once: “Copy the key now. It won’t be shown again.”Terminal
Add it to your coding tool.
For Claude Code, run this once. It starts
switchdesk mcp, a local MCP server that forwards to SwitchDesk with the key from your Keychain, so no config file holds it.claude mcp add switchdesk -- switchdesk mcpClaude Code
Check the connection
Click Done in SwitchDesk. Start Claude Code in any project, type
/mcpand look for switchdesk. Then ask: “What’s on my SwitchDesk Today list?”
No Node.js, or a machine where you’d rather not install the CLI? The setup page’s Without the CLI disclosure shows the plain HTTP setup instead: the key saved in your Keychain once, read through SWITCHDESK_TOKEN, and sent as Authorization: Bearer to https://api.switchdesk.org/mcp.
Claude Code can also connect by signing in instead: add https://mcp.switchdesk.org/mcp and authenticate from /mcp. The key route stays the default, since it sets up the CLI too.
To make the habit stick, add a line to your project’s CLAUDE.md, such as “At the start of a session, read my SwitchDesk Today list. File follow-ups under Fernhill.”
Claude Code skill for SwitchDesk →
Choose how much Claude Code can do
A coding agent runs many tool calls in a row, so the defaults matter more here than in a chat. The to-do rows of each preset:
| What it may do | Read only | Assistantdefault | Full control |
|---|---|---|---|
| See to-dosEvery to-do, done ones, sub-to-dos, notes and repeat rules | On | On | On |
| Add to IncomingNew to-dos in Incoming, above Today | Off | On | On |
| Add anywhereAny category, Today, This Week (and a day), Next Week, sub-to-dos | Off | Ask | On |
| Edit to-dos and notesTitles, notes, due dates, repeats, moves, urgent, backlog | Off | Ask | On |
| Check offDone, in progress or open | Off | Ask | On |
| DeleteDelete, with 7-day Undo | Off | Ask | On |
| Shared categoriesAny change your teammates can see | Off | Ask | On |
Assistant already lets Claude Code capture follow-ups into Incoming without interrupting you. If approving every check-off gets old, set Check off to On with Fine-tune. Leave Delete on Ask. Every permission, explained.
Keeping it safe
- Keep the key out of the repo. It belongs in the Keychain only. Never in a committed file, a chat with Claude Code or a command line.
- Don’t pre-approve the CLI. Claude Code can be told to run commands without asking. Don’t do that for switchdesk: a README or issue it reads could tell it to delete things.
- Deletes have a brake. In Assistant, more than 20 deletes in 10 minutes pauses the connection’s writes by itself.
- Every call is logged. Activity lists every call each connection makes, with Undo for 7 days on anything it changed.
- It can’t raise its own access. Claude Code can’t approve its cards, change its permissions or touch your settings, billing or team.
If something doesn’t work
| You see | What to do |
|---|---|
switchdesk isn’t listed in /mcp | Run claude mcp add switchdesk -- switchdesk mcp again and restart Claude Code. If Claude Code can’t find switchdesk, use the full path from which switchdesk. |
| “Not signed in” | Run switchdesk login yourself and paste the key (never let the agent handle it). |
| “Not allowed” | That permission is Off. Change it in Settings → AI Access; it applies on the next call. |
| “Waiting for approval” | Expected in Assistant. Tap the card in Needs Your Approval on your Mac. |
| Writes stopped working | The connection is paused, perhaps after a burst of deletes. Resume it in Settings → AI Access. |
| A repeating to-do won’t delete | Ask Claude Code to stop the series as well. |
| “Rate limited” | Too many calls at once. Claude Code is told how many seconds to wait. |
| “SwitchDesk Pro is needed” | AI Access is part of Pro. The connection resumes when your plan does. Pricing. |
Published . How AI Access works →