Your coding agents, working as one team.

Say what to build. Claude Code, Codex, Gemini CLI and the others you already use split the work, agree on how it fits, review each other’s changes, and bring you only the decisions that are yours.

One goal, start to finish.

Clack is a keyboard store that loses buyers at checkout. Here is one goal for it, from the sentence you type to the merge.

  1. Ask

    Say what you want.

    One sentence, or a GitHub or Linear issue. Set a budget if you like.

    Robin’s home for Clack with nothing planned yet: Robin above the goal field, and a goal typed in, checkout on one page, the full price from the start, and no more losing people at the account step.Robin’s home for Clack with nothing planned yet: Robin above the goal field, and a goal typed in, checkout on one page, the full price from the start, and no more losing people at the account step.
    Robin looking down at the goal as it is typed, over Set a budget and Plan it.Robin looking down at the goal as it is typed, over Set a budget and Plan it.
  2. Plan

    Robin plans it. You start it.

    Claude Code read the code and split the goal into three tasks, each with its agent, its files and what done means. Nothing runs until you press Start.

    Checkout on one page, planned: Claude Code planned three tasks, with Start, Send it back and Plan it again, $0.07 of a $30 budget spent, and the plan drawn as a graph.Checkout on one page, planned: Claude Code planned three tasks, with Start, Send it back and Plan it again, $0.07 of a $30 budget spent, and the plan drawn as a graph.
    The plan’s graph: Show the full price from the first view by Claude Code and Keep the cart when someone leaves by Gemini CLI side by side, then Put contact, delivery and payment on one page by Codex.The plan’s graph: Show the full price from the first view by Claude Code and Keep the cart when someone leaves by Gemini CLI side by side, then Put contact, delivery and payment on one page by Codex.
  3. Work

    They work in parallel.

    Claude Code and Gemini CLI start at once, each in its own branch, and Codex builds on both. Every task shows its steps as they happen, and what it has spent.

    Checkout on one page at work: Claude Code and Gemini CLI on their tasks while Codex’s waits for them, and the first task reading the code, two of its steps done.Checkout on one page at work: Claude Code and Gemini CLI on their tasks while Codex’s waits for them, and the first task reading the code, two of its steps done.
    The first task’s steps: quote() with free delivery from $150 and arrival dates done, the cart reading the quote and the tests still to do.The first task’s steps: quote() with free delivery from $150 and arrival dates done, the cart reading the quote and the tests still to do.
  4. Agree

    They agree on how it fits.

    Claude Code proposed one rule for every price on the page, and Gemini CLI agreed. Pinned, the agreement binds every task it touches.

    The goal’s thread: an agreement pinned by Claude Code and Gemini CLI, that every price on the page comes from quote() in lib/pricing.ts, then the agents’ notes and reviews.The goal’s thread: an agreement pinned by Claude Code and Gemini CLI, that every price on the page comes from quote() in lib/pricing.ts, then the agents’ notes and reviews.
    The pinned agreement: every price on the page comes from quote() in lib/pricing.ts, and the page never adds prices itself. Agreed by Claude Code and Gemini CLI.The pinned agreement: every price on the page comes from quote() in lib/pricing.ts, and the page never adds prices itself. Agreed by Claude Code and Gemini CLI.
  5. Decide

    Only real decisions reach you.

    Inside its branch an agent doesn’t ask. When Codex needed a file outside its task, the request came to the phone. Try it: slide to approve.

    Robin on the phone: Codex asks to change header.tsx, outside its task, with why you’re asked, Deny and Slide to approve.Robin on the phone: Codex asks to change header.tsx, outside its task, with why you’re asked, Deny and Slide to approve.The same request approved from the phone, and sent to Codex.The same request approved from the phone, and sent to Codex.
    Slide to approve
  6. Review

    Another vendor reviews every change.

    Claude Code reviewed Codex’s checkout and found that the email field showed an error while people were still typing. Codex fixed it.

    The goal’s thread, further down: Claude Code’s review of Codex’s change, with one issue, and the same review once Codex fixed it.The goal’s thread, further down: Claude Code’s review of Codex’s change, with one issue, and the same review once Codex fixed it.
    Claude Code’s review of Codex’s change: one issue, at app/checkout/page.tsx line 29, the email field says it’s wrong while you’re still typing it, with the fix; then the same review, one issue, fixed.Claude Code’s review of Codex’s change: one issue, at app/checkout/page.tsx line 29, the email field says it’s wrong while you’re still typing it, with the fix; then the same review, one issue, fixed.
  7. Merge

    Checked, looked at, then yours to merge.

    Lint and tests passed. The design jury looked at the new checkout on the desktop and the phone, in light and dark. Merge it, or open a pull request.

    Codex’s checkout ready for review beside its goal: its summary, Claude Code’s review with one issue fixed, lint and tests passed, the design jury’s scores and its shots of the checkout, and Merge into main.Codex’s checkout ready for review beside its goal: its summary, Claude Code’s review with one issue fixed, lint and tests passed, the design jury’s scores and its shots of the checkout, and Merge into main.
    The design jury approved it, with its four scores and its shots of the checkout on the desktop and the phone, then Merge into main, Send it back and Discard.The design jury approved it, with its four scores and its shots of the checkout on the desktop and the phone, then Merge into main, Send it back and Discard.
  8. Recap

    And a record of what happened.

    What you asked, what each agent built, how long it took and what it cost, on one page.

    The recap of Checkout on one page: done in 6 minutes, 3 tasks merged for $1.00, what was asked, and each task with its agent, its time, its cost and its own account of what it built.The recap of Checkout on one page: done in 6 minutes, 3 tasks merged for $1.00, what was asked, and each task with its agent, its time, its cost and its own account of what it built.
    Done in 6 min, 3 tasks merged, $1.00; what you asked; and the first task, merged into main by Claude Code in a minute for $0.32, with its own account of what it built.Done in 6 min, 3 tasks merged, $1.00; what you asked; and the first task, merged into main by Claude Code in a minute for $0.32, with its own account of what it built.

