Claude Code
Add the server once from your terminal:
claude mcp add --transport http tandem http://127.0.0.1:4317/p/<project-id>/mcpTasks are Markdown files in your repo. Agents claim and finish them over MCP. You review.
Tandem is a desktop app.
Tandem isn't signed or notarized yet, so macOS can't verify it. Drag Tandem to Applications and open it. When macOS says it can't verify the app, close the message, open System Settings → Privacy & Security, and under Security choose Open Anyway for Tandem, then confirm. You only do this once.
On Apple silicon, macOS may instead say Tandem "is damaged and can't be opened". The app is fine; macOS says this about unsigned apps downloaded from the internet. Clear the download quarantine in Terminal, then open Tandem again:
xattr -dr com.apple.quarantine /Applications/Tandem.appTandem isn't signed yet. Run the installer. If SmartScreen shows "Windows protected your PC", choose More info, then Run anyway.
Install the .deb (sudo apt install ./Tandem_*.deb) or the .rpm, or make the .AppImage executable (chmod +x Tandem_*.AppImage) and run it.
Free and MIT licensed · macOS, Windows, Linux

1
Each task is a Markdown file in your repo's .tandem/ folder, committed with the code that works on it. The file is the card: when an agent starts the task, one line changes.
.tandem/m2ex9rd.md
---
id: m2ex9rd
title: Add a --units flag
status: in_progress
priority: high
labels: [cli]
created: 2026-10-20
---
## Description
Let people pick metric or imperial output.
## Acceptance criteria
- [ ] `--units` accepts metric and imperial
- [ ] The default follows the system locale
- [ ] `--help` documents the flag
## Changelog
### 2026-10-20 · You · created
### 2026-10-21 · claude-code-4537 · startedgit diff
- status: todo
+ status: in_progress2
Tandem runs an MCP server on your machine. Add it to your agent once; it claims a task, logs progress and finishes it through MCP tools, safely alongside other agents.
claude mcp add --transport http tandem http://127.0.0.1:4317/p/<project-id>/mcpstart_taskm2ex9rd → in progresslog_progress"Parsing --units with clap"log_progress"Locale default done, adding tests"finish_taskmet 1, 2, 3 → Review3
Finished work waits in Review with the agent's summary and its ticked criteria. Mark it reviewed, or reopen it with feedback for the next attempt. Only you can tick it off.
Review 1
Add a --units flag
cli
claude-code-4537 · finished
Added --units with metric and imperial, defaulting from the locale, plus tests.
--units accepts metric and imperial--help documents the flagA task file changes only when something worth reading happens, and its changelog only grows. Commit review commits that one file and nothing else.
start_task claims a task for 15 minutes, renewed by every tool call that carries its agent id. If an agent crashes, its lease runs out and another agent can take the task over.
Tasks an agent creates wait in Backlog until you approve them. Agents only start tasks in Todo, and only you can mark finished work reviewed.
The MCP server listens on 127.0.0.1, with one endpoint per project, and only while the app runs. There is no account to create.
Leases and working logs live in a SQLite database in the app’s data folder, never in the repo. Delete it, and the board rebuilds from the files.
N new task, / search, Enter opens a card, R marks it reviewed, A approves. Or drag cards between columns.
Each project gets one MCP endpoint over HTTP. The app's Setup panel shows its URL with copy buttons for each of these.
Add the server once from your terminal:
claude mcp add --transport http tandem http://127.0.0.1:4317/p/<project-id>/mcp.mcp.jsonOr commit this at the repo root, so every Claude Code session in the repo gets the server:
{
"mcpServers": {
"tandem": { "type": "http", "url": "http://127.0.0.1:4317/p/<project-id>/mcp" }
}
}Any MCP client that supports Streamable HTTP can use the same URL, in its own config format. See your client's docs.
AGENTS.mdAdd the workflow snippet to AGENTS.md or CLAUDE.md, so agents claim tasks before working, commit the task file with their work, and never mark their own work reviewed.
Its own tasks live in the repo's .tandem/ folder, worked on by agents and reviewed by hand, like the ones on your board will be. Tandem is open source under the MIT license.
Tandem is a desktop app.
Tandem isn't signed or notarized yet, so macOS can't verify it. Drag Tandem to Applications and open it. When macOS says it can't verify the app, close the message, open System Settings → Privacy & Security, and under Security choose Open Anyway for Tandem, then confirm. You only do this once.
On Apple silicon, macOS may instead say Tandem "is damaged and can't be opened". The app is fine; macOS says this about unsigned apps downloaded from the internet. Clear the download quarantine in Terminal, then open Tandem again:
xattr -dr com.apple.quarantine /Applications/Tandem.appTandem isn't signed yet. Run the installer. If SmartScreen shows "Windows protected your PC", choose More info, then Run anyway.
Install the .deb (sudo apt install ./Tandem_*.deb) or the .rpm, or make the .AppImage executable (chmod +x Tandem_*.AppImage) and run it.