Launching soon on Product Hunt — read the build trail
Multi-vendor · runs while you sleep

Ship the backlog.While you sleep.

Delegate a task from the dashboard, Telegram, or Linear — an isolated agent builds it, opens the PR, and proves it works before you ever look.

One operator's fleet 13 PRs merged today every claim re-verified 92/95 evidence coverage
01|How It Works

Delegate. Isolate. Ship.

Three stages do the job. A quiet fourth proves it — so you can merge without re-reading every line.

1
Delegate

Trigger a dispatch from the dashboard, Telegram, or a Linear issue. The pool routes it by outcome history.

$ fn8 dispatch …
2
Isolate

Each agent runs in its own worktree. No shared state, no blast radius, a hard cost cap per dispatch.

dispatch/<vendor>/MSG-…
3
Pull Request

The agent builds it and opens the PR — branch, diff, and tests attached. The ticket moves on its own.

PR opened · awaiting review
4 · quietly
Verify

Before you ever look, the substrate re-runs every claim — so you can merge without re-reading every line.

✓ reproduced · anchored
02|Talk From Anywhere

Your fleet answers where you already are.

Fire a dispatch from whatever is already open — Telegram on the train, the Linear issue itself, the dashboard, the CLI. Same pipeline underneath; the PR is waiting when you get back.

TelegramFN8 Cockpit · Mini App
/vibe Add retry to the ingest
On it.routed → vibe · isolated worktreeclaim received · re-verifying…✓ verified-ok
Dashboardconductor
ChatDiffPlan
Conductor · plan
cursor score 1.02
alternatives: codex · claude — passed over, on the record
● nothing dispatched until you approve
Linearauto-comment
FN8-605Add retry to the ingest workerIn Progress
8FN8 · dispatch

Dispatched to claude — worktree dispatch/claude/MSG-076. Claim re-verified by the substrate. ✓ verified · PR #207

CLIfn8
$ fn8 dispatch --to claude --linear-id FN8-605 \
    "Add retry to the ingest worker"
→ MSG-076 · worktree dispatch/claude/MSG-076
→ claim received · re-verifying…
✓ verified · PR #207 opened
03|What It Ships

The full background-agent kit.

Everything the category promises — isolation, multi-surface triggers, a routed vendor pool — with governance built into the floor, not bolted on.

environments
Isolated per task

A fresh worktree for every dispatch. Agents can't step on each other — or on you.

dispatch/claude/MSG-076
triggers
Any surface

A GitHub PR comment, Slack, Linear, Telegram, the dashboard, or the CLI — work starts where the work shows up.

/vibe · $ fn8 dispatch
routing
7-vendor pool

claude · codex · cursor · gemini · bob · pool · vibe — each task routed by outcome history, not preference.

routed → cursor · score 1.02
finops
Hard cost caps

Every dispatch carries a ceiling you set. Spend is metered in real time; the run halts at the cap.

cost under cap
04|The Part That Lets You Let Go

Merge without babysitting.

Autonomy is only useful if you don't have to re-read every line. Every claim is re-run on an independent substrate — refusals on the record — so the PR you merge carries proof, not promises.

claim → independent re-run DSP-2208 · codex
The agent's claim
[SHIPPED] scripts/lib/backoff.sh — jittered retry helper
[SHIPPED] 18 deploy tests green
[SHIPPED] shellcheck clean
The independent re-run
artifact on disk — 31 lines, matches claim
claim refused — an assertion is not evidence. re-run found 1 failing
returned to agent · corrected · re-run green
commands replayed — exit 0 · 18 passed · 0 issues
sha256 …a1f3 · block 2208 · anchored hash-chained · tamper-evident · exportable
05|Automate It

The same gate, as an API.

Propose, approve, dispatch — programmatically.

The conductor proposes a routed plan and stops. Nothing spends a token until your service approves it. The same human-gate, machine-shaped.

POST /api/chat/conduct — propose a route
POST /api/chat/conduct/approve — release it
# 1 — describe the task
POST /api/chat/conduct
{"message": "add a circuit breaker to the payments client"}

# ← the routed plan, nothing dispatched yet
{"plan": {"vendor": "cursor", "score": 1.02,
         "alternatives": ["codex", "claude"]}}

# 2 — release it
POST /api/chat/conduct/approve
{"dispatch": "MSG-087", "status": "dispatched"}
06|FAQ

Asked, answered.

How much of my backlog can it actually ship?+
Today's honest number: one operator's fleet merged 13 PRs in a day, with 92 of 95 dispatches carrying an independent evidence record. Anything an isolated agent can build and prove — scoped features, fixes, migrations, scripts — is fair game; throughput scales with the dispatches you approve.
Can I trust it to merge without me?+
That's what the verifier is for. Every claim an agent makes is re-run on an independent substrate — artifacts re-checked on disk, its verification commands replayed, exit codes recorded. Claims that don't reproduce are refused, on the record, and never merge. You review PRs that already carry proof, not promises.
Which coding agents does it run?+
Seven today — claude · codex · cursor · gemini · bob · pool · vibe — routed per dispatch by outcome history, not preference. The pool scores the fleet against what actually merged before.
Where does it run?+
On your infrastructure, in isolated worktrees — one per dispatch, no shared state. A hosted version is on the roadmap.
What does it cost?+
Every dispatch carries a hard cost cap you set — spend is metered against it in real time and the run halts at the ceiling. For access and pricing, request access.
07|Get Started

Ship the backlog. While you sleep.

An isolated agent builds it, proves it, and opens the PR — every claim anchored, cost under cap.