Orca
v1.4.240, released this weekAbout
Orca is a desktop orchestrator for coding agents such as Claude Code, Codex, and OpenCode that gives each task its own git worktree, so results can be compared side by side and merged. It includes split terminals, diff review with annotations, GitHub and Linear integration, and SSH worktrees. It is open source under the MIT license.
- Price
- Free, Free, no paid tier; enterprise rollout support by contact
- License
- MIT
- Version
- 1.4.240 · Oct 25, 2026
- Platforms
- macOS
- Category
- Developer Tools
Featured badge
Make Orca yours: show the badge on its site and the listing marks itself as linked back.
<a href="https://macgrove.app/apps/orca">
<img src="https://macgrove.app/badge/orca.svg" alt="Featured on MacGrove" width="223" height="32" />
</a>[](https://macgrove.app/apps/orca)What’s new
All 34 releases1.4.240Latest · yesterday
This release gives the built-in browser searchable history, makes agent activity easier to follow, and improves recovery across chats and remote terminals. You’ll also find Lean and Zig syntax highlighting, support for larger quick-command collections, and a new orca ports command for finding your dev servers.
- Conversations that stay with you: Claude chats now show turns made outside Orca. Retained messages return after reconnect without reopening the chat, and crash recovery no longer guesses that a sent message was undelivered.
- A browser with a better memory: Search your browsing history, reopen pages, remove unwanted suggestions, and clear history with Undo. Pages can also use files you pick, save or drop through File System Access.
- Remote work with fewer interruptions: Slow connections survive missed wake probes, reconnect notices explain what is happening, SSH terminals wait for sign-in, and new splits stay on the paired server.
- Agent status you can trust: Completed Codex subagents stop showing as Working, running main tasks stay visible through /side conversations, and Codex MCP tools that require approval get an approval card.
- More room for your workflow: Save more than 40 quick commands, find a worktree’s detected dev-server ports with orca ports, and reclaim old dependency installs and build output from development worktrees.
Earlier
1.4.239Two releases today! Check out the v1.4.238 release notes too. That release brought shared unsaved edits across workspaces, richer agent chats and remote account setup, a more capable browser, and smoother phone controls.
Two releases today! Check out the v1.4.238 release notes too. That release brought shared unsaved edits across workspaces, richer agent chats and remote account setup, a more capable browser, and smoother phone controls.
Set up agent skills in one click, keep browser sessions separate between projects, and move more easily between chat and terminal. This release also strengthens the essentials: shared files stay in sync, SSH sessions recover more reliably, and phone interactions feel more predictable.
- Skills, ready wherever you work: Install Orca’s skills in one click from setup screens, and install or update them on paired servers and SSH hosts with Orca’s own installer.
- A browser that fits your projects: Choose shared, per-repo or per-workspace profiles for new tabs. Keep local app logins separate, use a familiar page context menu, and get clearer explanations when a page cannot load.
- More fluid agent conversations: Split into a fresh chat beside your current one, continue with a terminal agent from the pane header, and keep queued messages and multiple image attachments intact.
- Safer edits, quieter background work: Shared file views stay current after undo and discard. Non-UTF-8 files ask before conversion, file watching recovers after slowdowns, and Orca watches fewer unrelated files.
- Remote work with a way back: Recover supported managed SSH servers from a stale lock in Settings, restore terminals after password sign-in, and keep a paired server’s SSH access link through restarts.
- Better from your phone: Tapping a notification opens the agent that sent it, agent chat tabs can start dictation, terminal copy commands reach the phone clipboard, and Android scrolling keeps the keyboard out of the way.
- Everyday polish, across languages: Better Korean input, Bengali and other Indic terminal rendering, more complete translations, Jira user pickers, and PR comment links that jump straight to the editor.
Phone updates: Updating Orca on the computer serving your phone updates the served interface. Native download, progress and navigation improvements require an updated native phone app.
- Browser profiles: Choose Settings → Browser → Profile for new tabs. Shared remains the default; per-repo and per-workspace profiles apply to new tabs. Paired-server pages use the server’s own profiles.
- Native chat (experimental): Update paired and SSH hosts alongside Orca for the latest chat and launch fixes. Chat availability now checks the chat runtime separately from the terminal CLI, including supported Antigravity setups.
- SSH recovery: Recover server… is available for supported managed Linux SSH hosts reporting a stale-lock refusal. It checks the lock and asks you to confirm that no other machine sharing that home is running Orca before clearing it. Phones point you to desktop Settings.
- Experimental groundwork: Connector work remains behind the off-by-default experimentalConnectors flag. The layout-owner groundwork remains disabled. The empty-group launch actions and child-workspace status toggle were reverted before release.
Agents, skills & setup
*Get agent skills onto the machines where you work, with clearer launch choices and startup feedback.*
- Update Orca's skills with Orca's own installer instead of npx skills
- Install and update Orca's skills on paired servers and SSH hosts
- Install Orca's skills with one click on every setup screen
- Chat agents are offered wherever their chat program runs, not only where their CLI is installed
- Explain agent startup failures in plain words
- Agents: store each agent's permission itself; terminals and new chats read it
- Apply paired host preferences to launch menus
- fix(agents): + quick launch on a paired host uses the desktop's launch settings
- Negotiate agent launches with paired runtimes
- Pair structured launches with the CLI runtime
- Keep agent environment values with spaces when the field loses focus
- Retain managed WSL selection across distro casing
- Allow independent hidden account restarts to progress
- Start the default agent in the first folder added after skipping onboarding
- Read Cursor Unified Ultra current-period quotas
- Show OpenCode provider quota failures as usage limits
- Keep Claude weekly usage from jumping back to an idle session’s old value
- Refine Agent Dashboard lifecycle handling
- Respect completed setup when CLI registration is unavailable
Native chat (experimental)
*Keep conversations moving, split off a fresh chat, and reach pane actions without leaving the conversation.*
- Split into a fresh chat beside the current conversation
- Add terminal-style pane header actions
- Send pi and acp messages after a model-only change
- A missing claude or codex cli no longer stalls the model picker on every open
- Keep every image chip when several images are dropped at once
- Show spelling suggestions when right-clicking chat inputs
- Continue the chat when a background subagent wakes an idle parent
- Retain unlisted reported Codex models
- Keep queued messages in the chat's own record, so a refused one can't be skipped
- Allow inline visuals to declare open
- Preserve accepted command outcomes across agent startup
- A nested claude -p no longer takes over its parent pane's status
- Keep a finished turn done when the agent reports an approval at idle
- Show task names for Codex subagents
Browser
*Separate project sessions, open links where you expect them, and get clearer page controls and recovery.*
- Per-repo or per-workspace browser profile for new tabs
- feat(browser): Chrome-style page context menu and DevTools window shortcuts
- Say why a page failed to load and reload it when it can
- Open links beside their pane, focus link tabs, honor window.close()
- Markup controls sit below the page in a mobile viewport instead of covering it
- Remove browser tab favicon drop shadows
- Open local html file links in the browser link routing picks
- Remote tunnel matches Chromium for IPv6 bypass rules and <-loopback>
Phone
*Reach the right agent, dictate from chat, and keep terminal gestures and clipboard actions predictable.*
- Tapping a phone push opens the agent that sent it
- Start dictation from agent chat tabs
- Keep the android keyboard closed when you scroll or swipe the terminal
- Send multi-line chat messages as one bracketed paste
- Copy OSC 52 terminal writes, like Claude Code's /btw copy, to the phone clipboard
- Decode page-bundle download windows natively
- Download only the page assets the cached generation lacks
- One download bar whose fill follows progress on the native driver
- The shell returns to a screen already on its stack
- Finish bundle downloads over slow links with smaller ranges
- Keep a terminal tab's chat identity while its handle is unchanged
- Add Copy path beside Copy in mobile Markdown footer
- Improve contrast of mobile Markdown copy buttons
- Keep mobile agent icons visible on retained routes
Editor, files & performance
*Keep every view of a file current and reduce unnecessary background work.*
- Every view of a shared file stays current after undo or discard, and non-UTF-8 files ask before converting
- Saving a file, then closing that tab mid-save, no longer leaves its other tabs looking clean (STA-11786)
- File watching rides out a slow system instead of restarting, and turns itself back on after a cooldown
- Watch only the files Orca needs in its settings folder and .git, instead of the whole folders
- Open files dragged from the explorer in the target editor group
- Keep paragraphs starting with "Dr.", "A." or "iv." out of ordered lists
- Render authored Markdown breaks as rich-editor line breaks
- Let Cmd/Ctrl +/- zoom an open image
- Resume media previews from their last playback position
- Retain explicitly opened directory symlinks during refresh
- Keep readable documents after traversal errors
- Preserve requested line across Preview teardown
- Collapse mirrored Markdown aliases with shared backing identity
- Scope runtime connection and parking subscriptions
- Bound per-write chat selector work and guard ownership scans
- Prepare separator variants once per query
- Decode image and encrypted reply bytes without character arrays
- Avoid redundant CRLF normalization when syncing Monaco
- Avoid full-recording copies when encoding dictation
- Accumulate MJPEG chunks instead of re-joining partial frames
Terminals, SSH & remote servers
*Recover interrupted remote work and keep terminal output, file links and workspace lifecycle actions dependable.*
- feat(ssh): Recover server for a managed host refused on a stale lock, and surface that refusal in seconds
- Add --reclaim-stale-lock for a lock no start can judge after a reboot on a shared home
- Allow SSH migration recovery without stopping preserved relay terminals
- Restored SSH terminals recover after password sign-in
- Keep a paired server's SSH access link across its restarts, and let it relink
- Preserve runtime recovery steps
- Never block or over-read on an SSH identity file
- Never present a half-built synchronized-output frame on reveal or recovery
- A timed-out CLI split names its pending pane, and a retry can never re-run its command
- fix(terminal): Cmd/Ctrl+click opens the clicked path on a paired server when more paths follow
- A file link opens in the workspace it was clicked in
- Resolve Markdown file destinations before bare paths
- Verify an exact stop through an overlapping liveness inventory
- Scope daemon inventories for safe worktree teardown
- Clear route proof during synthetic exits
- Retire predecessor exit evidence on replacement
- Scope launch-session verdicts to managed environments
- The browser client advertises the desktop's chat capabilities, so its host opens chats
- Main runs workspace sleep; the window follows (P3b)
- Targeted resume of a recorded agent session, sharing an in-flight claim with pane resume
- End a resume claim when the hook store reports it, not at the next claim
- A slept server run opens its own tab from a paired desktop
- Add main-owned project move pause barrier
- Stop the terminal host scope from looping systemd with uresourced on Fedora
- Keep Linux controls readable when their positions stall
- Keep Windows tree termination at normal scheduling priority
- Offload macOS deletion spawns and reduce branch cleanup
- Preserve binary output through termination barriers
- Shape Bengali and other Indic clusters in the WebGL renderer
- Focus the neighboring pane when a split pane closes
Projects, source control & integrations
*Jump from reviews to code, fill Jira user fields, and keep project actions tied to the right work.*
- Open pr comment file:line locations in the editor
- Pick Jira users for required Reporter and custom user fields
- Import JiraUser from its real module in the issue user field
- Find issues and #N in the new-workspace gitlab source
- Fix GitHub PR auto-merge eligibility
- Retain authentication guidance for push failures
- Reject cached same-branch PRs with foreign heads
- Preserve workspace PR history during automatic cleanup
- Unify single and multiple PR hover details
- Refresh automation run history before opening a run
- Explain unsupported and unresolved worktree parents
- Show activity status with worktree-style counts
- Retain the imported project group target
- Show Remove Project label in PR panel for main worktree
- Label hosted reviews per provider in the space-manager panel
- Treat HTTP 404 as no-PR in the hosted-review branch lookup
- Resume workspace cycling after closing the last tab
- List issue comments oldest first
- Keep submitted comments cleared
- Retain session row measurements while hidden
- Finish SSH-signed commits without hanging
- Close the board when a right-sidebar tab is clicked
- Include undated Cursor sessions in time filters
Language, accessibility & interface polish
*More natural text input, clearer translations, and controls that work better with touch and assistive tools.*
- Send on the Enter that commits a Hangul composition
- Submit on the Enter that commits Korean in every text field
- Complete six locale catalogs and include community Portuguese translations
- Translate recent UI copy
- Describe Korean descendant sleep as closing panels
- Correct Chinese technical mistranslations
- End autolinked urls at CJK punctuation in chat, terminal and mobile
- Render CJK bold that ends in punctuation in desktop and phone chats
- Switch workspaces when accessibility tools press a sidebar row
- Use focusable tooltip menu triggers
- Reveal project header actions on touch devices by @buf0-bot[bot] in
- Align multiline filter toggle row text and icons to top-left
- Shimmer stale reference metadata without layout shifts
Tests, builds & maintenance
Dependency security fixes, broader regression coverage, release-build improvements and continued cleanup.
<details> <summary>All maintenance changes</summary>
- refactor: colocate Jira favourite-filter contracts
- Let a worker start helpers on the Run it works for
- refactor: colocate repository Jira project settings
- refactor: colocate repository worktree defaults
- refactor: colocate repository AI persistence queue
- refactor(runtime): share the phone push's terminal-agent turn news
- refactor(automations): share the idle agent-turn completion rule
- refactor: colocate Linear list-scoping owners
- Track transcript content truncation across session readers
- refactor: colocate relay assignment admission owners
- Stop reviving a session outside the cell's map, keep the seat feed on live sessions, and log demote outcomes
- Add Orca's own bundled-skill planner and installer (not wired in yet)
- docs(chat): explain structured sessions and conversation handoffs
- Exclude root development configs from desktop packages
- Reject unsupported renderer-owned tab properties
- Preserve rename boundaries in React Doctor gate
- Main lints and typechecks again after #32018
- Reject ask waits above the documented 30-minute maximum
- Reject task messages for another implicit Run
- Show launch actions in empty tab groups
- docs: condense test anti-pattern guidance
- refactor: colocate repository draft input and tests
- test: consolidate discovery coverage and replace copied oracles
- test: retire copied oracles and implementation inventories
- test: remove classification inventories and verify settled boundaries
- test: keep explicit regressions without legacy algorithm copies
- ci: avoid slow Ubuntu mirrors during WebKit setup
- Show child workspace statuses in the children toggle
- [comment audit] Shorten preload comments
- test: trim redundant coverage and track comprehensive audit
- test: drain guarded saves before fixture cleanup
- refactor(renderer): colocate Task Page pagination rules
- Bundle Zod once per isolated Vitest invocation
- Use incremental tsrs locally and update Bun to 1.4.4
- test: trim redundant coverage and fix vacuous assertions
- Retain ambiguous unit-test import consumers
- test: exercise real boundaries and trim redundant cases
- Retain full coverage for shared unit runtime inputs
- test: audit delayed replies and database boundaries
- refactor(jira): colocate status error parsing with Jira owners
- Retain TypeScript project input consumers
- ci: move Linux package and relay jobs to the Blacksmith pool
- test: audit CLI output and deferred delivery boundaries
- ci: speed up full unit shards with eight-core workers
- [comment audit] Shorten process-host comments
- test: audit CLI dispatch and mobile host boundaries
- [comment audit] Shorten CLI parsing and host-routing comments
- [comment audit] Shorten remaining CLI root comments
- ci: record WSL provisioning and cleanup lifecycle receipts
- ci: warm the Windows 2025 native cache used by WSL
- [comment audit] Shorten CLI handler comments
- [comment audit] Shorten CLI runtime and command-spec comments
- ci: move WSL Linux producers to the Blacksmith pool
- [comment audit] Shorten top-level main process A–G comments
- test: strengthen CLI, ACP, mobile web and CI coverage (audit 7)
- [comment audit] Shorten top-level main process H–K comments
- ci: verify indirect unit input ownership in shadow selection
- ci: move the SSH mobile producer to the Blacksmith pool
- test: strengthen CLI, lifecycle, bundle and build coverage (audit 8)
- [comment audit] Shorten top-level main process L–O comments
- Revert "fix(workspace): show launch actions in empty tab groups"
- Revert child workspace status summary toggle
- [comment audit] Shorten persistence and PTY root comments
- Resolve security advisories across desktop, mobile, and docs
- test: strengthen hook delivery, CLI and mobile shell coverage (audit 9)
- test: clean up structured session prompt hook fixture
- refactor(task-page): colocate repository selection modules
- ci: route PR headless change detection off hosted queue
- [comment audit] Consolidate completed code comment cleanup
- ci: move routine checks and unsigned builds to Blacksmith
- refactor(task-page): colocate Linear composition modules
- ci: send dependency review notices to release Slack
- refactor(jira): colocate shared contracts and capabilities
- test: keep Activity search contracts without operation counters
- test: reduce mobile relay integration startup imports
- refactor(terminal): split terminal-file-open-routing.ts back under the line limit
- Record renderer long-task measurements
- test: avoid unrelated application startup in shutdown suites
- test: verify terminal chunk yields without waiting for Enter delay
- test: retain moved-code gate behavior without replace counters
- test: reuse maintenance worker setup for compatibility cases
- test: reduce editor ownership test startup with existing slice fixture
- chore(deps): apply reviewed maintenance updates and record full audit
- docs: remove checked-in audit documents and artifacts
- Patch vulnerable Zod collections in mobile and docs
- Count region selection on every assign lane, fallback only for new placements
- Spill onto a reserve seat in either region before relay_capacity_exhausted
- refactor: group remote runtime requests and subscriptions
- Let roll tooling read a reserve-mode cell and count its drain
- [comment audit] Continue main-process comment cleanup
- test: strengthen hook, build, and mobile lifecycle coverage
- refactor(shared): group remote runtime shared-control lifecycle
- test: strengthen CLI expectations and consolidate repeated scenarios
- Consolidate structured status projection at each host feed
- test: remove copied inventory and strengthen CLI, preload, and Cloud boundaries
- refactor(worktrees): remove unreachable legacy worktree list IPC
- refactor(rate-limits): remove unreachable setPollingInterval and refreshMiniMax IPC
- refactor(dashboard): remove unreachable popout spawn/sleep IPC
- test: verify runtime delivery and remove real-time socket waits
- Resolve body-parser and happy-dom security findings
- refactor: remove four unreachable preload IPC bridges
- test: replace hook shape checks with execution and delivery assertions
- chore(ipc): remove unreachable hooks:createIssueCommandRunner IPC
- refactor(ipc): remove unreachable runtime-environment provisioning and control-retry IPC
- ci(windows): route real installer probes by changed inputs
- test: verify hook delivery and exit cleanup through observable state
- refactor(shared): colocate remote runtime Tailscale guidance
- test: strengthen retirement controls and remove redundant waits
- refactor(agent-status): reuse the shared bounded-string guard
- test: tighten hook and relay coverage and consolidate launcher checks
- refactor: colocate remote runtime connect bound
- test: replace self-fulfilling checks with production boundary assertions
- [comment audit] Clean up IPC, host lifecycle and native-chat comments
- Refu…
1.4.238This release makes it easier to move between agents, files, browsers and remote machines. Tabs of the same file now share unsaved edits, native chats pick up turns made elsewhere, and the phone gets more dependable terminal gestures and richer tab controls.
This release makes it easier to move between agents, files, browsers and remote machines. Tabs of the same file now share unsaved edits, native chats pick up turns made elsewhere, and the phone gets more dependable terminal gestures and richer tab controls.
- Your edits stay together: Tabs of the same file share unsaved text across workspaces. Conflict review sees that live text, workspace deletion lists unsaved files, and stale Markdown or notebook edits no longer overwrite newer work.
- Chats that keep up: Codex and Pi show turns made outside the chat. Long pastes can become text attachments, Codex questions get answer cards, and OMP gains image sending and actionable plan-review cards.
- More control over agents: Pick chat or terminal when creating a workspace, set that choice for your default agent, add Claude and Codex accounts on supported remote servers, and install shared skills for 11 more agents.
- A more capable browser: A workspace-aware new tab, address-bar suggestions, remembered site permissions, per-site appearance and zoom, and page-loading progress on desktop and phone.
- A smoother phone experience: See agent activity in tabs, rename with a double-tap, scroll back through earlier chat messages, select terminal text more naturally, and return to your terminal reading position after resuming.
- Better visibility and recovery: Inspect local terminals in Resource Manager, use plain SSH when a host’s move to an Orca server is blocked, and keep pairings through managed-server updates and recovery.
- Everyday polish: Brazilian Portuguese, language selection during onboarding, searchable release builds, clearer history-scan progress, and Resolve with AI for paused merges, rebases and cherry-picks—even after file conflicts are fixed.
Phone updates: Updating Orca on the computer serving your phone updates the served interface. The new Home → New Workspace entry and native iOS dictation fixes require an updated native phone app; the home-screen entry ships with the next app build.
- Remote accounts: Update the paired server for the new Claude and Codex Add Account flow. Windows servers and older hosts retain the orca account add guidance. Credentials stay on the server; remote re-authentication of an existing account is outside this change.
- Native chat (experimental): Update paired and SSH hosts alongside Orca for the latest chat fixes. Agent version checks now accept newer releases and prereleases that meet the required minimum; a known older version shows update guidance.
- Resource Manager: The new PTYs view covers local terminals. Ending a terminal requires host support for verifying the selected session; older hosts refuse unchecked termination.
- HTML files: Opening HTML in preview by default was reverted for this release.
- Experimental groundwork: Layout-owner and sidebar changes listed below remain disabled. Connector configuration is off by default, and the new optional agent-write controls have no existing callers enabled.
Native chat (experimental)
*Continue conversations across chat and terminal, answer agent questions, and share images and long prompts more easily.*
- Show turns made outside Orca in an existing Codex chat
- Show turns made outside Orca in an existing Pi chat
- Attach long pastes as text files and flag oversized messages before sending
- Codex async questions show an answer card on desktop and phone
- OMP's plan review shows as a plan card you can answer from desktop and mobile chat
- Questions over 16 KB show their card with every option
- OMP chats send images; an ACP agent's own startup answer decides
- Keep newer agent versions and eligible prereleases available for chat, with clear guidance when an installed version is too old
- Keep model choices coherent across Claude updates
- Typing fast after focus moves keeps keys in order
- Retire ghost queued continuation bubbles
- Show a prompt hook's block as its own row for every agent
- A cancelled approval card closes even when the journal was briefly full
- Open inline images directly in preview dialog
- Handle inline image preview edge cases
- Set minimum width for native chat table cells
- Gate draft image ownership checks by local attachments
- Avoid repeated skill catalog scans while building the picker
Agents, accounts & skills
*Choose chat or terminal when starting work, add accounts on a remote server, and install shared skills for more agents.*
- Choose chat or terminal CLI in Create worktree, Create folder and continuation pickers
- Set the default agent to open as a chat or a terminal CLI
- Add Claude and Codex accounts on supported remote servers from a paired desktop
- Restart WSL Claude panes after an account switch
- Install shared skills for 11 more agents and stop Qoder listing skills twice
- Preserve Cursor identity across imported Claude hooks
- Renaming a terminal no longer hides its running agent
- Route OMP question cards to terminal
Phone: tabs, chat & workspaces
*Read earlier messages without losing your place, see agent activity in the tab strip, and keep workspace actions on the right computer.*
- Tab strip shows terminal and chat agent state, reveals the next tab, renames on double-tap
- Load earlier chat messages on scroll-up, keeping the reader's place
- Phone terminal and chat tab names match the desktop
- Closing the tab a phone shows returns it to the tab it viewed before
- Keep closed terminal tabs from reappearing after quick closes
- New Tab drawer reopens with its agents and refreshes them when desktop does
- Keep a Codex chat on screen when Codex shows its idle title on a headless host
- Floating-panel chats started from a phone show on the desktop
- Mobile chat composer uses desktop's placeholder
- Attach Codex images when agent identity is missing
- Refresh chat file suggestions when the desktop connection changes
- Load the right agent history when you switch computers
- Prepare Home’s New Workspace drawer; the home-screen entry requires the next native phone app build
- Open Create Workspace after source drawer closes
- Detect New Workspace agents in the selected repo runtime
- Load folder workspace agent presets on the correct host
- Keep your setup-script choice when the repository list refreshes
- Warn about agents that cannot wake on a windowless server only when the workspace has sleeping agents
- Recover workspace features after temporary connection checks fail
- Keep selected mobile options visible while locked
- Announce locked picker notice on iOS
Phone: terminals, voice & touch
*Select text more naturally, return to the same reading position, and keep scrolling, dictation and keyboard input dependable.*
- Drag terminal selection with the long-press finger
- Select Unicode words at rendered cell boundaries
- Keep terminal scroll gestures from becoming taps
- Preserve prompt taps after terminal scrolling
- Start phone terminal scrolling without a timer delay
- Retain terminal reading position after resume
- Prevent stale terminal sizing and stream callbacks from affecting a newer phone session
- Clear old touch gestures before replaying a terminal snapshot
- Cancel stale shortcut list drags
- Preserve native iOS dictation placeholders
- Restore dictation after iOS audio interruptions
- Mount sessions with saved preferences
- Terminal settings show the saved "When you leave the mobile app" choice
- Render offline Nerd Font symbols on first terminal display
- Apply desktop terminal WebGL rendering fixes on phone
- Fill the background below the final terminal row
- Keep terminal wait feedback visible with a draft
- Terminal Paste says why when nothing is pasted
- Handle Android terminal keyboard chords in OTA sessions
- Remember your latest choice for opening terminal links
- Keep newer quick-command edits when an earlier save finishes
Phone: files, reviews & connections
*Keep drafts with their files, preserve recent edits, and recover more clearly from connection and loading failures.*
- Keep review-note drafts with the file they belong to
- Keep generated commit messages in the workspace that requested them
- Show Retry when a commit's changed files fail to load
- Refresh open subfolders and keep deeply nested filenames visible
- Keep a closed branch preview from reopening when loading finishes
- Keep the notification switch from flipping back after you enable it
- Stop a slow connection save from sending you back twice
- Use port 443 for explicit WSS host edits
- Distinguish delayed connection deadlines from unreachable hosts
- Speed up phone diff-review note lookup by file path
Browser
*Open a workspace-aware new tab, find sites from the address bar, and control permissions, appearance and zoom per site.*
- New tab page with a workspace card and suggested sites
- Chrome-style new tab and address bar suggestions
- Allow/Block prompts for site permissions, remembered per site
- Per-site appearance and zoom, from the page menu and Cmd/Ctrl +/-/0
- Show every page load, link clicks included, as a line along the address bar on desktop and mobile
Editor, files & source control
*Share unsaved text across tabs of the same file, protect edits during saves and workspace removal, and get help with paused Git operations.*
- Keep tabs of the same file in sync with one shared record of unsaved edits
- Show a file’s live unsaved text from any workspace in read-only conflict review
- List unsaved files before deleting a workspace, and refuse removals that would lose them silently
- Offer back unsaved edits when a workspace is removed without a prompt
- Let saves finish safely and keep discarded text off disk after Don’t Save
- Stale delayed edits in notebook and rich Markdown views no longer overwrite newer text
- Guard autosave, skip identical writes, and avoid autosaving non-UTF-8 files
- Parse remote .tsx files correctly and keep their imports on the remote host
- Combine untracked files into Changes
- Offer Resolve with AI for paused merge, rebase, and cherry-pick
- Polish explorer search layout and collapsible filters
- Avoid repeated suffix scans for unfinished wiki links
Terminals, SSH & remote servers
*Inspect local terminals in Resource Manager, reconnect more reliably, and keep remote pairing and account changes intact.*
- Inspect local terminals in Resource Manager’s PTYs view and end a selected terminal after host verification
- Every start in a deleted folder opens at the workspace root and says so
- Repaint desktop after phone fit ends
- Repaint an idle full-screen program when a reconnect can't image its pane
- Copy from remote Codex panes to the viewing device’s clipboard
- Fix terminal URLs split across padded output rows
- Link a framed multi-row URL when an overlay shows through
- Settle a restored remote pane whose host session already exited
- Set ORCA_WORKSPACE_ID in every terminal Orca starts
- Set ORCA_WORKSPACE_ID in WSL terminals too
- Keep desktop take-back from stale phone input
- Release remote streams when the renderer reloads
- Share this host: only offer addresses the server actually answers (no dead IPv6 links)
- A managed host's 'no desktop is sharing its browser' error names the browser routing setting too
- Name what blocks an SSH host's move, and offer Move anyway in the terminal pane
- Open a plain SSH terminal to a host whose move to its Orca server is blocked
- Say what plain SSH is for beside its button, and polish the plain SSH window
- Resolve repository SSH hosts consistently when routing runtime actions
- Use consistent connect, Update and Force decisions for SSH and WSL servers
- Keep the enrolled pairing across a managed server's update, rollback and recovery
- Prove an unrecorded orcad by kernel identity before adopting it
- Pair again from the distro when a WSL host refuses the enrolled token
- Editing project groups no longer marks a moved host as changed
- Stop floating terminal metadata from blocking SSH access links
- Prevent new terminals during a server stop and protect rollback and restart transitions
- Name a missing shared library when the pinned Node runtime can't start
- Ship computer use with the server and say when it is unavailable
- Stabilize remote host status bar during retries
- A workspace created on a paired server shows one set of default tabs when the same path exists on another host
- Open the stdio bridge without re-probing the distro's platform
- Keep the server bundle ASCII so V8 stores it at half the size
- Avoid repeated scans while finding PR URL schemes in terminals
History, settings & everyday use
*Search larger projects, follow history scans, choose your language during setup, and find release builds more easily.*
- Project search works for projects with hundreds of worktrees
- Pi and OMP keep their own agent on a transcript they both list
- Keep Session History checking totals fixed throughout a scan
- Show per-agent Session History reading progress
- Repair only the damaged parts of a profile instead of rolling back the whole profile
- Add search to the release build list
- Add Brazilian Portuguese UI localization
- Add onboarding language selection
- Preserve system language in both experiment cohorts
- Recover language selection after rejected catalog loads
- Restore localized editor safety copy
- Correct Korean sleep with descendants wording
- Clarify Japanese phone control and connection wording
- Preserve runtime entries after removing untracked settings
- Dim terminals and chats on the unfocused side like editors
- Remove directional tab-close actions and tracking
- A confirmed close of a pinned tab in a server workspace closes it instead of snapping back
- Label re-sent held tab closes as replays
- A worktree card fetches its Linear issue again only when the issue or its source changes
- Remove redundant host badges in every grouping
- Honor "only when desktop is away" on headless orca serve
- Reserve push database capacity so notification delivery can finish
- Keep busy-device notification checks on their database index
- Use database range indexes to bound push-notification retention work
- Avoid decoding Qoder history records twice
- Bound history scope-cache batch enumeration
- Speed up session updates by indexing stable layout records
- Limit buffered worker subprocess output without dropping bytes
- Record a daily aggregate WSL usage snapshot on Windows
Tests, builds & maintenance
*Release and security updates, plugin fixes, performance work, broader checks and continued module cleanup. The disabled groundwork below does not enable the new layout or sidebar behavior.*
- HTML preview by default was added and then reverted for this release by @AmethystLiang in and
- fix(plugins): a development plugin reloads an edit saved while its watcher was starting
- Prepare server template assembly alongside qualification
- Reuse Windows server native prebuilds across app version bumps
- refactor(renderer): read workspace records through typed selectors
- fix(relay-ops): keep one stalled director instance from tripping the reserve watch's 503 rule
- test(daemon): make real-socket backpressure assertion deterministic
- docs(mobile): clarify buffered terminal autocomplete scope
- chore(ratchet): drop the stale owner-adapter focus seed and prune the baseline
- refactor(ssh): delete SSH and orcad helpers nothing calls
- refactor(orcad): share one unverifiable terminal census
- chore(runtime): delete exports nothing reads
- refactor(ssh): import SSH and orcad names from the modules that define them
- refactor(execution-host): one resolver for the SSH target a repo row may dial
- refactor(repo-host): one helper for the hosts registering a repo id
- refactor(orcad): name the remote install helpers for what they install
- docs(ssh): describe the orcad connect path without the removed relay
- refactor(orcad): use the shared error and liveness helpers instead of local copies
- refactor(renderer): name the owner adapters for what they do (resolveOwnerOrLocal)
- ci: install verified fish 4 directly for shell contracts
- refactor(terminal): no catalog-less fail-open to the focused runtime in terminal spawn routing
- Trim unused rules from the editor's same-file check (keep WSL folding for discard holds)
- docs: plan quiet-first module organization cleanup
- fix(relay-ops): make each reserve-watch sample one Cloud Logging read
- fix(relay): release a drained host before telling it to leave
- refactor(ssh): the SSH host finder uses the host picker's overflow note and bounded-list shape
- refactor(ipc): group Linear handlers with direct owner imports
- refactor(ipc): group Jira handlers with concrete owner imports
- refactor(native-chat): one shared parser for the approval envelope
- refactor(jira): group attachment modules with concrete owner imports
- docs(readme): update star history chart
- fix: remediate dependency security advisories across workspaces
- refactor(sidebar): one shared feed client for the desktop window and the phone
- fix(pairing): normalize base64 consistently across clients
- refactor(linear): group issue-context reads under concrete owners
- fix(browser): bring the address bar back under the 400-line limit
- fix(security): update Node runtimes for October security releases
- Extract shared image clipboard copy utility
- Bring main back under the line limits (main lint is red)
- ci: fix protected-main downloads badge updates
- refactor(browser): group Chromium cookie import stages
- chore: remove unused shadcn generator dependency
- feat(connectors): add an off-by-default experimentalConnectors setting (no behaviour change)
- fix(ci): prepare historical VM rollback snapshots
- Update cloud relay runtimes, providers and security checks
- fix(ci): restore cloud and main checks during pnpm registry outages
- Move Relay deployment configuration into private cloud operations
- chore: remove five redundant Tiptap wrapper dependencies
- refactor(main): group ephemeral VM lifecycle modules
- chore: replace electron-toolkit utilities with Electron APIs
- refactor(settings): group repository identity modules
- ci: make workflow token permissions explicitly read-only
- test: remove obsolete @streamparser/json dependency
- ci: prevent benchmark candidate code from publishing caches
- ci: validate adhoc build provenance before executing source
- Stabilize pending admission refusal option retry test
- ci: skip unrelated relay integration on renderer-only PRs
- ci: remove completed relocation and pnpm cache experiments
- refactor(mobile): group platform-seam analysis tools
- ci: avoid global fan-out for routing test changes
- refactor(runtime): resolve a watched repo's host through the canonical routing API
- refactor(runtime): replace unchecked store casts in worktree queries with type guards
- refactor(worktrees): pick a repo's catalog watcher transport from its canonical SSH target
- ci: count every retry attempt in runner demand reports
- fix(plugins): validate example panel reply dispatch
- fix(docs): avoid backtracking in excerpt link destinations
- fix(ci): restrict candidate test workflows to read-only caches
- refactor(relay): group assignment cleanup and diagnostics
- refactor(ssh): split the ssh2 handshake, host key verification, system ssh probe and credential fallback out of SshConnection
- refactor(orcad): drop the toolchain probe's unread toolchainMissing verdict
- fix(images): avoid backtracking in data URI parameter parsing
- ci: improve shadow unit dependency precision
- ci: check dependency vulnerabilities on PRs and stable releases
- refactor(orcad): stop exporting declarations used only inside their own module
- test: isolate Windows tree-kill load fixture startup and cleanup
- ci: canary tiered WSL distribution qualification
- refactor(managed-server): stop exporting declarations used only inside their own module
- ci: build the SSH Windows mobile page once
- refac…
1.4.237Orca just crossed 100,000 stars on GitHub! Every bug report, pull request, shared workflow and recommendation has helped us get here. Thank you for building with Orca and helping shape what comes next. ❤️
Orca just crossed 100,000 stars on GitHub! Every bug report, pull request, shared workflow and recommendation has helped us get here. Thank you for building with Orca and helping shape what comes next. ❤️
To celebrate, this release brings a more capable phone experience, more dependable agent conversations, and fixes that keep your work moving across desktops and remote machines.
- More done from your phone: Create and edit notes, save Markdown on headless hosts, follow relative file links, and see embedded images. Buffered terminal drafts can now survive workspace navigation, too.
- Chats you can come back to: Codex chats reopen correctly after undo, Claude keeps its rewound context across Orca rollbacks, and screenshots stay with the conversation. Codex’s skill picker now reflects the skills Codex actually loaded.
- Your work stays protected: Discard pauses autosave of the same file across workspaces. Read-only Markdown and CSV views protect your unsaved edits, and new, unstaged Markdown documents open straight into the rich editor.
- Voice beyond the desktop: Phone dictation works again through headless orca serve hosts, with a CLI command to configure the host’s OpenAI key.
- Smoother remote work: Reconnect hidden terminal tabs after a restart, keep browser logins when hosts pair again, and search SSH configurations with thousands of hosts without freezing the interface.
- Small details, better flow: Phone tabs follow desktop order, landscape layouts show the session title, keyboard controls keep their height, and worktree safety sweeps skip unchanged workspaces.
Phone updates: Updating Orca on the computer serving your phone also updates the phone’s served interface. Persistent terminal drafts additionally require an updated mobile shell.
- Native chat (experimental): Update paired and SSH hosts alongside Orca to get the latest chat fixes. Exact Codex skill-file selection is available on desktop with a supporting host; phone selections and older hosts retain plain-text skill names. Send a skill as a new message for Codex to apply it at the start of a turn.
- Headless dictation: Save the OpenAI key on the host doing the transcription with orca speech openai-key set (reads the key from stdin). Installed-app orca serve hosts on Linux and macOS can also use the bundled on-device recognizer; Windows, managed SSH and WSL servers use cloud models.
- CLI launch choice: Explicit --surface choices require an updated execution host. Omitting the option keeps your existing defaults.
Native chat (experimental)
*Pick the skills Codex actually loaded, return to conversations with confidence, and keep your chat history and attachments intact.*
- Use Codex’s own loaded-skill catalog in chat; desktop selections identify the exact skill file, including when names overlap
- Reopen Codex chats after undo and continue with the correct conversation history
- Keep Claude’s rewound context intact even after rolling back Orca
- Show prompts sent mid-turn and ! commands where Claude actually received them
- Keep screenshots dragged into a chat available for the lifetime of that chat
- Retry failed chat names, show naming errors on the tab hover card, and offer Regenerate name
- Keep resumed Claude chats ready to receive messages after settings updates
- Show Working only while Claude, Pi or ACP is handling work, while keeping Claude chat workers running
- Show sleeping native-chat workspaces as asleep and hide them when the sidebar filter calls for it
- Tie finished notifications to the correct hook-driven turn
- Clarify how to continue conversations between chat and terminal agents
Phone
*Move between workspaces without losing your draft, work on Markdown without an open desktop window, and enjoy a more consistent interface.*
- Open a worktree on the tab currently shown on desktop
- List session tabs in the same order as the desktop tab bar
- Keep unsent buffered terminal commands when leaving and reopening a workspace
- Create and edit notes on headless hosts
- Read and save Markdown tabs without an open desktop window, with conflict checks that protect unsaved desktop edits
- Keep a Markdown save on its original host if the workspace moves while saving
- Open relative file links from Markdown
- Display embedded images in Markdown previews
- Refresh staged files when returning from review
- Show the session title beside tabs when the phone is in landscape
- Blend the status-bar area into the workspace header
- Match the home-indicator area to the terminal input panel
- Preserve live terminal palettes when the selected theme has not changed
- Keep Claude chats intact after renaming their pane
- Show the bundled whale icon on DeepSeek Build tabs
- Keep the keyboard accessory row at a stable height when the dismiss button appears
- Keep dictation controls in sync with the host’s settings
- Simplify chat by removing the Tools toggle and its open-everything mode
Voice & agent launches
*Dictate from your phone through a headless server, and choose chat or terminal for an individual CLI launch.*
- Restore voice dictation on headless orca serve hosts, with cloud models on managed SSH, WSL and Windows servers
- Configure a headless host’s OpenAI dictation key with orca speech openai-key status, set and clear
- Choose --surface chat or --surface terminal for orca agent launch and agent-backed orca worktree create
Editor, files & performance
*Protect unsaved work across tabs and workspaces, make new Markdown documents immediately editable, and reduce background activity.*
- Open new, unstaged Markdown files from Source Control in the rich editor
- Pause autosave across workspaces during Source Control Discard, and prevent read-only Markdown or CSV tabs from overwriting unsaved edits
- Avoid an unnecessary reload of remote files after each restart
- Prevent restored-tab disk checks from looping or reporting false conflicts
- Skip unchanged worktrees during background safety sweeps
- Apply custom tab shortcuts immediately after switching worktrees with the keyboard
Terminals, SSH & remote servers
*Reconnect to surviving sessions, handle large SSH configurations, and keep remote updates and browser logins dependable.*
- Start agent terminals at their first real size without the previous 12-frame wait
- Attach to the successful connection when terminal reconnect attempts overlap
- Reconnect hidden terminal tabs to sessions that survived a restart
- Prevent a saved terminal folder on an unavailable network drive from freezing the window
- Keep mobile terminal snapshots aligned after removing terminal queries
- Keep the SSH Hosts list responsive and searchable with configurations containing 13,000 hosts
- Use the same bounded, searchable picker across host lists so large SSH configurations remain usable throughout Orca
- Preserve in-app browser logins when a WSL or managed SSH host pairs again
- Replace stale terminal daemons after they drain on Linux and WSL
- Restart the macOS serve supervisor from the updated app
- Prepare the macOS supervisor’s code copy in one step
- Prevent sidebar view settings from blocking SSH host migration
- Refuse new terminal creation while a server update is stopping the server
- Give Windows process-tree cleanup time to finish rather than leaving grandchildren behind
- Put sharing first in Remote Orca Servers settings
History, projects & source control
*Find conversations across machines more easily, and keep project actions tied to the host that owns them.*
- Keep scoped Session History working with very large transcript collections
- Give history searches through SSH-connected Orca servers the full all-hosts scan budget
- Include sessions saved under a symlinked workspace’s real path in Workspace history
- Label the source host when history search results span multiple machines
- Open PR cards, rows and dialogs on the host that returned the item when projects share a path
- Keep GitLab items and project dialogs on their owning host
- Save issue-source changes to the selected project row
- Use the caller’s host for GitHub routing and task filters
- Separate work-item cache entries by project row and host
- Find registered projects by ID, path and host during refreshes
- Clear repository cache entries without evicting another live host’s project
- Refuse ambiguous legacy automations instead of guessing which host should run them
- Reject workspace parents that would create a nesting loop, including before the worktree cache is loaded
- Fetch PR conflict-preview base branches through the shared fetch controller
Tests, builds & maintenance
*Faster release builds, broader platform coverage, dependency checks and continued editor cleanup. The layout-owner work below remains behind disabled build switches and is not enabled in this release.*
- ci(wsl): run the WSL orcad lane on Debian 12 and Fedora 41 too
- Refactor AGENTS.md for clarity and conciseness
- test(skills): synchronize Windows rename contention
- chore: remove CLAUDE.md
- docs: load Git guidance on demand [skip ci]
- docs: slim test agent instructions
- docs: remove redundant max-lines agent instructions [skip ci]
- ci: stop running WSL host tests for UI-only changes
- Update AGENTS.md with Useful Commands section
- Editor tab state is written to its buffer record, not copied into it afterwards (phase 1a)
- docs: clarify first-class platform, remote, and mobile priorities
- test(daemon): run the stalled-reader backpressure test over a Unix socket, not TCP loopback
- refactor(protocol): each area owns its published runtime capability list
- Native chat: remove unused journalCheckpoint and setConversationCommand
- Update AGENTS.md
- build(cli): typecheck the CLI by following its imports, not a hand list
- Format AGENTS.md so main's formatting check passes
- refactor(wsl-hosts): add flow in wsl-host-registration; liveness split into state, evidence and monitor
- docs: add test anti-pattern reference
- Add the rules that decide which editor tabs are the same file (phase 1b-1, unused)
- Speed up adhoc releases with shared JavaScript and Blacksmith runners
- Close prompt, Discard, save flush and restart save each decided in one place per buffer record (phase 1b-2, no behaviour change)
- fix(ci): use one Zod identity in the E2E typecheck
- Overlap adhoc release gates and cache qualified server templates
- fix(deps): root and mobile resolve one zod, and CI fails if they drift
- Overlap native qualification setup with the mobile bundle build
- Batch macOS code signing for adhoc releases
- docs(orca-cli): teach agents cross-project parents and re-parenting
- style: format a test file so main passes the formatting check
- test(claude): isolate real CLI fixtures and cover chat option requests
- Carry batched macOS signing and qualified-template caching into production
- test(vitest): derive the Node SQLite test list from imports
- ci: one list for Windows boundary tests and one step for ratchets
- Build adhoc Mac architectures in parallel
- fix(release): avoid API rate limits waiting for the mobile bundle
<details> <summary>Layout groundwork (disabled)</summary>
- Layout-owner build: main answers terminal questions from its own layout (A1, dark)
- A CLI or phone file on a layout-owner server opens in the tab group a paired desktop shows (switch-on builds only)
- Layout-owner build: a CLI send, wait or read starts a saved pane that has no terminal yet (dark)
- The window shows tab, title, move and divider changes only from main's update, never drawing them itself (dark, layout-owner build only)
- Layout-owner build: phones see main's terminal and editor rows (A2, dark)
- A paired desktop shows the held-terminal banner and Reopen for a server's held terminals (switch-on builds only)
- Pin why main's pane list republish waits for a microtask (switch-on builds only)
- test(layout): pin the layout-owner save format for downgrade, and keep main's touched-records save with an exhaustive guard (dark, layout-owner build only)
- Layout groundwork (switched off): main starts every split and new pane, the window only attaches
- fix(runtime): a server with no window answers its first terminal create, not 'handle stale' (switch-on builds only)
- Layout-owner build: main shows live terminals that lost their tab, at the same moments the window did (dark)
</details>
- Source
- GitHub releases
- Last checked
Similar apps
- Bloom

BloomRun Claude Code and Codex in parallel worktrees, from one window.Free - Codex

CodexOpenAI's coding agent, now built into the ChatGPT desktop app.Freemium - Conductor

ConductorRuns several coding agents in parallel on local workspaces.Freemium - Multica

MulticaAn issue board where AI coding agents claim work, run it, and report back.Freemium - Claude Code

Claude CodeAnthropic's agentic coding tool for the terminal, IDE, desktop, and web.Paid - OrcaQ

OrcaQThe open source Next Generation database clientFree - Cursor

CursorAn AI code editor where agents write, review and merge the changes.Freemium - cmux

cmuxA terminal built for running many coding agents at once.Freemium




