The tool built for agent‑driven development.

You already run Claude Code: one pane, one session, one agent you babysit. Tempo is the environment for the workflow itself: agents in parallel worktrees, plan gates, browser QA in your app, and merges you approve.

A shared backlog for your team. Tasks run on the assignee's own machine.

Tempo is an agent orchestration system for Claude Code. It takes each task from a line in your backlog to merged code on main. You make the calls; Tempo runs the agents.

The workflow you've been improvising, built in.

Scoped, planned, built, tested, reviewed, merged. You're asked at exactly three of those.

StepThe agentYou
ScopeReads the repo and asks what you actually mean.Answer 2-3 questions.
PlanWrites the plan: files, steps, tests.Approve it, or redirect.
BuildWorks in its own git worktree. Main is never touched.Nothing.
QADrives your app in a real browser and checks what it built.Nothing.
ReviewPresents the diff and the QA run.Approve.
MergeTempo holds the merge lock, resolves conflicts, merges, cleans up.Ship.

your decision

Every agent in its lane. Every human in the loop. Aligned at every step.

Three stops is the default, not a rule. Dial any task from ask-me-everything to fully unattended; hit your usage limit overnight and Tempo holds the queue, resuming the moment your window resets.

Today, the orchestrator is you.

In Tempo, that workflow is the product. The same agent, on your same subscription, built for running many at once.

Claude Code in a terminalClaude Code in Tempo
AttentionOne pane you babysit. Questions sit unseen.Questions surface and block. Answer in the app.
ParallelismEach new agent: a pane, a hand-made worktree.A worktree per task, provisioned for you.
StateWho is on what? In your head.On the board: status, branch, diff, replay.
QAYou click through it yourself.The agent drives a real browser.
MergingYou are the merge queue.Tempo merges. Main stays green.

Your services, wired in.

Connect a service once. Every agent gets the keys, the MCP tools, and a playbook for it.

Keys stay in your Mac's keychain. Agents receive scoped, per-task tokens and never see the originals. Connected services show up in the agent's toolbox automatically; nothing to configure per task.

Playbooks: one-click tasks that already know your accounts

  • GitHub
  • Supabase
  • Vercel
  • Stripe
  • Sentry
  • PostHog
  • Clerk
  • Resend
  • Neon
  • Linear
  • Claude Code
  • MMeetings

Plus Linear import, GitHub pull-request mode, and meeting bots for Meet, Zoom, and Teams.

It isn't done until it works in your app.

Your agents take over QA.

Before anything reaches review, an agent opens the app it just changed in a real browser and clicks through the feature like a person would: it reads the console and your server logs, screenshots each step, and attaches the run to the diff. If something breaks, the task goes back to the builder; you never review a feature that only passed its unit tests. Works on web apps through a local dev server and on Electron apps through the debugging port.

Web appsElectron appsYour dev server, started for you
localhost:5173/billing · worktree task-1384
Team · annual
MonthlyAnnual
6 seats · 1 free with annual$1,440 / yr
QA run · 2 of 2 passed
✓Opened /billing as a team owner
✓Switched to Annual · price updated
!Free seat not shown in the seat countscreenshot · console: 0 errors
↺Sent back to the builder · fixed in a3f19c2
✓Re-ran · seat count reads 6 seats · 1 free
✓Checkout opens with coupon ANNUAL-SEAT applied3 screenshots attached to review

One backlog. Everyone’s agents.

Create a company, invite your team, share the board.

Every task is assigned to a person, and the work runs on that person’s machine: their Claude Code subscription, their checkout of the repo, their worktree. You watch the whole team’s tasks move on one board; code never leaves the laptops it already lives on. No shared cloud runner, no pooled token bill.

Assignments sync. Execution stays local.

Ledger · shared backlog3 people · 2 agents working
A
Stripe webhooks for refundsAntoine · on Antoine’s Mac
Building
T
Onboarding empty statesTheo · on Theo’s Mac
QA
A
Rate-limit the public APIAdrien · on Adrien’s Mac
Question for Adrien
A
Fix the flaky billing testAntoine · on Antoine’s Mac
Merged

Built for engineers already living in Claude Code.

Solo devs and small product teams who already ship with agents, and have felt the ceiling of one session, one pane, and themselves as the scheduler.

Which agents does it run?

Claude Code, on your own subscription. One agent, deeply integrated, instead of twenty shallowly: Tempo knows its tools, its limits, and how to resume it when it stalls.

Where does my code run?

On your Mac. Tempo is a desktop app; agents work in worktrees inside your own repos. Task text never leaves your machine.

Does it touch my main branch?

Never, until you approve the merge. Every task gets its own worktree and branch; Tempo performs the merge itself, holds a per-project lock, and cleans up afterwards.

What happens when an agent gets stuck?

It asks. Questions block the task until you answer, right in the app. No silent guessing and no "blocked" label you discover hours later.

Teams?

Yes. Create a company, invite teammates, share a project. Everyone sees the same backlog; tasks are assigned to a person and the agent works on their machine, in their worktree.

Platform and price?

macOS. Private beta; you bring your Claude Code subscription, Tempo doesn't resell tokens.

Claude Code hit my usage limit. Can tasks resume automatically when the window resets?

Yes. Tempo detects the usage limit, holds the queue, and resumes every task automatically the moment your window resets, including overnight. The app shows your 5-hour and weekly reset times; you come back to merged tasks, not a stalled terminal.

How do I run several Claude Code agents in parallel on one repo without them conflicting?

Give each task its own git worktree and branch. That is exactly what Tempo does automatically. Agents never share a checkout, a per-project merge lock serializes landings, and conflicts are resolved before anything reaches main.

Can agents keep shipping while I sleep?

Set a task to auto-run and it goes from scope to merged unattended. A real blocking question or a failed QA run pauses it; everything else lands, and you read the merged diffs in the morning.

How do I give an agent my Stripe or Supabase keys safely?

Don't paste keys into prompts. Tempo keeps them in your Mac's keychain and hands each agent a scoped, per-task token. Agents never see the originals, and every use is audited.

Your first merged task this week.

Private beta, opening gradually. Join the waitlist and we'll send a download link as we make room.