Claude 桌面配置文件
一个真实的 /Applications/Claude.app,通过 --user-data-dir 为每个账户创建一个配置文件目录,每个账户有一个独立的 Dock 启动器。现有应用、其登录状态和默认配置文件均不会被改动。撤销操作就是删除这些启动器和额外的配置文件夹。
此方法源自 Chad Timblin 的指南 Run a Separate Claude Desktop App for Each Claude Account。仅限 macOS。Windows 未经验证;该指南的附录有相关的已知说明。
基本规则
- 绝不修改、移动、重命名、复制或重新签名
/Applications/Claude.app。 即使作为后备方案也不允许。如果步骤 2 失败,请停止并报告,不要尝试克隆。 - 绝不写入默认配置文件
~/Library/Application Support/Claude。 - 绝不启动已在运行的配置文件。 该应用在 macOS 上没有单实例锁:对同一文件夹启动两次会产生两个共享同一文件夹的活动进程(已于 2026-11-04 在 v4.16336.0 上验证,以及于 2026-07-11 在 v1.20186.1 上验证)。启动器的聚焦路径绝不能回退到重新启动。
- 登录是用户的任务,且必须恰好有一个实例在运行。 Google 和 SSO 登录通过浏览器往返,并通过
claude://链接返回,macOS 会将其交给已运行的实例。如果两个实例同时打开,已登录的实例会收到链接并记录“Google sign-in code does not answer a sign-in this app started; ignoring”,而另一个实例仍停留在登录界面。绝不处理密码。 - 注意你的运行环境。 如果此会话在 Claude 桌面应用内部运行,退出该应用会终止会话:请将退出步骤以文本形式交给用户。如果无法读取
~/Library,请告知用户从终端运行此脚本。 - 只删除你在此会话中创建的测试工件。 脚本的冒烟测试将拒绝触碰在此会话运行之前就已存在的文件夹。
范围
整个工作大约由十个命令加上一个 README 组成。关于已安装版本的信息来自步骤 2 中的一次性测试,绝不通过读取 app.asar、授权、fuses 或 Electron 内部机制获取。自定义启动器图标仅在用户要求时提供。
步骤
S 是此技能目录中的 scripts/claude-profiles.sh;运行 bash $S 可查看用法。AppleScript 源代码存放至 CLAUDE_LAUNCHER_SOURCES(默认 ~/Documents/claude-multi-account/launcher-sources);如果用户选择了其他文件夹,请将其指向步骤 5 中的 README 文件夹。如果 /Applications 不可写,请设置 CLAUDE_LAUNCHER_DIR=$HOME/Applications。verify-mechanism 会写入并删除 /tmp/claude-profile-test-<pid>。
- 输入。 主账户是当前已登录的账户。它保留默认配置文件,并得到
Claude (<Label>).app。其他每个账户都会获得文件夹Claude-<Label>及其自己的Claude (<Label>).app。如果未提供标签和电子邮件,请询问用户。要判断哪个账户已登录,请将默认配置文件的config.json中的lastKnownAccountUuid与~/.claude.json中的oauthAccount进行比较;如果它们不同,请询问用户应用显示的邮箱是哪个。没有配置文件文件夹名称可以是另一个的前缀;build会拒绝与现有文件夹以及由其他启动器源命名的文件夹冲突。位于 Application Support 下以Claude开头但不包含Cookies文件的文件夹(例如Claude-3p)不是配置文件;请忽略它们。 - 预检查与机制验证。 运行
bash $S preflight。警告用户将会出现一个窗口,然后运行bash $S verify-mechanism。失败意味着停止并告知用户。 - 构建与冒烟测试。 主账户:
bash $S build <Label> default。其他每个账户:bash $S build <Label> Claude-<Label>,然后bash $S smoke <Label> Claude-<Label>。绝不对主账户启动器进行冒烟测试:其聚焦路径会在用户不期望的时刻触发自动化提示。如果存在之前运行创建的启动器或 README,请备份 README 文件夹,原地重建(build会覆盖),并且绝不删除你在此会话中未创建的启动器。 - 迁移检查。 claude.ai 端的内容(对话、项目、连接器)随登录转移。桌面端的内容则不会。MCP 服务器位于
<profile>/claude_desktop_config.json:有选择地复制条目,因为全部复制会使每个本地服务器进程数量翻倍。定时任务位于<profile>/local-agent-mode-sessions/<uuid>/<uuid>/scheduled-tasks.json和<profile>/claude-code-sessions/...,仅在其账户在运行实例中登录时执行,并且在目标实例退出时迁移:精确复制字段,丢弃notifySessionId,保留lastRunAt,在旧副本上设置enabled: false并保留它。同一文件中的preferences块(Cowork 设置、绕过权限门控、允许的来源、文件夹授权、Chrome 扩展配对)保留在默认配置文件中;在 README 中列出用户可能需要重新设置的内容,并注明只有一个实例应与 Chrome 扩展配对。~/.claude由所有实例共享,因此全局的 CLAUDE.md 适用于所有实例。 - README。 将
references/readme-template.md填充到用户命名的文件夹中(默认为~/Documents/claude-multi-account)。 - 交接 使用下面的文本,然后停止。在用户报告每次登录之前,运行
bash $S ps并确认它没有输出任何内容;如果有输出,请自行退出这些实例(使用kill加上它们的 PID,SIGTERM 对于此应用是干净的退出方式),然后才告诉用户点击那个启动器。每个运行中的窗口看起来都一样,因此“退出已登录的那个”是用户容易出错的步骤。 - 当用户报告时:
bash $S ps必须显示每个实例运行在独立的配置文件上,且带有独立的account=UUID。
交接文本
每次只打开一个实例时:
- 将启动器从“应用程序”文件夹拖入 Dock,并移除普通的 Claude 磁贴:一旦多个实例运行,该磁贴会为所有实例亮起,并聚焦于 macOS 选中的那个。
- 退出所有 Claude 窗口:在每个窗口中按 Cmd+Q,直到没有剩下任何窗口。所有窗口看起来都一样,所以不要试图保留一个。只有当恰好一个实例运行时,登录才能完成。
- 点击
Claude (<Label2>),使用该账户登录,然后以相同方式退出。对每个后续账户重复此操作,始终确保没有其他东西在运行。- 点击
Claude (<Label1>)。主账户仍保持登录状态。- 从现在开始,可以打开任意组合。要仅退出一个实例,先点击其窗口,然后按 Cmd+Q。
当启动器首次聚焦一个正在运行的实例时,macOS 会请求允许它控制系统事件。点击“允许”;拒绝只会禁用自动聚焦。正在运行的磁贴共享同一个图标,并可能在 Dock 重启后合并。两者均无害。
常见问题
| 症状 | 处理方法 |
|---|---|
| 两个实例显示相同的 Dock 图标,或合并为一个磁贴 | 外观问题。启动器通过进程而非磁贴查找实例。 |
| 快速输入快捷键仅在一个实例中生效 | 两者都注册了它。在其中一个实例的设置中更改或禁用它。 |
| 某个实例显示“重新启动以更新” | 退出所有实例,然后通过启动器重新启动。一个应用包,一条更新路径。 |
| 在第二个配置文件中使用 Cowork | 它会下载自己的 VM 包,每个配置文件约 10 GB。 |
kill $pids 失败并显示“illegal pid: 1\n2” | zsh 不进行单词拆分。通过管道传递给 xargs kill。脚本已正确处理。 |
| 测试文件夹在其实例仍在运行时被删除 | 先终止实例,确认已关闭,然后删除。脚本已正确处理。 |
| Google 或 SSO 登录打开浏览器,结束于“在 Claude 应用中完成登录”,并且“打开 Claude”无反应;新实例停留在登录界面 | 另一个实例正在运行并接管了回调。退出所有实例(使用 ps 验证),仅打开该启动器,重新登录。所有实例共享 ~/Library/Logs/Claude/main.log;在该文件中搜索 [Auth] 和 sign-in code 以查看哪个实例收到了回调。多次尝试之间 PID 不变意味着用户从未退出过。 |
| 设置期间出现自动化提示 | 有人打开了一个其实例已在运行的启动器。点击“允许”;没有坏处。 |
红色标志
- “该应用有单实例锁,因此聚焦失败时重新启动是安全的。”事实并非如此。步骤 2 是此版本的唯一真实信息来源。
- “登录是在应用内进行的,因此两个实例都可以保持打开。”登录期间必须只有一个实例运行,始终如此。
- “方案 B:克隆并重新签名应用。”禁止。请停止并报告。
- “让我先检查 app.asar / entitlements / fuses。”超出范围。
- “我会顺便给图标添加徽章。”仅在用户要求时。
- “我也会测试主账户启动器。”其聚焦路径会提示用户。仅限管道检查。
恢复
重置一个非主要实例:退出它,删除其配置文件目录,点击其启动器,重新登录。撤销所有操作:删除启动器和额外的配置文件目录。真实的应用和默认配置文件从未被涉及。使用 osacompile -o "/Applications/Claude (<Label>).app" <source>.applescript 从其源代码重建启动器。