Ten agents.
Ten branches.
One afternoon.
Dispatch AI coding agents in parallel, each in its own worktree.
Review the diffs, merge the wins, toss the rest.
Works with Claude Code, Codex, and Gemini · Every change isolated in its own git worktree · Free, open source, no extra platform fee
| Multiple agents in parallel | Focused view on a single task |
|---|---|
![]() |
![]() |
| Diff review with inline comments | AI Arena — race agents head-to-head |
![]() |
![]() |
- Use the AI coding tools you already trust — Claude Code, Codex CLI, Gemini CLI, and Copilot CLI — all from one interface.
- Free and open source — no extra subscription required. MIT licensed.
- Keep every change isolated and reviewable — each task gets its own git branch and worktree automatically.
- Run agents in parallel, not in sequence — five agents on five features at the same time, zero conflicts.
- See every session in one place — switch context without losing momentum.
- Control everything keyboard-first — every action has a shortcut, mouse optional.
- Monitor progress from your phone — scan a QR code, watch agents work over Wi-Fi or Tailscale.
- Ask about code with any LLM — the inline code Q&A feature supports Claude Code (default) or MiniMax M2.7 (204K context) — configurable in Settings.
How does it compare?
| Approach | What's missing |
|---|---|
| Multiple terminal windows / tmux | No GUI, no automatic git isolation — you manage worktrees, branches, and merges by hand |
| VS Code extensions (Kilo Code, Roo Code, etc.) | Tied to VS Code; no true parallel worktree isolation between agents |
| Running agents sequentially | One task at a time — blocks your workflow while each agent finishes |
When you create a task, Parallel Code:
- Creates a new git branch from your main branch
- Sets up a git worktree so the agent works in a separate directory
- Symlinks
node_modulesand other gitignored directories into the worktree - Spawns the AI agent in that worktree
When you're happy with the result, merge the branch back to main from the sidebar.
More features
- Tiled panel layout with drag-to-reorder
- Focus mode — single-task layout with a clean two-column view on wide screens (
Ctrl+Shift+F) - Built-in diff viewer with inline review comments and per-commit navigation
- Guided change tour — click Generate tour of changes at the bottom right of a task's Changed Files panel to generate in the background while you work. Automatic scope includes the whole feature branch against its configured or detected base, including uncommitted work; on
main,master, anddevelop, it includes only uncommitted changes. Choose Current diff to explicitly use the commit selector (All, Uncommitted, or a single commit). Uncaptured context stays omitted when reading a captured tour. Hover or focus the button for an explanation and the configured provider/model. The button shows a spinner and progress, then a green checkmark and Start tour when ready. Click Start tour to open the diff captured for the tour; it never opens automatically. Completed tours remain available when you close and reopen the tour; clicking the loading button cancels generation. Uses your configured code Q&A provider, aiming for 4–6 concise stops in one request with a dedicated 500,000-character prompt budget; inline Q&A keeps its 50,000-character limit. This is an app guard, not an exact token limit—provider context limits still apply. Larger diffs use compact excerpts and a five-minute timeout per part. Claude tour prompts are piped through stdin to avoid command-line size limits. Verbose logs include request sizes, time to first output, and total request duration, without code or response contents. Tours describe the supplied diff and do not verify test execution. - Steps tracking panel — engineering-manager-style timeline of agent progress (writes to
.claude/steps.json) - Notes panel per task — jot ideas, then send the notes straight to the agent as a prompt
- Canvas per task — a Markdown file from the worktree rendered live as the agent writes it; edit it in place, or select a passage and send it to the agent with your question
- Browser preview in the canvas — run a local app in the task shell, open + → Browser, and pick elements to reference in your prompt (usage and limits)
- PR CI status watcher — desktop notification when GitHub checks settle
- Shell terminals per task, scoped to the worktree
- Direct mode for working on the main branch without isolation, plus support for folders without a git repo
- Existing worktree import — bring already-created worktrees into Parallel Code
- Sandboxing with project-specific Dockerfiles — drop a
.parallel-code/Dockerfileinto the project and tasks run inside it - Coverage radar — per-file test-coverage badges in the Changed Files panel
- Configurable keyboard shortcuts with per-agent presets
- 10 themes — Islands Dark, Minimal, Graphite, Midnight, Classic, Indigo, Ember, Glacier, Zenburnesque, Workbench
- State persists across restarts
- macOS and Linux
-
Download the latest release for your platform from the releases page:
- macOS —
.dmg(universal) - Linux —
.AppImageor.deb
- macOS —
-
Install at least one AI coding CLI: Claude Code, Codex CLI, Gemini CLI, Antigravity CLI, or Copilot CLI
-
Open Parallel Code, point it at a git repo, and start dispatching tasks.
Antigravity CLI: run natively, not in Docker isolation
Antigravity (agy) signs in interactively and caches credentials in your OS keyring (Keychain/libsecret). The keyring cannot be reached from inside a Linux container — it needs a secret-service daemon the agent container doesn't run — and agy has no API-key fallback, so Docker-isolated Antigravity tasks cannot authenticate. Run Antigravity as a native (non-Docker) task.
The bundled image still ships the agy binary, and ~/.gemini/antigravity-cli (settings/plugins) is shared when "Share agent auth" is enabled, so Docker support is forward-compatible if a file-based or API-key auth path appears later.
Build from source
git clone https://github.com/johannesjo/parallel-code.git
cd parallel-code
npm install
npm run devRequires Node.js v18+.
Phone access uses port 8777 in development (npm run dev) and 7777 in the installed app, so both can run together. Run npm run build:remote after changing the mobile UI, then use Connect Phone in the development app to get its connection link or QR code.
Keyboard Shortcuts
Ctrl = Cmd on macOS.
| Shortcut | Action |
|---|---|
| Tasks | |
Ctrl+N |
New task |
Ctrl+Shift+A |
New task (alternative) |
Ctrl+Enter |
Send prompt |
Ctrl+Shift+M |
Merge task to main |
Ctrl+Shift+P |
Push to remote |
Ctrl+W |
Close focused panel or file |
Ctrl+Shift+W |
Close active task |
| Navigation | |
Alt+Arrows |
Focus pane/task in arrow direction |
Alt+Shift+Left/Right |
Move task (macOS: Ctrl+Shift) |
Ctrl+B |
Toggle sidebar |
Ctrl+Shift+F |
Toggle focus mode |
| Terminals | |
Ctrl+Shift+T |
New shell terminal |
Ctrl+Shift+D |
New standalone terminal |
| App | |
Ctrl+, |
Open settings |
Ctrl+/ or F1 |
Show all shortcuts |
Ctrl+0 |
Reset zoom |
Ctrl+Scroll |
Adjust zoom |
Escape |
Close dialog |
If Parallel Code saves you time, consider giving it a star on GitHub. It helps others find the project.
MIT




