Lives in your repo
A task is a Markdown file. YAML on top for the machine, prose below for people. Diff it, branch it, review it in a PR. A task's history is its git history.
Your tasks are Markdown files in your repo. cairn serves them to AI agents over MCP and to you over a web UI. One source of truth, no database.

cairn writes each agent's config for you from the Connect page, or you copy a snippet and paste it yourself. Each agent connects under its own name (agent:cursor, agent:codex, and so on), so its work shows up as its own in the task history.
| Agent | One-click | Config it writes | Connects as |
|---|---|---|---|
| Claude Code | Yes | ./.mcp.json | agent:claude |
| Cursor | Yes | ./.cursor/mcp.json | agent:cursor |
| Codex | Yes | ./.codex/config.toml | agent:codex |
| Windsurf | Yes | ~/.codeium/windsurf/mcp_config.json | agent:windsurf |
| OpenCode | Yes | ./opencode.json | agent:opencode |
| Kilo Code | Yes | ./.kilocode/mcp.json | agent:kilo |
| Pi | Yes | ./.mcp.json | agent:pi |
| Antigravity | Manual | ~/.gemini/config/mcp_config.json | agent:antigravity |
Any MCP client works. These are the ones cairn sets up for you. See the agents guide for how that works, or Claude Code to start.