ADE for working with a fleet of parallel agents
Go to file
Neil ae77156ab2
feat(worktree): reuse an existing branch when creating a worktree (#5181) (#5781)
* feat(worktree): reuse an existing branch when creating a worktree (#5181)

Adds an explicit "Reuse this branch" checkbox to the new-worktree composer.
When an existing local branch is selected in the smart name field, the
checkbox (default on) checks that branch out instead of creating a new
branch from it — and the choice now survives renaming the worktree folder.

Previously, reusing an existing branch only worked implicitly: it required
keeping the auto-filled worktree name equal to the branch, and editing the
name silently reverted to "create a new branch". There was no discoverable,
durable control — the gap the issue reports.

The fix is renderer-only: picking an existing local branch already sets
baseBranch === branchNameOverride, so the existing backend reuse path
(`git worktree add <path> <branch>`, preserveBranchOnDelete) checks the
branch out correctly across local/SSH/runtime. The checkbox pins that
override via the existing branchNameOverridePreservesNameEdits flag so the
worktree folder can be named independently while the branch is reused;
unchecking creates a fresh branch from the selected ref as base.

- New pure helper resolveComposerBranchReuse (local-vs-remote + default).
- Checkbox hidden for remote-only refs and non-branch sources.
- Tests: pure helper, card render/toggle, and a backend integration test
  proving a renamed folder still reuses the exact branch.

* fix(worktree): refine reuse-branch checkbox (placement, label, eligibility)

Address review feedback on the "Reuse branch" control:

- Move the checkbox directly under the branch (smart) selection instead of the
  Advanced "Name" field — the worktree folder name can legitimately differ from
  the branch, so the choice belongs next to the branch pick and is now visible
  without expanding Advanced.
- Rename the label "Reuse this branch" -> "Reuse branch".
- Make eligibility dynamic: reuse is impossible when the branch is already
  checked out in another worktree (git allows a branch in only one worktree), so
  the checkbox is now hidden in that case (it was already hidden for remote-only
  refs). When a busy branch is picked, the override is no longer pinned to it, so
  creation cleanly falls back to a new branch from that ref as base instead of a
  silently-suffixed branch.

Adds isBranchCheckedOutInWorktrees (pure, unit-tested) and threads the repo's
worktree branch list from the store into the selection logic.

* feat(worktree): animate the reuse-branch row's show/hide

Keep the "Reuse branch" row mounted and collapse it with a grid-rows
transition (same pattern as the Advanced drawer) instead of conditionally
rendering it, so the create-worktree dialog grows and shrinks smoothly when the
option appears/disappears as the selected branch changes. The checkbox is taken
out of the tab order while collapsed.

* refactor(worktree): address review nits on reuse-branch control

From a multi-dimensional review of the branch (all findings low severity):

- Reset reuse state (reuseEligibleBranch, reuseSelectedBranch,
  branchNameOverridePreservesNameEdits) on repo and project switches, matching
  the other reset paths — avoids carrying stale branch-scoped state.
- Disable the reuse checkbox while collapsed so no focusable control lives
  inside the aria-hidden row.
- Extract the busy-branch override decision into a pure resolveComposerReuseOverride
  helper and unit-test it (busy local branch drops the override; remote-only ref
  keeps it) — pins the "no suffixed-branch collision" guarantee.
- Note the worktreesByRepo visibility limitation near the busy-branch check
  (a branch busy only in a hidden external worktree is caught by the backend).
- Strengthen tests: reuse-checkbox toggle in both directions, empty worktree
  list case.
2026-06-19 02:47:05 -07:00
.github Narrow computer-use e2e trigger (#5685) 2026-06-17 23:27:26 -07:00
.husky
.visual-evidence/sidebar-nav style(settings): polish sidebar nav hover and active states (#5458) 2026-06-15 21:15:26 -07:00
Casks release: add Homebrew RC cask channel (#3462) 2026-05-29 22:34:44 -07:00
config Support browser panes on headless remote Orca servers (#5412) 2026-06-18 22:50:11 -07:00
docs Add Cmd-J tab session search (#5775) 2026-06-19 00:27:05 -07:00
mobile chore(deps): resolve Dependabot security alerts (no overrides) (#5795) 2026-06-19 01:57:47 -07:00
native Harden computer use runtime and CLI (#4705) 2026-06-07 17:49:01 -07:00
notes perf(windows): fix 60s startup ACL walk and OpenCode streaming freeze, with benchmark harnesses (#5124) 2026-06-10 16:41:22 -04:00
previews Redesign mobile driver overlay layout and clarify action copy (#5647) 2026-06-17 19:21:42 -07:00
resources Add Windows terminal onboarding step (#5488) 2026-06-16 14:07:26 -07:00
skills fix: support worktree name selectors (#5696) 2026-06-18 23:10:21 -07:00
src feat(worktree): reuse an existing branch when creating a worktree (#5181) (#5781) 2026-06-19 02:47:05 -07:00
tests Fix flaky e2e tests (#5680) 2026-06-18 00:11:32 -07:00
tools perf(windows): avoid blocking daemon pid checks (#5137) 2026-06-10 21:32:41 -04:00
.gitattributes Add project Windows runtime selection (#5519) 2026-06-17 16:08:14 -07:00
.gitignore Make remote hosts first class: concurrent multi-host workbench (#5071) 2026-06-13 18:53:01 -07:00
.npmrc Add mobile emulator (#4754) 2026-06-08 00:08:57 -07:00
.oxfmtrc.json
.oxlintrc.json Adjust max-lines lint budgets (#4515) 2026-06-02 15:22:17 -07:00
AGENTS.md Update AGENTS.md 2026-06-08 22:32:42 -07:00
CLAUDE.md Link CLAUDE.md to AGENTS.md 2026-05-04 20:42:03 -07:00
LICENSE
README.md Update Android APK links to 0.0.14 2026-06-16 17:36:43 -07:00
components.json
electron.vite.config.ts Run the file watcher off the main process to fix the serve deadlock (#5308) (#5310) 2026-06-13 14:48:32 -07:00
orca.yaml Fix Windows setup hook script (#2106) 2026-05-16 17:44:42 -04:00
package.json chore(deps): resolve Dependabot security alerts (no overrides) (#5795) 2026-06-19 01:57:47 -07:00
pnpm-lock.yaml chore(deps): resolve Dependabot security alerts (no overrides) (#5795) 2026-06-19 01:57:47 -07:00
tsconfig.json
vite.web.config.ts Update onboarding feature wall experience (#2652) 2026-05-23 12:21:13 -07:00

README.md

Orca Orca

GitHub stars Total downloads across all releases License Join the Orca Discord Supported platforms: macOS, Windows, and Linux

Español · 中文 · 日本語 · 한국어

The AI Orchestrator for 100x builders.
Run Codex, ClaudeCode, OpenCode or Pi side-by-side — each in its own worktree, tracked in one place.

Download Orca

Orca desktop app running agents in parallel worktrees, with the Orca mobile companion app in the corner

Features

Mobile Companion

Monitor and steer your agents from your phone — get notified when an agent finishes and send follow-ups from anywhere.

iOS App Store · Android APK · Docs →

Orca desktop with the mobile companion app

Parallel Worktrees

Fan one prompt across five agents, each in its own isolated git worktree — compare the results and merge the winner.

Docs →

Parallel worktree orchestration

Terminal Splits

Ghostty-class terminals with WebGL rendering, infinite splits, and scrollback that survives restarts.

Docs →

Terminal splits

Design Mode

Click any UI element in a real Chromium window to send its HTML, CSS, and a cropped screenshot straight into your agent's prompt.

Docs →

Embedded browser and Design Mode

GitHub & Linear, Native

Browse PRs, issues, and project boards in-app — open a worktree from any task and review without a context switch.

Docs →

GitHub and Linear task workflows in Orca

SSH Worktrees

Run agents on a beefy remote box with full file editing, git, and terminals — auto-reconnect and port forwarding included.

Docs →

Remote worktrees over SSH

Annotate AI Diffs

Drop comments on any diff line and ship them back to the agent — review, edit, and commit without leaving Orca.

Docs →

Annotate AI-generated diffs

Drag Files to Agents

VS Code's editor with autosave everywhere — drag files or images straight into an agent prompt.

Docs →

Drag files and images into an agent prompt

Orca CLI

Agents drive Orca too — script every workflow with orca worktree create, snapshot, click, and fill.

Docs →

Script Orca from the CLI

Also in the box:

  • Quick open — Search across worktrees, files, agents, commands, and repo context without leaving your flow.
  • Account switcher & usage tracking — See Claude and Codex usage and rate-limit resets, and hot-swap accounts without re-logging in.
  • Rich repo previews — Preview Markdown, images, PDFs, and repo docs in the workspace.
  • Computer Use — Let agents operate desktop apps and visible UI when a workflow needs real interaction.
  • Notifications and unread state — Know when an agent finishes or needs attention, then mark threads unread to come back later.
  • And many, many more — we ship daily, so this list is perpetually behind. The changelog is the real feature list.

Supported Agents

Works with any CLI agent — if it runs in a terminal, it runs in Orca.

Claude Code logo Claude Code   Codex logo Codex   Grok logo Grok   Gemini logo Gemini   Cursor logo Cursor   GitHub Copilot logo GitHub Copilot   OpenCode logo OpenCode   Amp logo Amp   OpenClaude logo OpenClaude   Antigravity logo Antigravity   Pi logo Pi   oh-my-pi logo oh-my-pi   Hermes Agent logo Hermes Agent   Devin logo Devin   Goose logo Goose   Auggie logo Auggie   Autohand Code logo Autohand Code   Charm logo Charm   Cline logo Cline   Codebuff logo Codebuff   Command Code logo Command Code   Continue logo Continue   Droid logo Droid   Kilocode logo Kilocode   Kimi logo Kimi   Kiro logo Kiro   Mistral Vibe logo Mistral Vibe   Qwen Code logo Qwen Code   Rovo Dev logo Rovo Dev   + any CLI agent


Install

Desktop — macOS, Windows, Linux

Or via a package manager:

# macOS (Homebrew)
brew install --cask stablyai/orca/orca

# Arch Linux (AUR) — or stably-orca-git to build from source
yay -S stably-orca-bin

Mobile Companion — iOS, Android

Pair with your desktop app to monitor and steer your agents from your phone.


Community & Support

  • Discord: Join the community on Discord.
  • Twitter / X: Follow @orca_build for updates and announcements.
  • Feedback & Ideas: We ship fast. Missing something? Request a new feature.
  • Privacy: See the privacy & telemetry docs for what anonymous usage data Orca collects and how to opt out.
  • Show Support: Star this repo to follow along with our daily ships.

Developing

Want to contribute or run locally? See our CONTRIBUTING.md guide.

Orca contributors

License

Orca is free and open source under the MIT License.