Brennan Bensonandggbdpq ca971bba2e Clear a Claude permission wait when Claude ends the request itself (#38648)
* Clear a Claude permission wait when its tool batch ends

When Claude ends a permission request itself (prompt timeout, built-in
safety check, non-interactive denial), no Post* hook fires, so the
terminal kept showing "needs permission" for the rest of the turn while
Claude kept working.

Claude 2.1.118+ sends PostToolBatch once every call of a model step has
resolved, listing each call's tool_use_id. Install it (not for
OpenClaude), name each PermissionRequest's request from the matching
PreToolUse in the listener, and settle a held wait only when its own
batch lists that request, locally and over SSH/WSL relays (live and on
reconnect replay). Elicitation dialogs, unnamed waits, newer prompts and
finished turns are left alone. The offline hook spool skips the batch
event, which carries every call's output.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Name a permission from its open call and keep held prompts across sibling results

Parallel calls interleave their hooks, so a PermissionRequest is named
from the one open PreToolUse it matches rather than the latest one. A
subagent's sibling result no longer restates its wait over a held
prompt row, a subagent's settled request can't clear the lead's own
open prompt, and retention reads only the entries the history keeps.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Keep the pane waiting while any other permission request is open

The listener's single wait slot holds only the newest prompt, so a
batch now settles a wait only when no other open call still has a
pending permission request. This replaces the missing-saved-state
guess, which missed two concurrent subagents and stranded a subagent's
wait after a relay restart. A fresh session start, not compaction or a
child, retires open calls, and a batch's id list is read once.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Skip a spaced batch event in the offline spool and pin batch-read cost

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Settle a self-denied wait only while no other prompt is open

Orca keeps one wait per pane, so overlapping prompts can't be settled
one by one yet. A batch now leaves every held row alone while another
call still waits on the user: a permission request, or a question from
its PreToolUse. A stopped subagent's calls retire, and a call that waits
on the user is never evicted by the open-call bound. Overlapping prompts
keep today's behaviour and never show working while one is open.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Count open MCP dialogs and unmatched requests as waiting on the user

An Elicitation now waits in the open-call registry until its
ElicitationResult (matched by elicitation_id), and a PermissionRequest
that matches no observed call still records an entry that waits until
its owner stops or the turn ends. Either keeps a batch from clearing
the pane while that prompt is still on screen.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Keep tool calls apart from waits Orca cannot identify

An MCP dialog is now identified by its owner, server and elicitation id, so a result ends only that dialog. A dialog without an id, or a permission request whose call was never seen, is an unidentified wait that only a stop, turn end or fresh session retires. Only real tool calls name a request or settle by id, so an internal key never reaches the status row.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* End a call only from its own agent and keep lead prompts across task notifications

A tool result or batch now ends only a call opened by the same agent, so a reused id cannot end another agent's prompt. An injected task notification is not a new user turn, so it no longer retires the lead's open prompts.

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

* Show the offline spool skips Claude tool batches

Co-authored-by: ggbdpq <ggbdpq@gmail.com>

---------

Co-authored-by: ggbdpq <ggbdpq@gmail.com>
2026-11-05 16:31:58 -08:00
2026-03-16 22:27:51 -07:00
2026-03-28 10:19:14 -07:00

Orca Orca

GitHub stars Total downloads across all releases License: MIT Join the Orca Discord Follow Orca on X Supported platforms: macOS, Windows, and Linux

中文 · 日本語 · 한국어 · Español · Français · Português · Türkçe · Русский

The AI Orchestrator for 100x builders.
Run Claude Code, Codex, and any other coding agent in parallel, each in its own worktree. Chat or terminal, on your laptop or in the cloud, with diffs, a browser, and a CLI in one app.

Download Orca

Orca desktop app with a coordinator agent running worker agents in parallel workspaces, and the Orca mobile app in the corner

Features

Orchestrate Agents

Hand a big task to one agent. It splits the work, starts worker agents in their own workspaces, and brings their results back to you.

Docs →

A coordinator agent splitting a task between two worker agents and reporting their results

Chat or Terminal

Run any agent in Chat UI or as the raw CLI, and move a conversation between the two without losing context.

Docs →

The same agent conversation in Chat UI and in the terminal, side by side

Run Anywhere

Pair a Remote Orca Server, work on any SSH host, or give a worktree its own cloud VM. Your agents keep running when your laptop sleeps.

Docs →