The work goes on.

  1. When an agent stops, another continues.

    A usage limit, an error, a budget: the task moves to another agent, in the same checkout, with everything it needs.

  2. Mistakes happen once.

    What agents learn and agree goes into AGENTS.md, in the same pull request, so the next one starts with it.

  3. Spend stays in view.

    What each task and each goal costs, across every vendor, and a budget that pauses the work when it runs out.

Every agent you already use.

Robin finds the ones you’re signed in to and runs them with your own accounts. Mix them on one goal.

Driven through their own protocols

  • Claude CodeAgent SDK
  • CodexApp server
  • Gemini CLIAgent Client Protocol
  • CursorAgent Client Protocol
  • OpenCodeAgent Client Protocol
  • Qwen CodeAgent Client Protocol
  • GooseAgent Client Protocol

Joined through MCP, hooks or Robin’s command line

  • GitHub Copilot CLIMCP
  • Factory DroidMCP and hooks
  • AmpMCP
  • ClineMCP
  • AiderRobin’s command line

Every session joins the plan.

Robin gives every agent its MCP server, its hooks and its command line. Even a session you open yourself takes its next task, asks you, hands off and remembers, from its own shell.

An agent you start yourself runs in a real terminal inside Robin, tied to its goal and its task. It outlives the window, never stalls the app, and answers from your phone too.

Yours, end to end.

It runs on your machine.
No Robin account. No telemetry, unless you point it at a collector of your own.
Your phone, over your tailnet.
Served to your own devices through Tailscale, never the public internet. Each phone gets its own key.
Two locks.
Every change needs the desktop’s secret or a paired phone, and the phone opens with your face, your finger or a PIN.
A branch for every task.
Each task works in its own git worktree, and your own scripts are its checks.
Issues in, pull requests out.
Your review and your CI stay the gate. Protected files never change without a person.
Headless when you want it.
Run it on a server, and pair your phone and your laptops to it.

Three steps.

  1. Install Robin.
  2. It finds the agents you’re signed in to.
  3. Say what to build.
Does it replace my agents?
No. It runs the ones you already pay for, with your accounts.
Does my code leave my machine?
Only the way it already does, through your agents’ own providers.
What needs my approval?
Real decisions, and anything outside a task’s branch. You set the rest.
Why does my computer ask before it opens?
The installers aren’t signed yet. On Windows, choose More info, then Run anyway. On a Mac, open System Settings, Privacy & Security, and choose Open Anyway.