* fix(daemon): defer startup-command flush past shell raw-mode switch When launching an agent (e.g. `claude`) through the quick-launch menu, the command name appeared twice in the terminal — once from kernel echo, once from readline's prompt redraw. The daemon session was flushing its pre-ready stdin queue the moment the OSC 777 shell-ready marker arrived, but that marker fires from precmd_functions / PROMPT_COMMAND — before the shell draws its prompt and before zle/readline flips the PTY into raw mode. Writing while ECHO was still on produced the visible duplicate. Mirror the gating already used by the non-daemon path (local-pty-shell-ready.ts::writeStartupCommandWhenShellReady): wait for the next data chunk after the marker (the prompt draw) plus a short 30ms delay, with a 50ms wall-clock fallback for the case where the prompt arrives in the same chunk as the marker. This regression became visible after #1025 made the shell-ready wrappers persist reliably — previously the marker was often missed and the 15s fallback path fired long after the shell was already in raw mode, masking the race. * refactor(daemon): extract PostReadyFlushGate out of Session Factor the post-ready flush gating out of Session into its own class in post-ready-flush-gate.ts. Session's only responsibility is now to arm() the gate on shell-ready, notifyData() on subsequent PTY data, and clear() on teardown. Removes the max-lines oxlint-disable added in the previous commit and puts the timing behavior behind focused unit tests. No behavior change — kept as a separate refactor commit from the behavior fix for reviewability. * fix(daemon): keep queueing writes while post-ready flush gate is pending Codex review caught an ordering regression: once transitionToReady() sets _shellState to 'ready', any Session.write() that arrives during the 30–50ms gate window was being written directly to the subprocess, bypassing the still-unflushed preReadyStdinQueue. That let late input race ahead of the buffered startup command. Expose PostReadyFlushGate.isPending and continue queuing while the gate is armed so queued writes drain in their original order before any fresh input reaches the subprocess. |
||
|---|---|---|
| .agents/skills | ||
| .claude/skills | ||
| .github | ||
| .husky | ||
| config | ||
| docs | ||
| patches | ||
| resources | ||
| scripts | ||
| skills/orca-cli | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .env.e2e | ||
| .gitignore | ||
| .npmrc | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| components.json | ||
| dev-app-update.yml | ||
| electron.vite.config.ts | ||
| orca.yaml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| skills-lock.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||
README.md
Orca
The AI Orchestrator for 100x builders.
Run Claude Code, Codex, or OpenCode side-by-side across repos — each in its own worktree, tracked in one place.
Available for macOS, Windows, and Linux.
Supported Agents
Orca supports any CLI agent (not just this list).
Claude Code
Codex
Gemini
Pi
Hermes Agent
OpenCode
Goose
Amp
Auggie
Charm
Cline
Codebuff
Continue
Cursor
Droid
GitHub Copilot
Kilocode
Kimi
Kiro
Mistral Vibe
Qwen Code
Rovo Dev
Features
- No login required — Bring your own Claude Code or Codex subscription.
- Worktree-native — Every feature gets its own worktree. No stashing, no branch juggling. Spin up and switch instantly.
- Multi-agent terminals — Run multiple AI agents side-by-side in tabs and panes. See which ones are active at a glance.
- Built-in source control — Review AI-generated diffs, make quick edits, and commit without leaving Orca.
- GitHub integration — PRs, issues, and Actions checks linked to each worktree automatically.
- Notifications — Know when an agent finishes or needs attention. Mark threads unread to come back later.
Install
- Download from onOrca.dev
- Or download the latest binaries via the GitHub Releases page.
[New] Hot Swap Codex Accounts
Multiple Codex accounts? Switch in one click.
If you run multiple Codex accounts to get the best token deal, Orca lets you hot-swap between them instantly — no re-login, no config files. Just pick an account and keep building.
[New] Per Worktree Browser & Design Mode
See your app. Click any element. Drop it into the chat.
Orca ships with a built-in browser right inside your worktree. Preview your app as you build, then switch to Design Mode — click any UI element and it lands directly in your AI chat as context. No screenshots, no copy-pasting selectors. Just point at what you want to change and tell the agent what to do.
[New] Introducing the Orca CLI
Agent orchestration from your terminal.
Let your AI agent control your IDE. Use AI to add projects to your IDE, spin up worktrees, and update the current worktree's comment with meaningful progress checkpoints directly from the terminal. Ships with the Orca IDE (install under Settings).
npx skills add https://github.com/stablyai/orca --skill orca-cli
Community & Support
- Discord: Join the community on Discord.
- Twitter / X: Follow @orca_build for updates and announcements.
- Feedback & Ideas: We ship fast. Missing something? Request a new feature.
- Show Support: Star this repo to follow along with our daily ships.
Developing
Want to contribute or run locally? See our CONTRIBUTING.md guide.