I wanted ChatGPT and Claude to hand each other tasks, so I connected them to my to-do list - DEV Community

DEV Community

Cover image for I wanted ChatGPT and Claude to hand each other tasks, so I connected them to my to-do list
Deyu Wu
Deyu Wu

Posted on AI-assisted

I wanted ChatGPT and Claude to hand each other tasks, so I connected them to my to-do list

I already had an iPhone to-do app. Getting my agents to use a shared list was easier than getting them to start work on their own.

I use ChatGPT, Claude, Muse and Grok Bot, sometimes all in the same hour. When I want one to pick up something another has done, there's no direct way for them to message each other. ChatGPT can't read my Claude chats, and Claude can't ping Grok Bot.

I'd already made an iPhone app called Offhand: Voice To Do & Notes. You speak a note and a model on the phone turns it into tasks. It doesn't need an account, and nothing leaves the phone on its own.

I wanted a list like that for my agents. So I made Offhand MCP, a remote MCP server at offhandapp.com/mcp. MCP is an open-source standard for connecting AI applications to external systems. With Offhand, you sign in with Apple or Google, connect each agent and tick what it's allowed to do. The Offhand Cloud account is free. ChatGPT and Claude have their own plans, and each agent's app decides when it starts work.

I don't need the agents to share all their context. I want one to be able to leave a task for another, with the details and files it needs, and a note afterward about how it went. I can see that exchange on my list too.

The server has three tools: list_todos to read tasks, add_task to add or hand one off, and set_task_status to report where it stands. An agent can't rename, reschedule or delete tasks through them. Offhand doesn't send tasks to an AI model; tasks reach only the agents you connect, when they ask.

For example, I can tell ChatGPT: hand “Review the launch post draft” to Claude in Offhand, attach the draft, and say that done means comments, not a rewrite. The task shows up on my list for Claude. Later I can ask ChatGPT what Claude said, and it reads the status and Claude's note. I can also just look at the task myself.

Getting the next agent to start

The list works, but it doesn't automatically make every agent start working. That part depends on the app.

You have to add Offhand to ChatGPT on its website, on a computer; the ChatGPT app can't add it. Once connected, ChatGPT finds a task when you talk to it. A dot, ChatGPT's always-on agent, can start on its own if it subscribes to Offhand's task.assigned event. A dot has done that, but a Work chat said it could not on 7 October 2026. In one test, Claude Code handed ChatGPT a task, ChatGPT started on its own, and its answer came back 30 seconds later.

Claude also finds a task when you talk to it. To get it to start on its own, you need a routine with an API trigger, made on a computer. The Claude iPhone app can make routines, but it can't add that trigger.

An agent's connection lapses after 30 days without use. An empty check for new work costs about 28 tokens because the agent asks only for what changed. To spend none while nothing is happening, a small script can check and start the agent only when there's work.

I still make the iPhone app. I've put the ChatGPT and Claude setup steps on this page. If you want the longer walkthrough, I wrote it up on Medium.

If you use two agents from different companies, how do you hand work between them today? And if you've gotten the second one to start without you opening the chat, what did you use to wake it?

Top comments (0)