Your agents write the code.
You need a cockpit.

Chat, terminal, git, and approvals in one native window.
Engine-agnostic, open-source, built for the agent era.

Talk to any agent.

Native chat for Codex and Claude through their SDKs. Built-in terminal harness for CLI agents like Gemini CLI, Factory Droid, OpenCode, and more. Pick the right engine for the task and go.

my-project / Review auth middleware
Review the auth middleware for security issues
Claude
HIGH Token expiry not validated on decode
src/middleware/auth.rs:47
- let claims = decode(token);
+ let claims = decode(token)
+ .validate_exp(true)?;
Ask for follow-up changes
Context
35%
·
5h left
72%
·
refactor/auth-jwt

Git without the alt-tab.

Review diffs, stage changes, and commit directly from the agent's output. Agents branch, stash, and push. You approve with full context.

refactor/auth-jwt ↑3
Unstaged (2)
src/middleware/auth.rs M
src/config.rs M
Staged (1)
Cargo.toml M
refactor: migrate auth to JWT tokens
Commit

Every repo, one workspace.

Open any folder, auto-detect nested git repos. Manage monorepos and multi-service architectures with context-aware chat threads per repo.

Projects
checkout-api main
Optimize search query
Add rate limiting
storefront redesign/cart
shared-types main

Race agents side by side.

Launch multiple CLI agents into split panes. Broadcast the same prompt to all of them at once. Optionally give each agent its own git worktree so they never collide.

Multi-launch
Claude Code
2
Gemini CLI
1
Broadcast input Type once, send to all panes
Git worktrees Each agent gets its own branch

Your workspace, ready on open.

Configure startup presets: default view, terminal groups, agent assignments, split layouts, and broadcast mode. Open a project and everything is already set up.

Startup preset Configure what happens when you open this workspace
Default view
Chat Split Terminal Editor
Claude Code
2 panes broadcast
claude-code ./backend
claude-code ./frontend
Gemini CLI
1 pane
gemini-cli .

IDEs were designed for writing code. But you barely write code anymore. You orchestrate, review, and approve. Panes is the cockpit for that workflow.

Add caching to the search endpoint
I'll use Redis with a 5-minute TTL and cache invalidation on writes.
orchestrate
src/routes/search.rs
22- let results = db.query(q);
22+ let results = cache.get_or(q, ||
23+ db.query(q), ttl: 300);
24 Ok(Json(results))
review
claude wants to run:
npm run deploy --prod
Allow
Deny
approve

Ready to start?

Download, open a folder, start chatting.
Free and open-source.