A subagent child row borrowed its parent's `updatedAt` as its staleness clock and set no `evidenceObservedAt`, so the sidebar's "No update in N" label reported the PARENT's silence as the child's. With one child that reads correctly by coincidence — the child's activity is what advanced the parent's clock. With siblings it is wrong: a child quiet for ten minutes reads "No update in 0m" because a sibling just pinged. Reuse `evidenceObservedAt`, the field that already carries this meaning on `AgentStatusEntry` and whose reader already prefers it and already falls back to `updatedAt`. Add it as an optional field on the two child-bearing wire types and stamp it at the producer boundaries that already classify an event as the child's: - Claude hook roster: every child-attributed tool event and the lead's background-task fold. - Codex hook roster: every child-attributed lifecycle and tool event. The stamp takes an explicit observation argument, because two callers (the transcript scan and the restore seed) pass a SPAWN stamp as their creation clock and reusing it would backdate the child's recency to its own birth. - Structured background tasks: `task_started`, `task_updated`, the aggregate roster frame, and — the load-bearing one — `task_progress`. That branch previously dropped a frame entirely unless the task was backgrounded AND the frame carried token usage, discarding the only per-child liveness signal a backgrounded child emits. A usage-free progress frame now refreshes the clock, which changes publish FREQUENCY on that shared path. `startedAt` is untouched everywhere. It is the spawn stamp two roster sorts, `compareWorktreeAgentRows`, cap eviction, and the equality/shed digest all depend on, so this adds a second field rather than moving that one. The time column is untouched too: it is documented bimodal (finish-time for a done row, start-time for an active one), so "14m" on a working child is a correct elapsed duration. Absent means the host never reported it, never "never active" — deliberately NOT normalized to 0 the way `startedAt` is, which would render as decades of silence. The reader keeps the parent `updatedAt` borrow as the documented old-host fallback. The shed-roster digest deliberately excludes the new field: it moves on every child tool event, so folding it into an IDENTITY digest would make a shed roster almost never match its cached twin, and an unrestored roster blanks live child rows and unblocks hibernation. Moves the tracked-row merge and the progress-frame fold next to the row type they belong to, which also keeps the tracker inside its line budget.
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.48 · 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 8. Group 8 may be full; if so, scan the Group 9 QR code instead.
-
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.












