Emdash:让多个AI编程助手并行工作的开发者利器
「本文核心问题:如何使用一个工具同时管理多个AI编程助手,并在本地或远程高效开发?」
在现代软件开发中,AI编程助手已经成为开发者的得力伙伴。但你是否遇到过这样的困扰:想同时使用Claude Code、Codex、Qwen Code等多个AI助手,却不得不在不同终端窗口间来回切换?Emdash正是为了解决这个问题而生。
Emdash是一个与提供商无关的桌面应用程序,它允许你并行运行多个编码AI代理(coding agents),每个代理都隔离在自己的git工作树中。你可以本地运行这些代理,也可以通过SSH在远程机器上执行。我们称之为”代理开发环境”(Agentic Development Environment,简称ADE)。
这个工具目前支持21个CLI代理(而且还在持续增长),包括Claude Code、Qwen Code、Amp和Codex等主流选择。你可以直接将Linear、GitHub或Jira的工单传递给AI代理,审查代码差异、测试更改、创建拉取请求、查看CI/CD检查结果,甚至直接合并代码。
为什么需要并行运行多个AI编程助手?
「核心问题:在实际开发场景中,同时使用多个AI助手能带来什么价值?」
想象这样一个场景:你正在开发一个复杂的微服务架构项目。对于前端组件优化,你觉得Claude Code的理解能力更强;而在数据库查询优化方面,Codex给出的建议往往更精准;至于代码安全审计,你又更信任Qwen Code的判断。
在过去,你需要:
-
打开一个终端,启动Claude Code处理前端问题 -
再开一个终端,运行Codex优化数据库 -
又开一个终端,用Qwen Code做安全检查 -
手动管理不同AI助手的上下文和git状态 -
小心翼翼地避免不同代理之间的代码冲突
Emdash改变了这一切。它为每个AI代理创建独立的git工作树,确保它们互不干扰。你可以同时向三个AI助手分发任务,然后在一个统一的界面中审查它们的工作成果。
更强大的是,Emdash支持通过SSH/SFTP连接远程机器。这意味着你可以在本地管理AI代理,而让它们在实际的生产环境或开发服务器上工作。Emdash支持SSH代理和密钥认证,并将凭据安全地存储在你的操作系统密钥链中。
快速安装:三平台全覆盖
「核心问题:如何在不同操作系统上快速安装并启动Emdash?」
macOS用户
如果你使用的是Apple Silicon芯片的Mac,可以下载ARM64版本的安装包。对于Intel处理器的Mac,则选择x64版本。
更便捷的方式是使用Homebrew:
brew install --cask emdash
这条命令会自动处理所有依赖和配置,是最推荐的安装方式。
Windows用户
Windows用户有两个选择:
-
「安装程序版本」:适合常规安装,会自动创建桌面快捷方式和开始菜单项 -
「便携版本」:无需安装,解压即用,适合在U盘或需要频繁迁移的场景
两个版本都是x64架构,下载后直接运行即可。
Linux用户
Linux发行版用户可以选择:
-
「AppImage」:适用于大多数Linux发行版,赋予执行权限后直接运行 -
「Debian包」:适合Debian、Ubuntu及其衍生系统
# 对于Debian/Ubuntu用户
sudo dpkg -i emdash-x64.deb
sudo apt-get install -f # 如果有依赖问题,运行这条命令

