* fix(source-control): generate PR details before Create PR on a ready branch A pushed branch sent the placeholder title and empty body, skipping the configured agent. A run Create PR submits unreviewed keeps the user's base and never unchecks Draft; the Generate button is unchanged. Fixes #22824 * docs(source-control): correct the auto-submitted Draft rule comment * fix(source-control): never let generated details uncheck the user's Draft box A Draft choice made before generation started was unprotected: the form only keeps fields whose revision changed *while* a run was in flight, so a user who checked Draft and then pressed Generate had the box silently unchecked by an agent answering draft:false, and the next Create PR opened a real review ready for review. Scope the rule to provenance rather than the in-flight window, and apply it to reviewed runs and the prepare-branch route too, so the agent can still flag unfinished work but never reverts a choice the user made. * test(source-control): cover the Checks panel create-after-run and superseded-run guards Two guards had no failing test. The Checks panel's Create PR must still send the finished run's details while its last render shows the run as generating, or the click silently creates nothing. Each panel's generation must return no result when a later run replaced its record (Stop, then Generate finishing first), or the stopped Create PR click would open a PR with the later run's details. * fix(source-control): don't reveal a background-created PR over another worktree Create PR on a ready branch now waits for the agent, and the create still runs if the sidebar panel closes meanwhile. When it finished, it always opened the sidebar on Checks (and, with "open after create", the review), even if the user had switched to another worktree, so Checks showed the wrong worktree and the in-app link route switched the user back. Reveal only when the created review's worktree is still selected, or the panel that made it is still mounted, like the prepare-branch route. * fix(source-control): keep Create PR in flight while the agent writes the details Create PR on a ready branch generated the details and then created nothing, with no message. When generation ended, Source Control's eligibility check restarted and cleared the eligibility, and the create, which reads the panel's latest state, returned early on the missing eligibility. The click now stays in flight from the start of generation until the create settles, as the prepare-branch route does, so the eligibility check stays paused and the create sees the eligibility it started with. Repeated clicks are counted so one returning early can't release another's hold. * refactor(source-control): move Checks created-review linking into its own hook No behavior change. The Checks panel's create hook was at its 400-line limit; linking and refreshing a created review now lives in use-checks-panel-created-review.tsx, the way Source Control keeps it in use-hosted-review-created.ts. * fix(source-control): finish a started Create PR run for the branch that was clicked After the agent wrote the details, Create PR read the panel's latest render instead of the state at the click. That render could have lost its eligibility (no PR, no message), still show the run as generating, or show another branch. Navigating away also gave opposite results: with the sidebar open on another worktree no PR was made; after closing the sidebar first, it was. The create now always runs through the click's own closure, so a started run creates the PR for the branch that was clicked wherever the user went, like the prepare-branch route. The reveal still follows the selected worktree, so nothing opens over another one. The "still shows generating" bypass in both panels is gone: the click's render never shows the run as generating. In the Checks panel, a create that returns after the panel moved to another worktree still links the review to the clicked worktree and clears its push-first flag; only the in-flight state, errors, opening the review and the GitLab checks refresh are skipped, since they belong to whatever the panel now shows. The same holds for a push-first create whose push finishes after the panel moved. * refactor(source-control): let the Create PR click own the in-flight flag The click already kept Source Control's create in flight through generation, so the composer stays up instead of closing while eligibility refreshes. It did that with a per-worktree click counter next to the create's own in-flight flag, so a repeated click that returned early couldn't end the first click's hold. Now the click owns the existing in-flight flag from the click until the create settles, and a click while it is set is refused before it touches anything, so the counter is gone. This matches what the UI already did: Create PR is disabled while the flag is set, including after Stop until the stopped request returns. Since the create now runs through the click's own state, the hold only keeps the UI steady; it no longer decides whether a PR is created. * docs(source-control): describe the created-review foreground check by what callers pass The Checks panel now passes whether it still shows the created review, not just whether it is mounted, since a mounted panel can have moved to another worktree while the create ran. * fix(source-control): release Create PR as soon as Stop lands After Stop, Source Control's Create PR stayed disabled ("Creating...") until the stopped generation request came back. Locally that is under a second, but when the cancel can't reach a slow or disconnected remote host the button stayed disabled for up to the 75 s generation timeout. A generation run's outcome now settles as soon as its record stops running, not when the request returns. Stop marks the record canceled at once, so the click that started the run ends, its hold is released, and the next click submits the form as shown. The stopped request still finishes in the background; its late result is dropped because the record is no longer running for that request. Both panels' generation handlers use the same helper. --------- Co-authored-by: Neil <neil@stably.ai> Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
Orca
中文 · 日本語 · 한국어 · Español · Français · Português
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
Features
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
Codex
Grok
Cursor
GitHub Copilot
Muse
DeepSeek Harness
ZCode
OpenCode
MiMo Code
Amp
OpenClaude
Antigravity
Pi
oh-my-pi
Hermes Agent
Devin
Goose
Auggie
Autohand Code
Charm
Cline
CodeBuddy
Codebuff
Freebuff
Command Code
Continue
Droid
Kilocode
Kimi
Kiro
Mistral Vibe
Qwen Code
Rovo Dev
+ any CLI agent
Install
Desktop — macOS, Windows, Linux
- Download from onOrca.dev
- Or grab a build directly: macOS Apple Silicon · macOS Intel · Windows (.exe) · Linux AppImage · All builds
- Running
orca serveon a headless Linux server? See the headless Linux server guide.
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.
- iOS: Download on the App Store
- Android: Download APK 0.0.50 · Install guide
Community & Support
-
Discord: Join the community on Discord.
-
Twitter / X: Follow @orca_build for updates and announcements.
-
WeChat: Scan to join the Orca community WeChat group 11.
-
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.
The relay that pairs the mobile app with a desktop host is also in this repository under
cloud/, with a separate pnpm workspace and setup guide.
Signed Builds
Windows code signing sponored/provided by SignPath.io, certificate by SignPath Foundation.
License
Orca is free and open source under the MIT License.