Choosing which machine a new worktree runs on, from this computer to an SSH host or a per-workspace environment

Mobile App

Pair Orca with the mobile app to get pinged when an agent needs you, reply in chat, and keep work moving on any of your machines when you are away from your desk.

iOS App Store · Android APK · Docs →

The Orca mobile app getting a notification that Claude needs input, opening the session, and replying so the agent opens the PR

Review AI Output

Review diffs, leave notes on exact changed lines, and send focused feedback back to an agent.

Docs →

A note on a changed diff line sent back to the agent

Git Integration

Draft commit messages and pull requests from the diff, then send failing checks or PR review comments back to an agent to fix.

Docs →

Drafting a commit and pull request, then sending a review comment back to the agent

Parallel Worktrees

Quickly split tasks into isolated environments, so multiple agents can work side by side without interfering with each other.

Docs →

Creating a new worktree with its own agent next to other running worktrees

Design Mode

Click any element in Orca's browser to copy its HTML, styles, and selector, then paste it into your agent's chat.

Docs →

Picking a button in Orca's browser and sending it to the agent's chat

GitHub & Linear, Native

See your GitHub and Linear tasks in one place, and start a workspace for each when you're ready to build.

Docs →

GitHub and Linear issues in Orca, with a workspace started from a Linear issue

Orca CLI

Anything you can do in Orca, your agents can do too: create worktrees, start workers, drive the browser and desktop apps, and schedule automations, all from the command line.

Docs →

An agent running orca worktree create to start a worker in a new worktree

Plugins

Themes, editors, languages, and panels from the community, installed in a click.

Browse plugins →

Installing the Orca Midnight theme from the plugin catalog

Split Anything

Put agents, terminals, browsers, and diffs side by side in split panes shaped to the task.

Docs →

Dragging tabs into split panes with an agent, browser, terminal, and diff

Also in the box:

  • Drag Files to Agents: drag files from the explorer, or images from your desktop, straight into an agent's prompt.
  • Jump Anywhere: one shortcut jumps to any workspace or tab across every repo and host.
  • Rich Previews: open images, PDFs, and Markdown right in the workspace, next to the agent that made them.
  • Mobile Emulator: run an iOS Simulator or Android emulator beside your agent, and let it tap, type, and check its own work.
  • Dictation: press a shortcut and talk. Orca types what you say into the agent's prompt or terminal.
  • Usage & Accounts: see how much of your agent limits you've used and when they reset, and switch accounts without logging out.
  • Automations: schedule prompts to run on any repo: nightly dependency bumps, weekly triage, flaky-test sweeps.
  • Computer Use: when there's no CLI or API, agents can see and drive desktop apps and external browsers.
  • 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 logo Claude Code   Codex logo Codex   Grok logo Grok   Cursor logo Cursor   GitHub Copilot logo GitHub Copilot   Muse logo Muse   DeepSeek Harness logo DeepSeek Harness   ZCode logo ZCode   OpenCode logo OpenCode   MiMo Code logo MiMo Code   Amp logo Amp   OpenClaude logo OpenClaude   Antigravity logo Antigravity   Pi logo Pi   oh-my-pi logo oh-my-pi   Hermes Agent logo Hermes Agent   Devin logo Devin   Goose logo Goose   Auggie logo Auggie   Autohand Code logo Autohand Code   Charm logo Charm   Cline logo Cline   CodeBuddy logo CodeBuddy   Codebuff logo Codebuff   Freebuff logo Freebuff   Command Code logo Command Code   Continue logo Continue   Droid logo Droid   Kilocode logo Kilocode   Kimi logo Kimi   Kiro logo Kiro   Mistral Vibe logo Mistral Vibe   Qwen Code logo Qwen Code   Rovo Dev logo Rovo Dev   + any CLI agent


Install

Desktop — macOS, Windows, Linux

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 App — iOS, Android

Pair with your desktop app to monitor and steer your agents from your phone.


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.

    WeChat QR code for the Orca community
  • 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.

Orca contributors

GitHub star history chart for stablyai/orca

Signed Builds

Windows code signing sponsored/provided by SignPath.io, certificate by SignPath Foundation.

License

Orca is free and open source under the MIT License.

S
Description
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.
Readme MIT
2.6 GiB
Languages
TypeScript 95.6%
JavaScript 3.4%
Swift 0.3%
Python 0.2%
CSS 0.1%
Other 0.1%