安装完成后,首次启动Emdash会引导你进行基础配置。建议先配置你常用的AI代理,比如先安装Claude Code或GitHub Copilot CLI。
支持的AI编程助手全景图
「核心问题:Emdash支持哪些AI编程助手,如何安装和配置它们?」
Emdash目前支持21个CLI提供商,并且团队在持续添加新的支持。以下是完整的支持列表:
| AI代理 | 安装命令 |
|---|---|
| 「Amp」 | npm install -g @sourcegraph/amp@latest |
| 「Auggie」 | npm install -g @augmentcode/auggie |
| 「Charm」 | 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 |
| 「Droid」 | 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 --python 3.13 kimi-cli |
| 「Kiro」 | curl -fsSL https://cli.kiro.dev/install | bash |
| 「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 |
所有列出的代理都已通过测试并完全支持。如果你发现缺少某个常用的AI助手,可以通过GitHub提交Issue或Pull Request。
实际应用场景:多代理协作工作流
让我分享一个典型的使用场景。假设你接手了一个遗留代码库的重构任务:
「第一步:代码质量评估」
你首先启动Claude Code,让它分析整个代码库的架构问题,识别技术债务。
「第二步:性能优化」
同时,你让Codex专注于性能瓶颈分析,特别是数据库查询和算法复杂度。
「第三步:安全审计」
第三个代理(比如Qwen Code)负责扫描潜在的安全漏洞,检查依赖项的CVE记录。
「第四步:综合决策」
Emdash会并排展示三个代理的分析结果。你可以看到:
-
Claude Code建议重构用户认证模块 -
Codex指出N+1查询问题 -
Qwen Code发现了一个过时的加密库
基于这些信息,你可以制定优先级,然后让不同的代理分别处理各自擅长的部分。
工单系统集成:从需求到代码的无缝流转
「核心问题:如何将项目管理工具中的工单直接传递给AI代理处理?」
Emdash支持与主流项目管理工具的深度集成,包括Linear、Jira和GitHub Issues。这意味着你可以直接将工单转化为AI代理的任务,无需手动复制粘贴需求描述。
Linear集成
「核心问题:如何配置Linear API并在Emdash中使用?」
配置过程很简单:
-
在Linear设置中生成API密钥 -
在Emdash的设置中粘贴这个密钥 -
选择你要同步的项目
配置完成后,你可以在Emdash中直接浏览Linear工单,选择一个工单后,点击”发送到AI代理”,工单的标题、描述、验收标准都会自动传递给AI。
Jira集成
「核心问题:如何连接Atlassian的Jira系统?」
Jira配置需要提供三个信息:
-
你的Jira站点URL(例如:yourcompany.atlassian.net) -
你的Atlassian账户邮箱 -
Atlassian API令牌(需要在Atlassian账户设置中生成)
GitHub Issues集成
「核心问题:如何通过GitHub CLI认证并同步Issues?」
GitHub集成需要先安装GitHub CLI:
# 安装GitHub CLI(macOS示例)
brew install gh
# 认证
gh auth login
按照提示完成OAuth流程后,Emdash就能访问你的GitHub仓库Issues了。
实战案例:从Bug报告到修复
想象这个场景:周五下午,测试团队在Linear上提交了一个紧急Bug报告。你打开Emdash:
-
在Linear面板中找到这个Bug工单 -
点击”分配给Claude Code” -
Claude Code读取工单描述,自动克隆相关代码分支 -
它分析错误日志,定位问题所在 -
生成修复代码并创建git commit -
你在Emdash中审查diff -
一键创建GitHub Pull Request -
等待CI/CD检查通过 -
合并代码,关闭工单
整个过程,你不需要离开Emdash界面,也不需要手动在不同工具间切换。
远程开发:在服务器上运行AI代理
「核心问题:如何通过SSH在远程服务器上运行AI编程助手?」
很多开发场景需要在远程环境中工作:
-
代码库太大,本地机器存储不足 -
需要访问内网资源或数据库 -
远程服务器有更强的计算能力 -
团队统一使用开发服务器
Emdash的SSH功能完美支持这些场景。
配置SSH连接
「核心问题:如何安全地配置远程服务器连接?」
在Emdash中,进入”设置 → SSH连接”,添加你的服务器信息:
「连接方式选择:」
-
「SSH代理(推荐)」:如果你已经在终端中配置了SSH代理,Emdash可以直接使用。确保你的密钥已加载:
ssh-add -l # 查看已加载的密钥 ssh-add ~/.ssh/id_ed25519 # 添加密钥到代理 -
「私钥文件」:指定私钥文件路径,Emdash会读取并使用它
-
「密码认证」:输入服务器密码(安全性较低,不推荐)
添加远程项目
配置好SSH连接后:
-
点击”添加远程项目” -
选择你刚配置的SSH连接 -
指定服务器上的代码路径(例如: /home/deploy/my-project) -
Em dash会通过SFTP同步项目元数据
远程开发的最佳实践
「场景一:生产环境调试」
你的生产服务器出现了一个奇怪的性能问题。本地复现很困难,因为数据量级不同。使用Emdash:
# 在远程服务器上
cd /var/www/production-app
在Emdash中添加这个路径为远程项目,然后让Codex分析生产环境的性能日志。AI代理直接在服务器上运行,无需下载大量日志文件。
「场景二:团队协作开发服务器」
团队共用一台开发服务器,配置了统一的开发环境。你在Emdash中配置SSH连接后:
-
添加远程项目 /srv/dev/team-project -
启动Claude Code进行代码审查 -
启动GitHub Copilot辅助编程 -
所有代理都在服务器上运行,使用服务器的Git配置和权限
远程开发的注意事项
确保远程服务器满足以下要求:
-
已安装Git -
你有SSH访问权限 -
如果AI代理需要认证(比如访问私有npm包),确保SSH代理运行并加载了正确的密钥
数据隐私与本地存储
「核心问题:Emdash如何存储我的数据,隐私保护措施是什么?」
本地优先的架构
Emdash采用本地优先的设计哲学。所有应用状态都存储在你本地的SQLite数据库中:
「数据存储位置:」
-
「macOS」: ~/Library/Application Support/emdash/emdash.db -
「Windows」: %APPDATA%\emdash\emdash.db -
「Linux」: ~/.config/emdash/emdash.db
如果你需要重置应用,只需关闭Emdash,删除这个数据库文件,下次启动时会重新创建。
遥测数据说明
「核心问题:Emdash收集哪些使用数据,如何关闭遥测?」
Emdash发送匿名的、白名单事件到PostHog,包括:
-
应用启动/关闭 -
功能使用名称(例如:”创建SSH连接”、”添加AI代理”) -
应用版本和平台信息
「重要承诺:」
-
不发送代码内容 -
不发送文件路径 -
不发送仓库名称 -
不发送提示词(prompts) -
不发送个人身份信息(PII)
「关闭遥测的方法:」
方法一:在应用中关闭
-
打开Emdash -
进入”设置 → 常规 → 隐私与遥测” -
关闭遥测开关
方法二:通过环境变量
TELEMETRY_ENABLED=false emdash
第三方AI代理的数据处理
需要明确的是:虽然Emdash本身不发送你的代码或对话到任何服务器,但当你使用AI代理(如Claude Code、Codex、Qwen等)时,你的代码和提示词会发送到相应提供商的云端API进行处理。
每个提供商都有自己的数据处理和保留政策。例如:
-
OpenAI的Codex会将代码发送到OpenAI服务器 -
Anthropic的Claude Code会将代码发送到Anthropic服务器 -
Google的Gemini会将代码发送到Google服务器
在使用这些工具前,建议你阅读相应提供商的隐私政策,特别是如果你处理的是敏感代码或专有算法。
常见问题解答
「核心问题:使用Emdash时最常遇到的问题如何解决?」
Q1: 必须安装GitHub CLI吗?
「答案:」 不是必须的。只有在你需要使用GitHub相关功能时才需要安装:
-
从Emdash创建拉取请求 -
获取仓库信息 -
GitHub Issues集成
如果你不使用这些GitHub功能,完全可以跳过gh的安装。
安装和登录GitHub CLI:
gh auth login
Q2: 如何添加新的AI代理支持?
「答案:」 Emdash设计为与提供商无关,可以快速添加新的CLI工具。
如果你想添加一个尚未支持的AI代理:
-
在GitHub上打开Issue,提供CLI的链接和典型命令 -
或者直接提交Pull Request,包含: -
代理名称 -
调用方式(CLI命令) -
认证说明 -
最小化安装步骤
-
开发团队会将其添加到集成矩阵中,并在UI中连接代理选择功能。
Q3: 遇到原生模块崩溃(sqlite3/node-pty/keytar)怎么办?
「答案:」 这通常发生在切换Node/Electron版本后。
快速修复步骤:
「第一步:重建原生模块」
npm run rebuild
「第二步:如果重建失败,清理并重新安装」
npm run reset
这个命令会:
-
清理 node_modules目录 -
重新安装依赖 -
重建Electron原生依赖
Q4: Emdash需要哪些系统权限?
「答案:」 Emdash需要以下权限:
「文件系统/Git权限:」
-
读取和写入你的代码仓库 -
创建Git工作树以实现代理隔离
「网络权限:」
-
仅用于你选择使用的AI代理(如Codex、Claude等) -
可选的GitHub操作
「本地数据库权限:」
-
在本地SQLite中存储应用状态
「重要说明:」 Emdash本身不会将你的代码或聊天内容发送到任何服务器。第三方CLI代理可能会根据其政策传输数据。
Q5: 能否在多个设备上同步Emdash配置?
「答案:」 目前Emdash的配置是本地存储的。如果你需要在多台设备上使用,可以手动同步数据库文件:
# 备份配置(macOS示例)
cp ~/Library/Application\ Support/emdash/emdash.db ~/backup/
# 恢复到新设备
cp ~/backup/emdash.db ~/Library/Application\ Support/emdash/
建议将这个文件纳入你的云同步(如iCloud、Dropbox),但要注意不要同时在两台设备上运行Emdash,以免数据库冲突。
Q6: 如何卸载Emdash并清理所有数据?
「答案:」 完全卸载需要删除应用和数据:
「macOS:」
# 删除应用
rm -rf /Applications/Emdash.app
# 删除数据
rm -rf ~/Library/Application\ Support/emdash
「Windows:」
# 通过控制面板卸载应用
# 然后删除数据目录
Remove-Item -Recurse -Force "$env:APPDATA\emdash"
「Linux:」
# 删除应用(根据安装方式)
sudo apt remove emdash # 如果是deb安装
# 删除数据
rm -rf ~/.config/emdash
实用操作清单
「快速开始Emdash的五步指南:」
-
「下载安装」:根据你的操作系统下载对应版本并安装 -
「安装首个AI代理」:推荐从Claude Code或GitHub Copilot开始 curl -fsSL https://claude.ai/install.sh | bash -
「配置工单系统」(可选):如果你有使用Linear、Jira或GitHub Issues,在设置中配置API密钥 -
「添加第一个项目」:点击”添加项目”,选择你的代码仓库 -
「启动并行代理」:选择项目,同时启动2-3个不同的AI代理,观察它们如何协作
「远程开发配置清单:」
-
[ ] 在服务器上安装Git -
[ ] 生成SSH密钥对(如果还没有) -
[ ] 将公钥添加到服务器的 ~/.ssh/authorized_keys -
[ ] 测试SSH连接: ssh user@server -
[ ] 在Emdash中配置SSH连接 -
[ ] 添加远程项目路径 -
[ ] 测试远程代理运行
作者反思与独特见解
在使用Emdash的过程中,我深刻体会到工具设计的哲学差异。传统的开发工具倾向于”一个工具做好一件事”,而Emdash选择了”多个工具协同工作”的路径。这种设计背后是对AI编程助手本质的理解:「AI不是要取代开发者,而是要增强开发者的决策能力」。
我学到的最重要一课是:不同的AI代理确实有不同的”性格”和专长。Claude Code在理解业务逻辑方面表现出色,Codex在算法优化上有独到见解,而Qwen Code在处理中文注释和国内技术栈时更得心应手。Emdash的价值不在于简单地把它们放在一起,而在于提供了一个公平的比较平台,让你能基于实际输出做出选择。
另一个意外收获是git工作树隔离的巧妙性。最初我以为这只是技术实现的需要,但实际使用后发现,这种隔离实际上鼓励了”实验性编程”。你可以让一个代理大胆重构代码,另一个代理保守地优化性能,然后在安全的环境中比较结果。即使某个代理的建议完全不可用,也不会污染你的主分支。
远程开发功能则打开了另一个可能性空间。在边缘计算和分布式系统日益普及的今天,能够在生产环境附近运行AI代理,而不是把所有数据都拉到本地,这种”计算靠近数据”的模式可能会成为未来的标准实践。
最后,我想强调的是,Emdash虽然强大,但它不是银弹。它最适合的场景是:你有明确的开发任务,需要多个角度的建议,并且愿意花时间审查和整合不同的方案。如果你只是需要快速生成样板代码,单一AI代理可能更高效。但如果你在做架构设计、性能优化或安全审计这类需要多维度思考的工作,Emdash的并行代理模式会给你带来意想不到的价值。
一页速览
「Emdash核心功能:」
-
✓ 并行运行多个AI编程助手 -
✓ 每个代理独立git工作树 -
✓ 支持21+主流AI代理 -
✓ 本地和远程SSH开发 -
✓ Linear/Jira/GitHub Issues集成
「快速安装命令:」
# macOS
brew install --cask emdash
# 关闭遥测
TELEMETRY_ENABLED=false
「必知配置:」
-
数据存储:本地SQLite数据库 -
SSH认证:推荐使用SSH代理 -
GitHub功能:需要 gh auth login
「典型工作流:」
-
添加项目 → 2. 选择AI代理 → 3. 传递工单 → 4. 审查diff → 5. 创建PR
「隐私要点:」
-
Emdash不发送代码到服务器 -
AI代理会发送数据到各自云端 -
可完全关闭遥测
「故障排除:」
npm run rebuild # 修复原生模块问题
npm run reset # 完全重置

