Unified Orchestration
Five engines.
One workspace.
Choose Chat, Claude Code, Codex, OpenCode or Pi for the task, and keep the conversation when you switch agents.
- CodexFixed the API bug and wrote tests2m 34s
- Claude CodeSame fix, cleaner diff3m 12s
- PiChecking...1m 45s
Your choice of agent
One interface for five engines. Switch without retraining.
Native lifecycle drivers
OpenCode, Claude Code, Codex, and Pi use canonical session events. Restart, resume, steer any engine through the same durable command lane. Chat answers from your knowledge, wiki and memory with no computer underneath.
Real-time capability sync
Each engine advertises what it can do right now. Desktop, approval requests, knowledge search: only show what actually works.
Provider-neutral tool surface
Every engine accesses the same tools: knowledge search, GitHub PRs, computer control, artifacts, approvals. No engine-specific plumbing.
SEE IT WORK
One agent. Real tasks.
Our widget service returns 500 on DELETE /widgets/:id when the widget has 3 or more linked components. Fix it.
Clone and search
Cloned repo, found DELETE handler in handlers/widgets.ts. Searched error logs. Every 500 has 'permission check failed' after component count check.
Reproduce locally
Set up test DB with 3 linked components, sent DELETE request, confirmed 500. Traced the stack: permission middleware runs after cascade check, causing the 500.
Fix the order
Moved permission check before cascade. Added test case: DELETE with 3+ components now returns 204. Old test suite still green.
Open PR
Created PR #487: 'Fix widget delete with linked components'. Added test case to prevent regression.
Questions, answered.
Which engines can I run?
Chat, OpenCode, Claude Code, Codex, and Pi today, with more adapters on the way. Each one runs in the same thread through the same durable command lane. Chat is the one with no computer: it answers from context.
Can I compare engine outputs on the same task?
Yes. Reply with different engines and watch both run. You'll see exact timing, token usage, and approach differences.
If one engine fails, can I switch mid-run?
Not mid-run, but yes in the next reply. The thread keeps all history. You can see what the first engine tried and have the second engine pick up from there.
Do all engines have the same tool access?
Capability-wise, yes. Each engine advertises only what it actually supports (e.g., not every engine offers native desktop control). The UI shows honest capabilities per engine.
Start with one task.
See what you can hand off.
Explore a completed run, or join the early-access list to hear about getting your team started.