Skip to content

多账号完全隔离 ​

你有多个 Anthropic 账号(个人 + 公司),或者需要同时使用不同 API Key?

CLI 的配置是全局的,切换账号得手动改文件,改完还容易忘改回来。

智码 AICoder 的多实例功能彻底解决这个问题。

工作原理 ​

每个实例拥有完全独立的配置空间:

隔离项说明
OAuth 登录凭据每个实例可登录不同账号
API Key 配置每个实例配置不同的 API 密钥
会话历史每个实例的对话记录互不干扰
数据库每个实例有独立的 SQLite 数据库
设置偏好主题、终端字体等可分别设置

MCP Server 配置在实例间共享,无需重复配置。

不同实例登录不同账号互不干扰;同一个账号放在多个实例里用也没问题,它们会共用一份登录凭据,不会互相顶掉,见下文多个实例共用同一个账号。

如何启动多实例 ​

Windows ​

bash
# 默认实例(实例 1)
智码AICoder.exe

# 第二个实例
智码AICoder.exe --instance 2

# 第三个实例
智码AICoder.exe --instance 3

macOS ​

macOS 双击 .app 默认会复用已运行的进程,必须用 open -n 强制启动新进程:

bash
# 默认实例
open -a "智码 AICoder"

# 第二个实例(-n 强制新进程,--args 后参数传给应用)
open -n -a "智码 AICoder" --args --instance 2

# 第三个实例
open -n -a "智码 AICoder" --args --instance 3

写个 alias 一劳永逸

在 ~/.zshrc 加:

bash
alias aicoder2='open -n -a "智码 AICoder" --args --instance 2'
alias aicoder3='open -n -a "智码 AICoder" --args --instance 3'

之后终端输入 aicoder2 就能秒开第二个实例。

也可以直接调用 .app 内的可执行文件(同时拿到终端日志,方便排查问题):

bash
"/Applications/智码 AICoder.app/Contents/MacOS/智码 AICoder" --instance 2

快速识别

标题栏会清晰显示当前实例编号(如「智码 AICoder [实例 2]」),绝不会搞混。

多开时托盘区会并排好几个一样的图标,鼠标悬停在托盘图标上,提示里会写明是哪个实例、当前用的哪个工具,例如「智码 AICoder [实例 2] · Provider: Codex」;默认实例显示为「主实例」,开发版还会带上「DEV」字样。

使用场景 ​

个人 + 公司账号 ​

  • 实例 1:登录公司 Anthropic 账号,处理工作项目
  • 实例 2:登录个人账号,学习和个人项目

不同 API 提供商 ​

  • 实例 1:使用 Anthropic 官方 API
  • 实例 2:使用第三方 API 代理

不同工具组合 ​

  • 实例 1:专门用 Claude Code
  • 实例 2:专门用 Codex + Gemini

跨实例配置导入 ​

新实例不必从零配置 API 档案。在各工具设置页「配置档案」上方的工具栏里点「跨实例」按钮,打开「从其他实例导入配置档案」:

来源可导入内容
同环境其他实例已保存的 API Key 档案 / OAuth 档案 / 当前活跃 OAuth
对侧环境(开发 ↔ 生产)同上,自动反转配置目录后扫描

支持选择性导入:每条档案前有勾选框,按邮箱去重,OAuth 凭证会自动用当前实例密钥重新加密入库(不保留源实例的密文)。

  • 本机已有同一账号:预览里标「本机已有·将更新凭据」,导入时更新已有档案的凭据,不会再多出一条重复档案;本机正在用的账号也能这样直接恢复,不用先删档案
  • 导入不等于启用:导入的档案不会自动切换过去,要用时自己切

OAuth 档案的"快照保活"

导入 OAuth 档案时,如果源实例当前活跃的 .credentials.json 与档案邮箱匹配,会自动用最新凭证替换档案内的冻结快照——避免"导入即过期"的尴尬。预览界面会显示每条档案的 token 剩余有效期。

access token 过期不等于不可用

OAuth 标准里 access token 寿命仅几小时,CLI 启动时会自动用 refresh token 续期。 预览界面对短期过期(< 30 天)的档案标注「access token 已过期(启动时自动刷新)」,仅长期未使用(≥ 30 天)的档案才会红色警告。

多个实例共用同一个账号 ​

同一个 Claude 账号同时在主实例、多开实例、开发版里用,以前会互相顶掉:登录凭据每续期一次就换新,一个实例续上了,另一个实例手里那份随即作废,终端里冒出 Login expired · Please run /login,只能重新登录。

现在同一个账号在整台电脑上只认一份凭据:

变化说明
统一续期由智码在凭据过期前 15 分钟统一续期,并写回每一个用着这个账号的实例;正在跑的会话会自己接上新凭据,不用重启
谁续都一样任何一个实例续上的新凭据,其他实例都会拿到,不再出现"后续期的那个被顶掉"
Codex 账号同理同一个 ChatGPT 账号的档案也只存一份,切换或跨实例导入时拿到的都是最新凭据
额度红标自愈重新登录或重新导入之后,额度监控里该账号「需重新登录」的标记会自动消失

这一切自动进行,不需要任何设置。

macOS 上的区别

macOS 上本机各实例本来就共用同一个 Claude 官方登录账号(系统限制),在一个实例里切换 Claude 账号会影响其他实例,设置页会有对应提示。

开发环境与生产环境 ​

如果同时安装了开发版(pnpm tauri dev)和打包版,两套数据完全隔离:

进程配置目录数据目录
生产版~/.claude/ 等<AppData>/com.agilefr.tauri/
开发版~/.claude-dev/ 等<AppData>/com.agilefr.tauri/dev/

跨环境互导通过同一个「从其他实例导入」入口完成——开发版能看到生产版的实例并选择性导入,反之亦然。普通用户机器上若只有单一环境,下拉不显示「开发/生产」概念,体验保持简洁。

跨实例会话接力 ​

多实例之间数据本是隔离的(各自的会话记录、配置、JSONL 历史互不可见)。但有时你想把一个实例里的会话,接力到另一个实例继续——比如开发版里调出来的思路,想拿到生产版接着聊;或者公司账号实例里的排查过程,想在个人账号实例里延续。

v4.0.0 用「会话标识符」打通了这条路:

  1. 在 A 实例的侧边栏,右键某个会话 → 复制标识符,得到一段自包含的会话引用
  2. 把标识符粘到 B 实例的 AI 终端,让它接着这个会话聊
  3. B 实例的 AI 通过 MCP 解析标识符,直接读到 A 实例那个会话的完整历史正文,在此基础上继续

前提

两个实例都需要接入 AICoder 的 MCP 服务。标识符自带定位信息(实例 / 会话 / 历史目录),所以即使 B 实例本地没有这条会话,也能跨实例直接读到对方落盘的对话记录——开发版 ↔ 生产版、公司 ↔ 个人,都能接力。

可以把它理解为:配置可以跨实例导入,现在对话上下文也能跨实例接力了。

若依科技工作室 · 承接后台管理 / 桌面软件 / 全栈 / 小程序定制开发 · 技术服务咨询