Parallel Throughput
Agents work cards side by side, each isolated on its own branch and worktree.
A local-first project tracker for you and your agents.
Spec0 takes a spec from first draft to landed merge — each one a contract, every change reviewed, every merge on the record. Entirely on your machine. Built for the agents you already run.
You're on the list — your invite will land by email.
No account · Your data never leaves your machine
Less coordinating.
More
shipping.
Agents work cards side by side, each isolated on its own branch and worktree.
Progress, review threads, checks, and commits stay on the card — the whole story, on the record.
Local-first SQLite on your machine, an open MCP protocol, and the agents you already run.
Three capabilities.
One
loop.
If it speaks MCP, it can claim cards. Bring the agents you already run.
One SQLite file per project, on your machine. No cloud, no account.
Agents run in your terminal, with your logins. Spec0 plans, tracks, and verifies.
Follow one card.
Spec to landed
merge.
Write requirements, design, and tasks — the card is the contract.
Claude or Codex picks it up over MCP, on an isolated branch.
Threads on the diff, checks green, revisions if it needs them.
You or the agent merge; Spec0 verifies it read-only and records it.
Loop engineering, built in.
01 · plan
Requirements — tokens column on agent runs
The Insights view shows agent activity but not cost. Add a tokens column and a cumulative rollup per provider to the activity table.
Acceptance
Tokens column on the activity table
Hover shows cost per provider
WHEN a provider reports no usage, THE SYSTEM SHALL show —
```ts
const cost = usage.tokens * rate['claude-code'];
```
02 · track
03 · delegate
Record audio inline in a note; the agent stream-transcribes it.
Transcript lands as a draft block keyed to the audio row.
04 · review
Audio capture + transcribe
Claude wants to merge 2 commits into main from claude/c_01LMWR9AUD10CPT
Summary
Wires the capture pipeline end to end: a MediaRecorder wrapper arms the
selected input, falls back to the default device on unplug, and streams 10s windows
into the Whisper pass.
Root cause of the stalled recordings: the device-change listener never re-armed after an unplug — capture now survives the swap and the waveform stays live.
Scope: src/audio + tests. No schema or IPC changes.
Activity
Claude claimed this · 2h ago
Claude submitted for review · 1h ago
you started a review · 40m ago
Re-arm reuses the session clock — added the monotonic assertion to the unplug spec.
2 commits
Extends capture.spec.ts with a fake MediaDevices that yanks the input mid-recording — capture must fall back to the default device and keep the clock monotonic.
1 linked task
Prove capture survives a device unplug
+38 −0 · 1 file
MediaRecorder wrapper with a device-change listener; on unplug it re-arms on the default input. The Whisper pass batches 10s windows off the live stream.
1 linked task
Capture audio with a device fallback
+81 −6 · 2 files
lint Lint required 12.0s
Output
eslint src/audio — 0 errors, 0 warnings across the 3 changed files. Scoped to this card's diff; the repo-wide baseline is unchanged. Device-fallback branch covered by the new unplug spec; no unused exports introduced.
Prove capture survives a device unplug required
Required proof
The failing spec output (capture stalling when the input disappears) or reproduction notes — then the same spec passing against the fixed pipeline.
Evidence
Reproduced via a throwaway spec driving the real pipeline with a fake MediaDevices:
Transcribe a 30s clip end to end
Required proof
The transcript produced from a real 30-second capture, with the pipeline timing.
Evidence
Ran the pipeline against the bundled fixture clip: 30.4s in, 47 words out in 2.1s — the transcript matches the reference text, punctuation pass applied.
Waveform stays live while recording
Required proof
Screenshots of the live waveform while recording — including one taken straight after a device swap.
Evidence
Run the project gate for the change required
Required proof
The check bundle for the changed area — every required check green on this card's diff.
Evidence
lint · format · typecheck · unit green on the card's diff; stylelint and e2e-targeted skipped as not applicable — the full run is on the Checks tab.
05 · ship
Yours, actually.
Your code and your data stay on your machine. Spec0 plans and tracks — it never runs your agents and never holds your keys.
no accountno cloudlocal sqliteloopback-only mcp
Straight answers.
works with every agent that speaks MCP
Claude CodeCodexCursorDevin DesktopOpenCode
you 44m ago
Does re-arm keep the same time base? The waveform clock jumped in QA.