
claude-orchestrator 让 macOS 可同时运行多个 Claude Desktop 实例
来源标题:Show HN: Run multiple Claude Desktop instances side by side on macOS
一款名为 claude-orchestrator 的开源工具可以让 macOS 用户同时运行多个相互独立的 Claude Desktop 实例,每个实例拥有独立的账号、会话、Claude Code 配置和工作目录。该工具不改动 /Applications/Claude.app,而是用不同的数据目录启动原始签名应用,因此代码签名、公证和内置更新器都能正常工作。该工具在 v0.2.0 版本由 claude-ctl 更名为 claude-orchestrator,数据目录仍保留在 ~/Library/Application Support/claude-ctl/。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
在 macOS 上运行任意多个相互独立的 Claude Desktop 实例——每个实例都有自己的配置文件(profile)、账户、会话、Claude Code 配置和工作目录。claude-orchestrator 从不复制、打补丁或重新签名 /Applications/Claude.app。它用不同的数据目录启动原始的、已签名的应用,因此代码签名、公证、权限和内置更新器都能继续正常工作。
claude-orchestrator new work --workdir ~/workspace/my-project claude-orchestrator start work claude-orchestrator list
或者不带参数运行 claude-orchestrator,从菜单中选择完成所有操作(见交互模式)。
v0.2.0 中已改名:claude-ctl 现在叫 claude-orchestrator,因为这个工具不仅管理实例,还管理会话。数据目录仍保留在 ~/Library/Application Support/claude-ctl/,因此已有实例继续可用。
让工作、学校和一个第二工作账户同时保持登录:
claude-orchestrator new work claude-orchestrator new school claude-orchestrator new client --workdir ~/workspace/client # 可选的默认项目 claude-orchestrator signin work --exclusive # 一次只登录一个实例 claude-orchestrator signin school --exclusive claude-orchestrator signin client --exclusive claude-orchestrator project import --from default # 复用你已有的项目 claude-orchestrator project add ~/workspace/api # 或者添加新项目:每个实例都会获得它们 claude-orchestrator start work && claude-orchestrator start school && claude-orchestrator start client claude-orchestrator agent --install # 菜单栏图标,用于启动/停止/切换
signin --exclusive 会在你登录时关闭其他实例,因为浏览器通过单个 claude:// 链接把登录信息交回来,而只有一个正在运行的 Claude 能接收它。按下 Enter 后,它会重新打开这些实例。
在终端中不带参数运行该命令:
claude-orchestrator
日常操作都可以从菜单完成。你不需要记住命令、会话 ID 或文件路径:
Claude Orchestrator ─────────────────────────────────────── ❯ Work ● running Personal ● running School ○ stopped not logged in ───────────────────────────────────────
- New profile Projects…
你能做什么
屏幕 选项 主页 每个配置文件及其运行/停止状态,未登录时会显示警告。它们下面是:+ New profile 和 Projects…
配置文件(已登录) 启动,或在其运行时停止/重启 · Sessions… · 重新登录…
配置文件(未登录) 仅登录。其他选项在你登录后出现
Sessions… 该配置文件的会话,最新的在前。输入内容可按标题、账户或项目文件夹进行模糊筛选
一个会话 其详细信息(账户、项目、开始时间、最后活动、消息数、大小、ID)· 复制到… · 移动到…
- New profile 询问名称,创建配置文件并打开其菜单,以便你立即登录
Projects… 已注册的项目及其在每个配置文件中的状态 · + Add project · 应用 projects.json… · 导出为 projects.json… · 同步所有配置文件 · 从某个配置文件导入…
一个项目 其文件夹、权限模式和各配置文件中的状态 · Remove…
按键:↑/↓(或 Ctrl-P / Ctrl-N)移动,Enter 选择,Esc 返回(在搜索框中,Esc 先清空文本),主页上按 q 退出,Ctrl-U 清空搜索或文本字段,Ctrl-C 取消。
项目是一个文件夹,它会作为环境显示在每个配置文件的 Code 标签页中。与其逐个添加,不如在文件中描述它们并应用:
复制示例文件并编辑路径:
mkdir -p ~/.config/claude-orchestrator cp examples/projects.json ~/.config/claude-orchestrator/projects.json
examples/projects.json 展示了所有选项:一个最小条目、一个自定义名称、额外文件夹、每个项目的权限模式以及共享默认值。如果你已有项目,Projects… → Export to a projects.json… 会把它们写入文件,这样你就可以从那里开始。
打开 Projects… → Apply a projects.json…。默认路径已经填好。按 Enter。
检查预览。文件会先作为整体进行检查,所有问题(缺失的文件夹、重复的名称、拼错的键)会一次性列出。在文件干净之前,不会有任何更改。
Apply ~/.config/claude-orchestrator/projects.json
- website ~/workspace/website
- Mobile app ~/workspace/mobile/app ~ api → API
- old-project (not in the file) ❯ Apply changes Apply and remove the 1 not in the file Cancel
- 表示添加,~ 表示更改或重命名,- 表示已注册但文件中缺失。Apply changes 保留它们。Apply and remove… 删除它们,使注册表与文件完全一致。
这些项目会写入每个配置文件。尚未登录的配置文件会在登录后首次启动时获得它们。Projects… 列表显示每个项目的状态:✓ 已同步,✗ 缺失(用 Sync all profiles 修复),… 等待首次登录。
同一个文件也可以在不使用菜单的情况下使用(project apply --dry-run、project apply、project apply --prune)。完整格式以及 Claude Desktop 如何存储环境的详细信息,请参阅 Keeping the list in a file。
设置 CLAUDE_ORCHESTRATOR_HOME 可将任何命令(包括菜单)指向单独的数据目录。这样你就可以在不碰真实配置文件的情况下进行试验:
CLAUDE_ORCHESTRATOR_HOME=/tmp/co-test claude-orchestrator
为什么
Claude Desktop 把所有内容都存储在一个 Electron 配置文件中,因此第二次启动要么复用第一个实例的会话,要么拒绝启动。复制应用包可行,但副本会落后于更新,并且每次都必须重新构建。
claude-orchestrator 使用了 Claude 已经为此提供的机制:
结果:多个 Claude 实例并排运行,每个实例处理不同的项目。
安装脚本(推荐)
curl -fsSL https://raw.githubusercontent.com/Yuix-Networks/claude-orchestrator/main/install.sh | sh
该脚本下载最新版本,并将其 SHA-256 与发布的值进行校验。当 /usr/local/bin 可写时安装到那里,否则安装到 ~/.local/bin。它从不使用 sudo。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。