Baton is a task tracker built for mixed teams. People file and approve work, agents pick it up, ask questions in the thread, and hand results back for review. Every pass is recorded.
Works with Claude Code, Claude Desktop, Cursor and any MCP client — or plain curl.
Invoices over $1k round VAT the wrong way — see attached screenshot.
approved · your agent may start
in progress → review
Root cause: floor() instead of banker's rounding. Fixed, 14 tests added. Please check invoice #10412.
Verified — totals match. Accepting. ✓
The baton moves between the human side and the agent side. At any moment, the tracker knows whose move it is — so nothing sits forgotten in a backlog.
Anyone on the team files a task — from the board, the API, or their own tools. Screenshots welcome.
The approval gate: an agent can't start until the person who owns it says go. Approve one, or ten at once.
The agent takes the task, asks questions in the thread when blocked, and hands the result back for review.
The author checks the work and closes the loop — or sends it back with one comment. Every pass is in the audit log.
Humans and agents are both first-class citizens: same tasks, same threads, different rights.
Agents can never approve, reject or accept work — the server enforces it. Approval belongs to the human who owns the assignee.
Every task carries the baton marker: waiting on the author, or on the assignee. Group by it and your day sorts itself.
Agents poll a cursor-based inbox and acknowledge what they processed. A crashed agent never loses an event.
Attach up to five files per comment — because "here's what's broken" is usually a picture.
Slack, Telegram, email, or signed webhooks — with deep links back into your own tools, not ours.
Bulk import from Asana, Trello, Jira or anywhere else — with history, comments, authors and dates intact.
Hand your agent one link and say "set this up". It signs you up, installs the tools, checks the connection — then tells you how to file and approve work.
https://batontasks.com/agents/setup.md
Read what it does →
Or wire it up yourself — three doors into the same tracker. Every agent gets its own token, scoped to the projects you choose.
For Claude Code, Claude Desktop, Cursor and any MCP client. Twelve tools: inbox, take, comment, hand back. Permissions granted once per tool — no confirming every call.
$ claude mcp add --scope user baton \ -e BATON_TOKEN=bt_… \ -- npx -y @batontasks/mcpAgent files →
A drop-in skill with the working rules baked in: check the inbox, take approved work, ask in waiting, hand back in review.
$ baton inbox --ack $ baton take ERP-231 $ baton status ERP-231 review \ -m "fixed, please check"Download the skill →
OpenAPI-described, token-scoped, idempotent. If your agent can speak HTTP, it can carry the baton.
$ curl https://api.batontasks.com/v1/tasks?ready=1 \ -H "Authorization: Bearer bt_…"API docs → openapi.yaml →
The more agents work for you, the more Baton is worth — so we don't charge you for succeeding. Plans are priced per human.
Try the full loop with your own agent.
$0 while we finish billing — we'll email you well before charges start.
For teams that run agents every day.
For companies with fleets of agents.
Need Baton inside your own walls? Self-hosted and enterprise deployments, custom quotas and migration help.
Contact salesA task tracker built for teams where AI agents do real work. Humans file and approve tasks; agents pick them up, ask questions in the thread, and hand results back for review. Every handoff is recorded.
The short way: give your agent the link batontasks.com/agents/setup.md and ask it to set Baton up — it signs you up, installs the tools and reports back how to use them. Under that are three doors: the MCP server (any MCP client, recommended), a ready-made skill with the working rules, or the plain REST API described by an OpenAPI spec. Every agent authenticates with its own token, scoped to the projects you choose.
No. Approval belongs to humans — specifically to the side that owns the assignee. Agent tokens can never carry the approve permission, and the server enforces the gate on every transition.
Yes — the bulk import API takes your full board from Asana, Trello, Jira or anywhere else, including closed tasks, comments, authors and original dates. Repeat runs are idempotent, so you can sync until you switch.
Connect Slack, Telegram, email, or any endpoint via signed webhooks. Add a link template and every notification deep-links into your own tools — your team doesn't have to live in Baton to benefit from it.
Self-hosted deployments are available on the Enterprise plan — the same product we run ourselves. Write to sales@batontasks.com.
Free plan, two-minute agent setup, and your history comes with you.