每天一个开源项目#67 Orca:4.3万星的并行 AI 编程控制台
Trending 排名:#11 / 18|快照日期:2026-08-12|Stars:43,176(API 补充核验)|Forks:3,015|主语言:TypeScript|License:MIT|仓库:github.com/stablyai/or...
选择说明:今日热榜中 rank #1cathrynlavery/diagram-design是高质量 Agent Skill,但产品层偏设计素材与提示协议;semantica-agi/semantica、vitali87/code-graph-rag、PrimeIntellect-ai/prime-agent已在历史报告中作为主角分析过。本期选择未重复覆盖、工程复杂度更高、且改变 AI 编程协作边界的stablyai/orca。
📋 项目概览
| 项目 | 内容 |
|---|---|
| 项目名 | Orca |
| 仓库 | stablyai/orca |
| 一句话 | 一个把 Claude Code、Codex、OpenCode、Pi 等 CLI Agent 放进并行 Git worktree、远程运行时和移动协作面板里的 AI 编程控制台。 |
| Stars | 43,176(2026-08-12 API 补充核验;Trending 快照仅保留排名列表) |
| Forks | 3,015 |
| Open Issues / PRs | GitHub open_issues_count:3,588;搜索拆分:Issues 1,726、PRs 1,862 |
| 语言 | GitHub 主语言 TypeScript;Linguist:TypeScript 约 96.9%、JavaScript 2.6%,另含 Swift、Kotlin、C#、Python、Shell 等平台适配代码 |
| License | MIT |
| 最新 Release | v1.4.180,发布于 2026-08-11;默认分支 package.json 版本为 1.4.178-rc.2,两者存在正常发布窗口差异 |
| 支持 Agent | README 列出 Claude Code、Codex、OpenCode、Pi、Cursor、Grok、MiMo Code、Hermes Agent、Goose、Qwen Code 等 CLI Agent;本质是"任何能跑在终端里的 Agent" |
🔥 为什么值得关注
过去半年 AI 编程工具的主战场,已经从"单个 Agent 会不会写代码"转向"一个人如何同时管理多个 Agent 的长期工作"。真实开发里,我们经常想把同一个需求分给 Claude Code、Codex、OpenCode 跑不同方案,或者让一个 Agent 修 Bug、另一个写测试、第三个做评审。问题是:这些 Agent 都是终端程序,彼此的 Git 分支、上下文、日志、成本、状态、远程机器和 UI 操作能力很快会乱成一团。
Orca 的核心价值就在这里:它不是再造一个模型,也不是简单包一层聊天窗口,而是把 Git worktree 作为并行工作单元 ,把 终端 Agent 作为可编排进程,再用 Electron 桌面、Web/远程 runtime、移动 companion、GitHub/Linear 任务面板和 CLI 控制面串起来。它试图回答一个更工程化的问题:当 Agent 变成"开发团队里的多个后台工人"后,人类如何可靠地分派、观察、接管、比较和合并它们?
从源码看,Orca 的热度不只是 README 动图带来的。浅克隆核验显示仓库有 13,309 个 tracked files,其中 src/cli 167 个文件、src/main/runtime 523 个文件、src/shared 1,234 个文件、src/renderer/src/runtime 143 个文件、mobile 1,217 个文件、tests 477 个文件;package.json 暴露了大量 typecheck、vitest、Playwright E2E、远程 SSH、终端性能和发布构建脚本。这说明它已经接近"Agent IDE / Agent ADE"的工程体量,而不是一个周末脚本。
🏗️ 核心特性
-
并行 Worktree:一个需求,多路 Agent 同时跑
Orca 把每个任务放进独立 Git worktree,避免多个 Agent 在同一目录互相覆盖文件。源码中的
worktree.create路径会传递 repo、name、baseBranch、任务关联、Agent、startupDraft、setupDecision 等上下文;前端还有 pending creation 状态机,允许 worktree 创建和 Agent 启动在后台继续,而不是阻塞 UI。bash# 已按 src/cli/specs/core.ts 核验:worktree create 支持 --name、--repo、--agent、--prompt、--json orca worktree create --repo id:<repoId> \ --name agent-task \ --agent codex \ --prompt "实现登录态续期并补充测试" \ --json维度 传统单终端 Agent Orca 的处理方式 并行实验 手动复制目录或切分支,容易冲突 每个任务独立 Git worktree 结果比较 靠终端历史和人工记忆 worktree、diff、任务上下文集中管理 Agent 启动 手动打开终端、输入命令 --agent+--prompt可创建后自动启动任务关系 分支名和备注散落 支持 parent worktree、issue、Linear issue 等元数据 -
支持"任何 CLI Agent",不锁模型和订阅
README 明确定位为:只要 Agent 能在终端运行,就能在 Orca 中运行。它把 Claude Code、Codex、OpenCode、Pi、MiMo Code、Hermes Agent 等都当作终端进程和会话来管理,而不是把某个模型 API 固化进产品。
bash# 已按 src/cli/specs/core.ts 核验:terminal create 支持 --worktree、--command、--title、--focus、--json orca terminal create \ --worktree active \ --title "CODEX" \ --command "codex" \ --json这个设计的实用性很强:团队可以继续使用自己的 Claude Max、Codex、MiMo 或其他 CLI 订阅,Orca 负责 workspace、终端、任务、远程 runtime 和 UI 自动化控制面。
-
远程 Runtime:本地 UI + 远程算力/文件/终端
Orca 支持
orca serve在 Linux 服务器或 VPS 上启动 runtime。文档docs/reference/headless-linux-server.md显示,headless 模式会在无DISPLAY时使用 Xvfb,支持通过--pairing-address发布 Tailscale、局域网或反向代理地址,并可输出 JSON ready contract。bash# 已按 src/cli/specs/serve.ts 与 headless 文档核验:serve 支持 --port、--pairing-address、--json LIBGL_ALWAYS_SOFTWARE=1 /opt/orca/orca-linux.AppImage serve \ --port 6768 \ --pairing-address 100.64.1.20 \ --json远程连接不是裸 HTTP 调用。
src/shared/remote-runtime-client.ts显示客户端使用 WebSocket、tweetnacl风格 E2EE handshake、deviceToken、runtime protocol capability 检查、请求超时、二进制帧限制和 backpressure queue;src/renderer/src/web/web-runtime-client.ts还实现了浏览器端连接状态、心跳、重连、订阅 replay 和files.watch共享连接。 -
移动 Companion:Agent 跑完后,人不必守在电脑前
README 的 Mobile Companion 功能强调:手机端可监控 Agent、收到完成通知并发送 follow-up。源码层面,仓库包含
mobile目录 1,217 个 tracked files,并在 README 中提供 iOS App Store、TestFlight 与 Android APK 下载入口。这类功能看似"产品化",但对长时间 Agent 工作流非常关键:Agent 编译、跑测试、修复失败往往要几十分钟。移动端不是核心算法,却改变了人类监督 Agent 的时间边界。
-
浏览器与桌面 Computer Use:把 Agent 从代码仓库带到真实 UI
Orca CLI 的 browser 基础命令包括
snapshot、screenshot、click、fill、goto、wait、tab create等;computer-use 命令包括computer get-app-state、computer click、computer type-text、computer paste-text、computer set-value等。它把网页和桌面 UI 操作也接到同一套 worktree / session 控制面里。bash# 已按 src/cli/specs/browser-basic.ts 核验 orca goto --url https://example.com --worktree active --json orca snapshot --worktree active --json orca fill --element e12 --value "hello" --worktree active --jsonbash# 已按 src/cli/specs/computer.ts 核验 orca computer get-app-state --app "Chrome" --json orca computer click --app "Chrome" --element-index 3 --json orca computer type-text --app "Chrome" --text "approve" --json -
工程验证面很重:测试、E2E、性能与可靠性脚本齐全
package.json暴露的脚本不是只有test和build。它包含typecheck、lint、check:reliability-gates、check:max-lines-ratchet、test:e2e、test:e2e:ssh-docker-*、test:e2e:terminal-perf、bench:*、verify:*等大量质量门禁。浅克隆统计中 test-like 文件 5,747 个(注意:这是按文件名包含 test/spec 的启发式计数,包含源树中的测试与脚本,不等同于 CI 实际执行用例数)。
🔬 技术架构深度解析
1. 当前实现的控制面
text
用户 / Agent / CLI
│
├─ Desktop Electron UI
│ ├─ Worktree board / diff / editor / terminal panes
│ ├─ GitHub / Linear / review surfaces
│ └─ Browser + Computer Use panels
│
├─ Orca CLI
│ ├─ worktree create/list/show/rm
│ ├─ terminal create/read/send/wait
│ ├─ browser snapshot/click/fill/goto
│ ├─ computer get-app-state/click/type-text
│ └─ environment add/list/show/rm
│
└─ Runtime RPC client
├─ local window.api runtime call
└─ remote runtime via E2EE WebSocket
│
▼
Runtime RPC method registry
├─ repo / worktree / git
├─ terminal / terminal orphan daemon
├─ browser / screencast / files.watch
├─ orchestration / agent session
├─ ssh / pairing / environment
└─ notifications / account / plugin / skills
源码 src/main/runtime/rpc/methods/index.ts 把 runtime 方法按模块集中注册:STATUS_METHODS、REPO_METHODS、WORKTREE_METHODS、TERMINAL_METHODS、BROWSER_*、ORCHESTRATION_METHODS、COMPUTER_METHODS、SSH_METHODS、PAIRING_METHODS 等。这种显式清单很适合审计安全边界:哪些能力可远程调用,一眼能定位入口。
2. Worktree 创建不是单个 git 命令,而是任务生命周期
text
输入任务 / Issue / Prompt
│
▼
preflight:repo、base branch、setup policy、parent lineage、Agent trust
│
▼
worktree.create RPC
│
├─ 创建 Git worktree / 注册 Orca metadata
├─ 关联 issue / PR / Linear / parent worktree
├─ 可选执行 repo setup hooks
└─ 可选生成 startup terminal / startupDraft
│
▼
renderer pending creation 状态机
│
├─ 用户留在创建面板:完成后自动切入新 worktree
└─ 用户离开:后台 seed terminal,不强行抢焦点
│
▼
Agent terminal 启动、发送首条 prompt、后续 read/send/wait 接管
src/renderer/src/lib/worktree-creation-flow.ts 的注释非常值得看:它明确处理"用户在创建中途离开""后台创建完成后不要把用户强行拉回""Agent trust 预写失败不能 strand worktree""远程主机应拥有 task-draft startup"等细节。这些都不是 demo 级功能,而是长时间 Agent workflow 真正会遇到的边界条件。
3. 本地与远程 runtime 的权威边界
Orca 不是一个把所有文件塞进云端 VFS 的系统。更准确的说法是:
| 层 | 权威状态 | 说明 |
|---|---|---|
| 代码内容 | Git checkout / Git worktree | worktree 是并行任务隔离的主要边界 |
| Orca 元数据 | 本地或 remote runtime 的应用状态 | repo、worktree、任务链接、session、UI 状态等由 Orca 管理 |
| 终端进程 | runtime 所在机器 | 本地桌面或远程 Linux server/VPS 负责真正执行 Agent CLI |
| 远程通信 | E2EE WebSocket + deviceToken | 客户端通过 pairing offer、public key、device token 与 capability check 访问 runtime |
| 移动端 | companion 客户端 | 主要用于通知、观察、发送 follow-up,而不是替代 runtime |
src/renderer/src/runtime/runtime-rpc-client.ts 会在调用非 status.get 方法前进行 runtime compatibility check,并缓存 60 秒能力状态;当 observed runtimeId 变化时会清理旧 verdict,避免把旧 runtime 的能力判断套到新连接上。这个实现细节说明项目确实在处理远程 runtime 版本漂移,而不是只做"能连上就行"。
4. 远程 WebSocket 状态机
text
connect
│
▼
e2ee_hello(publicKey)
│
▼
e2ee_ready
│
▼
e2ee_auth(deviceToken, clientCapabilities)
│
▼
authenticated runtime session
│
├─ one-shot RPC: method + params + timeout
├─ streaming subscription: terminal / browser / files.watch
├─ binary frames: screencast / terminal / file-like streams
├─ heartbeat: detect half-open browser WebSocket
└─ replay: reconnect后重建 files.watch 等订阅
这里的重点不是"用了 WebSocket",而是状态机把常见故障都显式化:握手超时、runtime timeout、连接关闭原因、浏览器半开连接、共享 file watch 防止连接数耗尽、订阅 teardown retry、二进制帧大小限制。这些是远程 Agent workspace 能不能长期稳定运行的关键。
5. 代码规模与可验证性
| 指标 | 浅克隆核验结果 |
|---|---|
| inspected commit | 36d45af |
| tracked files | 13,309 |
src/cli 文件数 |
167 |
src/main/runtime 文件数 |
523 |
src/shared 文件数 |
1,234 |
src/renderer/src/runtime 文件数 |
143 |
src/renderer/src/web 文件数 |
23 |
mobile 文件数 |
1,217 |
tests 目录文件数 |
477 |
| test-like 文件数 | 5,747(启发式,包含文件名含 test/spec 的源码、脚本与测试) |
| 本地源码行数估计 | .ts 约 2,129,942 行、.tsx 约 433,039 行、.json 约 97,494 行;该估计排除了二进制但未严格剔除生成/fixture 文件,只能作为代码体量参考 |
这组数据的意义是:Orca 的复杂度已经覆盖桌面端、CLI、runtime、远程通信、移动端、原生平台和测试基础设施。相应地,试用门槛也会更高:它不是一个 pip install 后几行代码就能嵌进项目的库,而更像一个完整开发环境。
6. 成熟度边界:权限、隔离和性能不能过度推断
需要明确几个边界:
- worktree 隔离不是安全沙箱:Git worktree 能隔离文件修改和分支,但 Agent 进程仍然在对应机器上拥有终端权限。真正的网络、文件、凭据、进程隔离仍需 OS、容器、远程主机策略和团队权限系统配合。
- 远程 runtime 选择是路由,不是授权本身 :
--environment、pairing code、deviceToken 能控制连接和目标 runtime,但团队级权限、secret、网络出口、代码签名仍要另行治理。 - README 的产品动图不等于所有场景都已验证:仓库测试脚本非常丰富,但完整 E2E 依赖 Electron、Playwright、SSH/Docker、移动端和平台权限。本文没有执行完整构建和 E2E,只做源码、CLI spec、API、文档和静态统计核验。
- 版本面存在发布窗口差异 :GitHub Release 最新为
v1.4.180,而浅克隆默认分支package.json是1.4.178-rc.2。这不一定是问题,但使用时应以安装包、源码分支和 CLI--help的实际版本为准。
📖 README 核心内容摘要
README 把 Orca 描述为 "The AI Orchestrator for 100x builders",核心句是:Run Codex, ClaudeCode, OpenCode or Pi side-by-side --- each in its own worktree, tracked in one place。也就是说,它的产品哲学不是替代已有 Agent,而是给它们提供一个统一的并行运行环境。
README 列出的主功能包括:
| README 功能 | 技术含义 | 本文核验结果 |
|---|---|---|
| Mobile Companion | 手机监控 Agent、收通知、发 follow-up | README 有 iOS/TestFlight/Android APK;源码有 mobile 目录 |
| Parallel Worktrees | 同一任务多 Agent 分支并行 | CLI 与 renderer 源码均有 worktree create/list/metadata 流程 |
| Terminal Splits | 多终端、多 pane、滚动历史 | CLI 有 terminal list/read/send/wait/create;源码含 terminal daemon 与 E2E/性能脚本 |
| Design Mode | 点击 Chromium UI 元素,把 HTML/CSS/截图送进 Agent | README 声明;browser/computer CLI 体现了 UI 操作控制面 |
| GitHub & Linear Native | PR/Issue/项目管理进 UI | CLI 和 worktree create 参数中有 issue、Linear、PR 关联 |
| SSH Worktrees | 在远程大机器运行 Agent | README 声明,runtime/remote client/serve 文档提供底层连接模型 |
| Annotate AI Diffs | 在 diff 行评论并回传 Agent | README 声明;源码有 review/diff 相关模块,但本文未做交互式验证 |
| Orca CLI | Agent 也能脚本化控制 Orca | src/cli/specs 明确列出命令与参数 |
README 的安装入口包括桌面下载、Homebrew Cask、Arch AUR、移动 App,以及 headless orca serve。对开发者而言,更值得关注的是它没有把 Agent 能力封闭在 UI 里:CLI spec 让 Agent 可以反过来驱动 Orca,形成"Agent 管理 Agent"的二级控制面。
🚀 快速上手
方式一:直接安装桌面版
bash
# 已按 README 与安装段落核验:Homebrew Cask 安装命令存在于 README
brew install --cask stablyai/orca/orca
也可以从 GitHub Release 下载 macOS Apple Silicon、macOS Intel、Windows exe、Linux AppImage。由于不同平台包名和签名策略会变化,实际发布时建议以 GitHub Releases 最新资产为准。
方式二:把现有项目加入 Orca
bash
# 已按 src/cli/specs/core.ts 核验
orca repo add --path /path/to/your/repo --json
orca repo list --json
方式三:创建并行 Agent worktree
bash
# 已按 src/cli/specs/core.ts 核验
orca worktree create \
--name auth-refresh-codex \
--agent codex \
--prompt "实现登录 token 自动续期,补齐单元测试和错误处理" \
--json
如果只是想在当前 worktree 再开一个 Agent 终端,不要新建 worktree:
bash
# 已按 src/cli/specs/core.ts 核验
orca terminal create --worktree active --command "codex" --json
orca terminal read --worktree active --limit 1000 --json
方式四:远程服务器运行 runtime
bash
# 已按 src/cli/specs/serve.ts 与 docs/reference/headless-linux-server.md 核验
LIBGL_ALWAYS_SOFTWARE=1 /opt/orca/orca-linux.AppImage serve \
--port 6768 \
--pairing-address 100.64.1.20 \
--json
--pairing-address 只改变客户端看到的地址,不改变 listener bind 地址。文档建议使用 LAN、Tailscale、SSH forward 或反向代理地址;通配地址如 0.0.0.0 不能作为 advertised address。
最小工作流示例
bash
# 1. 查看运行状态
orca status --json
# 2. 创建一个独立 worktree 并启动 Agent
orca worktree create --name fix-login --agent codex --prompt "定位登录失败并修复" --json
# 3. 读取当前终端输出
orca terminal read --worktree active --limit 1000 --json
# 4. 给 Agent 发送 follow-up
orca terminal send --text "请补充失败用例并运行测试" --enter --json
上述命令均来自 src/cli/specs/core.ts 的已核验 CLI spec。是否能端到端执行,取决于本机是否安装并运行 Orca runtime、目标 Agent CLI 是否已登录、项目是否已导入、平台权限是否允许终端和 UI 自动化。
📊 增长速度与社区热度
Star 增长与社区指标
Trending 快照只保留了排名列表,未保留 stablyai/orca 的当日新增 Stars,因此本文不编造"今日新增"。以下为 2026-08-12 的 GitHub API 补充核验值:
| 指标 | 数值 | 说明 |
|---|---|---|
| Stars | 43,176 | API 补充核验,非原始 Trending 快照字段 |
| Forks | 3,015 | API 补充核验 |
| Watchers / Subscribers | 97 | API 补充核验 |
| GitHub open_issues_count | 3,588 | GitHub 该字段合并 Issues 与 PRs |
| Open Issues | 1,726 | GitHub Search 拆分估计 |
| Open PRs | 1,862 | GitHub Search 拆分估计 |
| 仓库创建时间 | 2026-03-17 | API 核验 |
| 生命周期 Stars/天 | 约 292.0 | 43,173 / 147.9 天 的历史基线,不代表当天增长 |
| Top contributors | nwparker 2844、AmethystLiang 1642、brennanb2025 1226、Jinwoo-H 936、github-actions[bot] 710 |
API contributors 前 5 |
| 最近 Release | v1.4.180,2026-08-11 |
Release API 核验 |
社区热度很高,但也要看到风险信号:Open PR 数量达到 1,862,说明项目迭代和外部关注极强,同时也意味着维护队列压力很大。对于团队试点,建议先验证自己的核心场景:本地 worktree 并行、远程 runtime、目标 Agent CLI 登录、GitHub/Linear 关联、权限与日志策略,而不是直接把它当成稳定生产基础设施全面铺开。
今日 Trending 完整榜单
| Rank | Repository |
|---|---|
| 1 | cathrynlavery/diagram-design |
| 2 | msitarzewski/agency-agents |
| 3 | semantica-agi/semantica |
| 4 | nvm-sh/nvm |
| 5 | addyosmani/agent-skills |
| 6 | ZhuLinsen/daily_stock_analysis |
| 7 | vitali87/code-graph-rag |
| 8 | anthropics/skills |
| 9 | 3b1b/manim |
| 10 | HKUDS/DeepTutor |
| 11 | stablyai/orca |
| 12 | paperclipai/paperclip |
| 13 | huggingface/transformers |
| 14 | harveyai/harvey-labs |
| 15 | jaywcjlove/awesome-mac |
| 16 | calesthio/OpenMontage |
| 17 | practical-tutorials/project-based-learning |
| 18 | PrimeIntellect-ai/prime-agent |
🎯 适用场景
| 场景 | 为什么适合 Orca | 注意事项 |
|---|---|---|
| 多 Agent 方案对比 | 同一任务可在多个 worktree 并行跑 Claude Code、Codex、OpenCode 等 | 合并前仍需人工 review、测试和冲突处理 |
| 长时间后台开发任务 | 终端会话、通知、移动 companion 能降低"守电脑"成本 | Agent 失败恢复和成本控制需要团队流程配合 |
| 远程大机器开发 | orca serve 支持 VPS/远程 Linux runtime,本地 UI 可连接远端执行 |
远程权限、secret、网络出口和系统隔离必须单独治理 |
| Issue/PR 驱动开发 | worktree create 可关联 issue、PR、Linear issue、parent worktree | 对 GitHub/Linear 权限和组织流程有依赖 |
| UI 自动化与端到端修复 | browser/computer 命令可把网页、桌面操作纳入 Agent 工作流 | 平台权限、可访问性树和截图能力会影响稳定性 |
| 团队 Agent ADE 试点 | 适合探索"一个人管理多个 Agent 工人"的新协作模式 | 不建议一开始承载关键生产变更,先从低风险仓库试点 |
💡 总结
Orca 值得关注的地方,不在于它又做了一个 AI 聊天窗口,而在于它把 AI 编程从"单 Agent 单终端"推进到"多 Agent、多 worktree、多 runtime、多设备监督"的工程组织问题。它的源码体量、CLI spec、runtime RPC、远程 E2EE WebSocket、terminal/worktree 状态机和测试脚本都说明:这是一个认真做 Agent 开发环境的项目。
不过,Orca 也不是银弹。Git worktree 解决的是代码修改隔离,不是安全沙箱;远程 runtime 解决的是算力和位置,不自动解决权限治理;移动 companion 解决的是监督便利,不等于 Agent 自治可靠。更合理的采用方式是:把 Orca 当成一个高潜力的并行 Agent 控制台,在真实项目中先验证"多方案并行开发 + 人工评审合并 + 可追踪日志"的闭环,再逐步扩大到远程 runtime、移动协作和团队流程。
如果你已经在同时使用 Claude Code、Codex、MiMo Code 或其他 CLI Agent,Orca 的价值会非常直观:它把这些离散的终端工人收编进一个可观察、可切换、可脚本化的工作台。