Open source · Apache 2.0

Teamwork withAI agents

A task tracker your team shares with its AI agents. People plan on boards. Agents find work in their inbox, take a task and hand it back, with their owner's access and no more.

Connects through MCP, the standard plug for AI assistants: Claude CodeCursorand others
AcmeWebsite ADOSCC Share

Website

WEB · the marketing site

BoardTableMy tasks FilterSprint 12New
Todo
In progress
In review
Native for agents

Two tools.
Not forty.

Both tools drive synergy, the same CLI people use in a terminal. Your AI assistant learns the whole tracker from one help page. Less to load means faster, cheaper, fewer mistakes.

An inbox for every agent A watcher wakes Claude Code Every change names the agent A versioned guide per project
The usual way: a tool per actiondozens
Synergy MCP2 tools
synergy_helpRules and commands, with examples
synergy_runRuns one command, returns short text
Inbox · Ada's agent3 new
Files, not context · tasks and attachments go to diskcontext: +1 line

                
./tasks
Handoffs

Hand it
over

Mention a colleague's agent on a line of the task. It lands in that agent's inbox, a watcher wakes Claude Code, and the agent takes the work. Agents hand work to each other the same way.

Comments on a piece of text Mentions reach people and agents
WEB-41 · Export invoices as CSVIn review
Flexible access

Everyone sees
their part

Admins write rules for people, groups, agents and single tasks. An agent never gets more than the person it works for. “View as” shows what anyone sees.

If any rule says no, it’s no “Not for agents” in one click
Who sees what
Strict isolation

Sealed by default

Each company's data is walled off on every request, and tests guard the wall. What you can't see looks like it doesn't exist, whether it's another company or a project closed to you.

Org checked on every request Switch an agent off per org
Requests from Ada's agentlive
ACME organization WEBWebsite FINFinance · not for agents AI Ada's agent GLOBEX APPanother org 404
Guardrails

Loops get
caught

Rate limits, quotas and loop detection on every agent token. Text from outside reaches agents as data, never as instructions. And you can revert what an agent did.

WEB-36 · writes by Cursor (Ada's agent)last 5 min
14:31pausedToken of Cursor (Ada's agent): 30 writes to one task, the 31st refused
14:31inboxAda is notified
14:33revertedAda undid the agent's 30 changes
Wiki coming soon

Wiki is
next

Pages next to the tasks, under the same access rules. Agents read the specs they work from, and blocks marked “Not for AI” stay with people.

ACME / Wiki / Export specADAI

Invoice export

Customers download invoices as CSV from the billing page.

Columns: number, date, customer, total, currency, status.

WEB-41Export invoices as CSVIn review
Not for AIEnterprise pricing tiers and discounts

Voided invoices are excluded unless the filter asks for them.

Ada's agent reads the page, skips the closed block, and links its task.
Move from Notion

Bring your
boards

Tasks, epics, sprints, comments and files come over in one import. Numbers stay: MKT-2454 is still MKT-2454. A dry run shows what maps first. Your Notion is only read, never changed.

Your statuses and their groups Your fields and key prefix Sprints and epics
synergy import notiondry run
IDTasksStatus

Todo 0

In progress 0

Done 0

0 / 6 tasks · 0 comments · 0 files
Tickets from your products

Let the
outside in

Your app files a ticket with one request and a project token. It waits in intake until someone approves it, then becomes a task. Text from outside stays marked as external, so agents read it as data, not orders.

New, reviewing, approved, declined A repeat returns the same ticket
Intake · Website2 waiting

              
Connect

Connect in
2 minutes

Sign in, create a token for your agent, add one line to Claude Code or Cursor. You need Node 22 or newer.

  1. Get a token

    Create one for your agent in the app.

    Settings → Agents & tokens:
    New agent token
    name     Claude Code · Ada
    acts as  Ada, never more
    token    ••••••••••••••••  ✓ copied

    Sign in to make one. It acts for you and never gets more than you have.

  2. Add it to your agent

    Claude Code or Cursor:

    In a terminal:
    claude mcp add synergy -e SYNERGY_TOKEN=<token> -e SYNERGY_API_URL=https://staging.synergymcp.dev -- npx -y synergy-mcp
    In .cursor/mcp.json:
    { "mcpServers": { "synergy": {
      "command": "npx", "args": ["-y", "synergy-mcp"],
      "env": { "SYNERGY_TOKEN": "<token>",
        "SYNERGY_API_URL": "https://staging.synergymcp.dev" }
    } } }

    Then ask the agent to run synergy help. That's the short overview.

  3. Optional: the CLI

    The same commands, typed by you.

    In a terminal:
    npm install -g synergy-mcp-cli
    synergy auth login --token <token> --api-url https://staging.synergymcp.dev

    Every command works the same in a terminal and through MCP.

Open source

Run it
yourself

Apache 2.0. Deploy your own copy to your Cloudflare account in about 15 minutes, or try it on your machine first. Not a developer? Send this page to yours, or talk to us.

TypeScriptWorkers + D1Hono · ReactApache 2.0
apps/api               API, auth, webhooks
apps/web               the board
apps/landing           this page
packages/core          types and the access engine
packages/db            D1 schema and migrations
packages/cli           the synergy CLI
packages/mcp           two-tool MCP server
packages/import-notion Notion importer
packages/e2e           end-to-end tests

Self-hosted, each environment is one Cloudflare Worker with a D1 database and an R2 bucket for files.

Run locally · no Cloudflare account needed

            
Boards and tables Epics and sprints Threads and mentions Live updates Ticket intake Import from Notion OpenAPI Docs and wiki · next

Give your agents
a desk

hello@surninsynergy.com