* perf(terminal): stop rebuilding parked-watcher keys on every overlay render Every mounted worktree's TerminalPaneOverlayLayer rebuilt its parked-watcher synchronization key from scratch on every render: JSON.stringify of the whole split-tree root per tab, then a second JSON.stringify pass that re-escaped that already-serialized string. Two app-global subscriptions in the cold-parking hook (pendingStartupByTabId, sleepingAgentSessionsByPaneKey) made any write for any tab in any worktree trigger that render everywhere at once, so the cost scaled with mounted worktree count. - Memoize the store-derived half of the reconciliation key on the already shallow-stable selector output. The captured-pane half still recomputes per render because that registry mutates outside React. - Replace the outer JSON.stringify of already-serialized fragments with a length-prefixed join, which is injective for arbitrary fragments and does no escaping pass. - Narrow both global subscriptions to worktree-scoped, value-comparable keys. Measured on a 12-worktree x 4-tab x 4-leaf-split model: 9.5 us -> 1.3 us of key work per worktree render (7.3x), before counting the renders the narrowed subscriptions now avoid entirely. Key semantics are unchanged: no hash is introduced, only memoization of an identical serialization and an injective replacement for the outer pass. * refactor(terminal): narrow the park subscriptions with useShallow, not string keys Review follow-up. zustand's `shallow` already compares Sets and plain objects structurally and order-insensitively, so the encode-to-string / parse-back pair each subscription carried was doing by hand what `useShallow` does for free. - Restore the Set-returning `selectSleepingRecordParkExemptTabIds` and subscribe through `useShallow`. Drops the NUL separator, the `.sort()` that existed only to keep insertion order out of the key, the O(k^2) `includes` dedup, the parse helper and the caller's `useMemo` — and removes the ordering invariant that was enforced by a comment alone. - Same for the pending-startup presence hook: `useShallow` over the presence record, keeping the frozen empty singleton for the zero-allocation steady state. - Drop the `useMemo` around the reconciliation selector. `useShallow` returns a fresh closure every render regardless, so the memo bought nothing and its WHY comment described behaviour zustand 5 does not have. The memo that is the real fix here, `reconciliationStoreInputsKey`, is untouched. Adds a narrowing case for a sleeping record this worktree can never resume, which pins both the blocked-record exemption and the narrowing itself; it fails against the pre-narrowing code (2 renders, expected 0). Net -25 lines of production code.
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
OpenCode
MiMo Code
Amp
OpenClaude
Antigravity
Pi
oh-my-pi
Hermes Agent
Devin
Goose
Auggie
Autohand Code
Charm
Cline
Codebuff
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 or join TestFlight
- Android: Download APK 0.0.44 · 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 7. If it is full, use group 8.
-
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.
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.












