* fix(orchestration): preserve task reset lineage per Run STA-10382 * fix(orchestration): record removed Tasks, Dispatches and workers per entity Replace the per-Run capped JSON snapshot with one row per removed entity in removed_orchestration_work, written by AFTER DELETE triggers on tasks, dispatch_contexts, worker_dispatches, worker_terminal_resources, remote_dispatch_attachments and federated_dispatches. The triggers are rebuilt on every open after migrate and dropped at migrate start; a recorded_since coverage marker moves forward whenever any trigger was missing, so a Run created before recording reads partial, never complete-and-empty. reset --tasks keeps its delete list and order; its reply gains optional removed counts computed after commit (a failed summary only drops the field). run-show gains an optional constant-size removedWork summary and --removed/--cursor paging. reset --all clears the record; deleting a Run deletes its rows. Removes the snapshot modules, the run_reset_lineage table, the in-transaction receipt completion and alwaysRequestId from the first version of this PR. * chore: drop accidental pnpm-lock.yaml churn * refactor(orchestration): decode removed work entries through unknown before the checked cast * fix(orchestration): count settled workers with open terminals and name affected Runs - A worker may still be running when its state was possibly live or its Orca-owned terminal was never released; the reset reply, run-show line and listing share one derivation from the removed records. - The reset reply names the affected Runs (optional runIds); the CLI prints the exact run-show command for one Run and the list for several. - The watermark read is no longer swallowed inside the reset transaction. - run-show's removed-work read is guarded; a failure omits the field. - Coverage compares created_at strictly after recorded_since. - --removed lists a federated worker once, shows a user-taken-over terminal as such, and says when a cursor is past the end. * fix(orchestration): count removed workers by held process minus durable exit proof - A removed worker may still be running when Orca held its process (live state, federated dispatch pending or dispatched, or an Orca-owned terminal) and no durable exit proof exists (stopped, released, released terminal, or a certified termination reason on its Dispatch). - The exit proof is one DURABLE_EXIT_PROOF constant shared by the fleet liveness projection (no behavior change) and the removed-work reader. - Dispatch records keep terminationReason. - Coverage is complete when a Run was created at or after recorded_since; a moved marker is stamped one second past the newest existing non-legacy Run, and the capture installs after the stub home Run backfill. * docs(orchestration): correct the terminationReason and coverage marker comments * fix(orchestration): decode removed work entries through a checked schema The stored record is parsed once with a discriminated zod schema per kind, so the listed entry keeps its precise type without an assertion. The same lineage field table drives the capture triggers' key set and integer casts. * fix(orchestration): exhaustive removed-work listing switch; keep valid ids in id lists List worker and remote worker entries with explicit cases so the switch is exhaustive over the entry kinds. An id list drops non-string elements and keeps the rest, as before the schema decoder. * test(orchestration): build removed-work CLI fixtures without type assertions Use a real RuntimeClient with a spied call and decode listing fixtures through the entry schema, so the tests carry checked types instead of casts. * fix(orchestration): name only the removed kinds in run-show and word the no-record message truthfully The run-show line lists the kinds a Run actually lost, terminals included, and the --removed message for a missing record no longer claims the host keeps none, since a new host omits it when its read fails. * fix(wsl-move): classify the removed-work tables with the other orchestration tables removed_orchestration_work and its coverage marker live in the orchestration database and go with its Runs, so the WSL mover rewrites them in place like every other orchestration table. * fix(orchestration): keep the removed-work hint when a reset removes only terminal records
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
Or via a package manager:
# macOS (Homebrew)
# Always use the full name; bare `orca` is an unrelated Plotly cask.
brew install --cask stablyai/orca/orca
# Upgrade an existing install
brew upgrade --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 · Install guide
Community & Support
-
Discord: Join the community on Discord.
-
Twitter / X: Follow @orca_build for updates and announcements.
-
WeChat: Group 12 is full. Scan to join the Orca community WeChat group 13.
-
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.










