Isolation by default
Every agent launches into its own git worktree, forked from your repo and kept outside it. Agents never step on each other's changes, or on yours. The branch carries the agent's ID.
the multi-agent coding workspace
Taime runs the real Claude Code, Codex, Gemini, and Grok CLIs as agents in your repo, each in its own git worktree, every turn and diff attributed, nothing merged without your review.
> Refactor the auth middleware to use the new session API
✻ Editing src/auth/middleware.ts...
12 files touched · turn 7
> Write property tests for the config parser
✓ Turn 4 complete
+182 −61 · awaiting review
> Migrate CI config to the new runner
? Needs your answer: choose a deployment target
> Hunt the flaky test in worker_pool
✻ Running cargo test --workspace...
3 files touched · turn 2
Drives the official CLI binaries, never raw provider APIs, so your subscriptions and every native capability stay intact.
Parallel agents are only useful if you can trust what they did. In Taime, that trust isn't a habit. It's baked into the architecture.
Every agent launches into its own git worktree, forked from your repo and kept outside it. Agents never step on each other's changes, or on yours. The branch carries the agent's ID.
Work is recorded as turns: bounded spans with files touched and diffs, keyed to a durable Agent ID that outlives the process. Provenance persists after the agent exits.
agent_idclaude_code-8ccec507
turn7 · completed
filessrc/auth/middleware.ts
src/auth/session.ts
diff+182 −61
Per-file, per-hunk diffs, attributed to the agent that produced them. Merge, revert, or mark reviewed per agent or rolled up per task. The gate is the point.
src/auth/middleware.ts
- const token = req.headers["x-auth"];
+ const session = await sessions.resolve(req);
When two agents write to the same path, Taime surfaces it as contention: a derived view over attribution, not a guess. You see the conflict before it reaches review.
pathsrc/auth/session.ts
agentsclaude_code-8cce…
grok_cli-77a1…
status⚠ contention · 2 writers
A detached session daemon owns the terminals, the attribution record, and the schedule clock. Quit the app mid-run: agents keep working. Reopen it: reattach to an exact repaint of the live terminal.
Schedules fire agents on cron with zero windows open. The daemon is the substrate, the app is just a view.
Taime is built on a small, strict vocabulary, the same canonical lexicon the codebase reconciles against.
DAEMON the persistent substrate ├─ LIBRARY global, reusable definitions │ ├─ Profiles default · orchestrator · bug-fixer │ ├─ Workflows nodes · edges · loops │ └─ Schedules cron → fire an agent, unattended └─ WORKSPACE your project root ├─ Task intent · open → in_review → done ├─ Agent Profile × Provider │ ├─ AGENT ID durable identity · the pivot │ │ ├─ Worktree isolated git checkout │ │ ├─ Turns bounded spans of work │ │ └─ Diffs persists after exit │ └─ Runtime ephemeral PTY · replaceable └─ Review merge · revert · mark reviewed
Native on macOS. One app, one daemon, no other runtime.
works with the CLIs you already have · Claude Code · Codex · Gemini CLI · Grok CLI