面向 Agentic Coding 的多智能体桌面编排器。
在隔离的 git worktree 中并行运行多个编码代理,支持本地项目和 SSH 远程项目。
现代编码代理已经足够强大,但同时管理多个代理很快会变得混乱:终端越来越多,分支互相冲突,任务上下文也容易丢失。Yoda 的核心目标很直接:让多个编码代理并行工作,同时保持隔离、可审查、可合并。
每个任务都会创建独立的 git worktree,可以在本地执行,也可以在 SSH 远程机器上执行。代理只在自己的工作区里改代码,你可以并行派发任务、查看 diff、介入会话、运行检查、归档或合并,而不需要在一堆终端和分支之间来回切换。
Yoda 不绑定单一模型或厂商。Claude Code、Codex、OpenCode、Gemini、Amp、Cursor、Copilot 等编码代理 CLI 都可以在同一套编排模型下运行。Linear、GitHub、Jira 等任务也可以直接进入会话,CI/CD 状态会在侧边栏中展示,让“任务 -> 代理 -> 审查 -> 发布”的流程集中在一个桌面应用里。
- 并行 worktree:每个任务运行在独立的
git worktree中,多个代理可以同时工作,不会踩到主工作区。 - 提供商无关:带上你已经在用的编码代理 CLI,按任务选择 Claude Code、Codex、OpenCode、Gemini、Amp、Cursor、Copilot、Cline、Goose、Kimi、Qwen 等。
- SSH 远程开发:添加远程机器后,可以挂载远程项目,并用和本地一致的流程运行代理。
- 从任务到会话:Linear、Jira、GitHub Issues、GitLab、Forgejo、Plain 的 ticket 可以直接作为新会话提示词。
- CI/CD 可见:在 diff 旁边查看 GitHub Actions 和构建状态,必要时直接重新派发代理。
- 审查与归档:把任务标记为待审查,执行归档前命令,然后归档或合并。
- 内置 MCP:按项目配置 Model Context Protocol servers,供支持 MCP 的代理共享使用。
- 本地优先:应用状态保存在本地 SQLite 数据库中。Yoda 自身不会上传你的代码。
- 跨平台:提供 macOS Apple Silicon、macOS Intel、Windows 和 Linux 桌面安装包。
安装包发布在 GitHub Releases,支持 macOS、Windows 和 Linux。
| 平台 | 下载 |
|---|---|
| macOS | Apple Silicon DMG · Intel DMG · Apple Silicon ZIP · Intel ZIP |
| Windows | MSI 安装包 · EXE 安装包 |
| Linux | AppImage · Debian package · RPM package |
Homebrew 提醒:
brew install --cask yoda当前会解析到一个无关且已禁用的 Homebrew cask。在 LovStudio 官方 cask 发布前,请使用上面的 GitHub Releases 安装包。
Yoda 可以通过 SSH/SFTP 连接远程机器,让你在远程代码库上工作,同时保留本地应用里的任务、终端、diff 和归档流程。认证支持 SSH agent、私钥和密码,凭据存储在操作系统钥匙串中。
更多实现细节见 远程开发说明。
Yoda 的提供商系统是可扩展的。如果你使用的 CLI 还不在列表里,可以 提交 issue 或发 PR。
| 提供商 | 安装方式 |
|---|---|
| Amp | npm install -g @sourcegraph/amp@latest |
| Auggie | npm install -g @augmentcode/auggie |
| Autohand Code | npm install -g autohand-cli |
| Charm Crush | npm install -g @charmland/crush |
| Claude Code | curl -fsSL https://claude.ai/install.sh | bash |
| Cline | npm install -g cline |
| Codebuff | npm install -g codebuff |
| Codex | npm install -g @openai/codex |
| Continue | npm i -g @continuedev/cli |
| Cursor | curl https://cursor.com/install -fsS | bash |
| Devin | curl -fsSL https://cli.devin.ai/install.sh | bash |
| Droid (Factory) | curl -fsSL https://app.factory.ai/cli | sh |
| Gemini | npm install -g @google/gemini-cli |
| GitHub Copilot | npm install -g @github/copilot |
| Goose | curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash |
| Kilocode | npm install -g @kilocode/cli |
| Kimi | uv tool install kimi-cli |
| Kiro (AWS) | curl -fsSL https://cli.kiro.dev/install | bash |
| Letta | npm install -g @letta-ai/letta-code |
| Mistral Vibe | curl -LsSf https://mistral.ai/vibe/install.sh | bash |
| OpenCode | npm install -g opencode-ai |
| Pi | npm install -g @mariozechner/pi-coding-agent |
| Qwen Code | npm install -g @qwen-code/qwen-code |
| Rovo Dev | acli rovodev auth login |
Yoda 可以把 ticket、issue 和支持线程直接交给编码代理。
| 工具 | 认证方式 |
|---|---|
| Linear | Linear API key |
| Jira | Site URL + email + Atlassian API token |
| GitHub Issues | OAuth,或 gh auth login |
| GitLab Issues | GitLab URL + PAT with read_api |
| Forgejo Issues | Forgejo URL + API token |
| Plain Threads | Plain API key |
Yoda 是一个 Electron 桌面应用,主要分为三层:
- Main process (
src/main/):管理 SQLite 存储、Drizzle schema、PTY/session 编排、git worktree、SSH 隧道和 provider registry,并向 renderer 暴露类型化 RPC。 - Renderer (
src/renderer/):React + MobX UI,通过 React Query 读数据,通过 RPC 写数据,终端由node-pty和 xterm 前端协作呈现。 - Shared (
src/shared/):两端共享的类型、IPC contract 和编码代理 provider registry。
- 桌面框架:Electron、electron-vite、electron-builder
- 前端:React、MobX、TanStack Query、Radix UI、xterm.js、Tailwind CSS
- 主进程:TypeScript、Drizzle ORM、SQLite、node-pty、ssh2
- 集成:GitHub、Linear、Jira、GitLab、Forgejo、Plain、MCP
- 质量与发布:Vitest、ESLint、Prettier、Changesets、GitHub Actions
欢迎小而聚焦的 PR。开发环境、代码约定和新增 provider 的流程见 Contributing Guide。如果想讨论设计或 provider 需求,也可以加入 Discord。
Yoda 会收集哪些遥测数据?可以关闭吗?
Yoda 只发送匿名、白名单内的事件,例如应用启动/关闭、功能使用名称、应用版本和平台版本。 不会发送代码、文件路径、仓库名、提示词或个人身份信息。
关闭遥测:
- 应用内:设置 -> 通用 -> 隐私与遥测,关闭开关
- 或在启动前设置环境变量:
TELEMETRY_ENABLED=false事件白名单位于
src/shared/telemetry.ts。
我的数据保存在哪里?
Yoda 是本地优先应用。应用状态保存在本地 SQLite 数据库:
macOS: ~/Library/Application Support/yoda/yoda.db Windows: %APPDATA%\yoda\yoda.db Linux: ~/.config/yoda/yoda.db**隐私说明:**Yoda 自身把数据保存在本地。但当你使用 Claude Code、Codex、Qwen 等编码代理时,对应 CLI 可能会把代码和提示词发送到它自己的云服务。每个 provider 都有自己的数据处理和保留政策。
如需重置本地数据库,退出应用后删除该文件即可,下次启动会重新创建。
Yoda 如何隔离多个代理?
每个任务都会获得独立的 git worktree,位于 Yoda 管理的目录下,和你的主工作区分离。代理只会看到自己的 worktree 文件,因此多个任务可以同时修改代码而不互相覆盖。任务完成后,你可以选择合并、cherry-pick 或归档。
如何添加新的 provider?
Yoda 的 provider registry 设计为易扩展。
- 按 Contributing Guide 提交 PR。
- PR 需要包含 provider 名称、CLI 调用方式、认证说明和最小设置步骤。
- provider 信息位于
src/shared/agent-provider-registry.ts,输出分类器位于src/main/core/conversations/impl/agent-event-classifiers/。如果不确定从哪里开始,可以先提交 issue,附上 CLI 链接和常用命令。
Yoda 需要哪些权限?
- 文件系统 / Git:读取和写入你的仓库,并创建用于隔离的 git worktree。
- 网络:供你选择的 provider CLI 使用,以及可选的 GitHub Actions 状态查询。
- 本地数据库:在本机 SQLite 中保存应用状态。
Yoda 自身不会上传你的代码或会话。第三方 CLI 是否上传数据取决于各自的政策。
可以通过 SSH 处理远程项目吗?
可以。Yoda 支持 SSH 远程开发。
设置流程:
- 打开 设置 -> SSH 连接,添加服务器信息。
- 选择认证方式:SSH agent、私钥或密码。
- 添加远程项目,并填写服务器上的项目路径。
要求:
- 能够 SSH 登录远程服务器
- 远程服务器已安装 Git
- 如果使用 SSH agent 认证,需要本地 agent 已加载密钥,可用
ssh-add -l检查参考 远程开发说明 获取更多细节。
Apache-2.0 © General Action, Inc. See LICENSE.md.
