* fix(runtime): require OMP composer readiness and retain native title evidence Keep timer-cleared titles in display state so they cannot settle an idle wait. Require OMP's captured empty composer through the existing screen rules. Co-authored-by: drakeo338 <paranoyouz@gmail.com> Co-authored-by: Ahmed Nagy <ahmednagy25t@gmail.com> Co-authored-by: Saurav M Hiremath <sauravhiremath@gmail.com> * fix(runtime): veto OMP setup by screen and keep stale-title clears display-only OMP readiness no longer keys on the composer's thinking-effort hint, which OMP retires after a few uses, hides once a conversation exists and renders differently per glyph preset. Instead OMP's setup wizard (alternate screen or a "Setup step N of M" heading) vetoes every ready lane, and OMP's own `π >` idle title counts for the omp identity only once quiet on a screen read clear of the wizard. Other OMP titles take the general path again, so the post-turn `π -` title, 17.x `π:` titles and first-party blocked waits behave as before. `π >` is no longer explicit idle for every identity. The stale-working-title clear stays out of runtime records, but display readers (worktree ps, phone status and titles, terminal list, orchestration pointer, orphan adoption and reveal titles) now project records through one display accessor, so they show the cleared title and status again. A title the clear retired can no longer prove an agent is present; the foreground process must, which also covers the retained Cursor spinner, so the Cursor presence exclusion is reverted. * test(runtime): refuse OMP's setup splash, which has no step heading * test(runtime): a genuine title retires the stale-working display clear * test(daemon): record the OMP captures' inherited shrink cursor divergence * fix(runtime): settle OMP's idle title by its age and veto only its alternate screen OMP 18.4 re-asserts bracketed paste every second once a terminal answers its capability probe, which Orca's terminals do, so an idle OMP pane never went quiet and worker-start still timed out. Its idle title now counts once it has stood a quiescence window on a screen read clear of the setup wizard. The setup veto now reads only the alternate screen: the wizard always runs there, and a 'Setup step N of M' line on the normal screen is an answer's own text. * test(runtime): let the grid ingest OMP repaints before the title arrives * fix(runtime): keep the stale-title clear's process checks and record lifetime The stale-working-title clear is now an explicit branch instead of an early return. It still skips the title/status evidence readiness and delivery read, but runs what main's clear did to re-derive process state: the foreground-agent re-probe (an exited shell-launched agent loses its identity) and the completion-race exit check behind a fresh done hook. The clear now lives on the PTY record, so an SSH relay drop and reattach keeps the cleared display, and a recreated tracker is seeded from it. Presence judges a retired title by display ordering, so a renderer pane title older than the clear cannot prove an exited agent is present. * docs(runtime): OMP's idle title precedes its setup wizard by its startup tail * fix(runtime): judge agent presence by the displayed title while a clear stands A title the stale-working timer cleared used to veto presence outright, so a live, busy agent whose title cleared to its name and whose process Orca cannot recognize read as no agent, and the answer depended on whether a renderer pane was mounted. Presence and the terminal status query now read the display projection instead, which is what they read before the clear stopped rewriting records: a cwd spinner still clears to a neutral title, so the foreground process decides for an agent that exited behind it. * fix(runtime): compare a cleared title with a lifecycle cleared the same way The stale-working clear no longer writes the prompt lifecycle, so the blocked-dialog check compared a cleared title with a still-working lifecycle and ignored a trust or update dialog painted after the clear: terminal status said idle, the guarded send accepted, and a mounted pane's interactive wait went missing. The lifecycle is now projected through the clear wherever a cleared title is compared with it, as main recorded both together. That comparison can only report a wait on the user, never idle. * fix(runtime): verify prompts behind a stale-title clear against main's baseline Prompt-submission verification read the native lifecycle while a stale-working clear stood, so output after a swallowed Enter behind a stuck spinner counted as delivered, and the first spinner frame after the clear was not a new turn. Its starting status now goes through the same lifecycle projection the blocked-dialog check uses, and the first working status after a clear starts a new turn, as main recorded it. Readiness, delivery and the mailbox still read only native evidence. The blocked-dialog comment now says the projected pair reproduces main's verdict. --------- Co-authored-by: drakeo338 <paranoyouz@gmail.com> Co-authored-by: Ahmed Nagy <ahmednagy25t@gmail.com> Co-authored-by: Saurav M Hiremath <sauravhiremath@gmail.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.










