配置档案管理
智码 AICoder 把"账号 + Base URL + 模型 + 鉴权方式"打包成「配置档案(API Profile)」,一个工具下可以保存多个档案,一键切换。无论你是混用 Anthropic 官方 OAuth 与第三方 API 端点、还是同时维护多个 ChatGPT 账号,都不必反复改环境变量或重装 CLI。
两种档案类型
| 档案类型 | 切换机制 | 凭据持久化 |
|---|---|---|
| API Key 档案 | 写 ~/.claude/settings.json 的 apiKey / baseUrl / 模型 | 档案里的密钥在本地加密保存,不以明文存放 |
| OAuth 档案 | 整段还原工具的 auth.json(Claude .credentials.json / Codex auth.json) | 加密存入 DB(enc:v1: 前缀) |
OAuth 档案在数据库里以加密 envelope 方式整段保存(含 access_token / refresh_token / 过期时间 / email / plan),切换时整段还原到磁盘,CLI 完全无感知。
核心字段
| 字段 | 说明 |
|---|---|
| 档案名称 | 如「公司 OAuth」「个人账号」「DeepSeek 测试」 |
| 关联工具 | claude-code / codex / gemini / opencode(多工具时按工具隔离) |
| Provider | anthropic / openai / google / deepseek / zhipu …… |
| Base URL | 自定义端点(可选;OAuth 档案无此字段) |
| API Key | 密钥(OAuth 档案此字段为空) |
| 默认模型 | 可选,留空(Auto)走 CLI 默认 |
| 认证方式 | auto / api_key / auth_token(详见 多工具管理) |
| 走代理 | 切换到此档案时是否启用本地代理(独立于全局代理开关) |
一键切换与安全清理
切换档案时智码会自动处理多个细节,避免环境变量残留导致的"切了 OAuth 但还是走 API Key"这类问题:
| 切换方向 | 自动处理 |
|---|---|
| API Key → OAuth | 清理 settings.json 顶层 apiKey / apiKeyHelper 与 env.* 残留;备份当前 API Key 配置;还原 OAuth credentials |
| OAuth → 第三方 API Key | 备份 .credentials.json 为 .official-backup;写入新的 base_url + api_key |
| 切回官方 OAuth | 恢复 .credentials.json.official-backup;清空 settings.json 中的 apiKey / baseUrl |
| OAuth → 另一个 OAuth | 整段还原目标档案的 envelope,CLI 无感知 |
切换提示文案按档案类型区分显示:
- 「已切换到 OAuth 账号: 名称」
- 「已切换到自定义 API: 名称」
- 「已切回官方 API」
切换前的环境变量冲突检查
切换到自定义 API 时,应用会检测系统环境变量里是否有 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL 这类会"绕过 settings.json"的旧值,发现冲突会弹窗让你选择是清理还是继续。否则切了等于没切。
切换时的确认与强制越过
有两种情况,切换前会先弹确认框说明原因,但不会把你锁死 —— 确认情况后可以强制继续:
| 弹窗 | 什么时候出现 | 怎么处理 |
|---|---|---|
| 有会话正在响应中 | 这个工具下还有会话显示为「回答中」 | 弹窗列出这些会话。终端模式的「回答中」是根据终端输出推断的,CLI 答完却没给出结束标志时会一直挂着;确认它们其实已经答完,点「强制切换」即可。保存配置、安装 CLI 版本时同样会问,按钮对应为「强制保存」「强制安装」 |
| 该账号的登录凭据可能已过期 | 切到的 OAuth 账号档案,记录显示凭据已过期 | 那个过期时间是登录时记下的,不代表账号真的不能用,CLI 实际使用时常常还能自动续期。可以点「强制切换」先试试 |
两种弹窗点「取消」都不会做任何改动。
切换后要不要重启会话
CLI 多半是在启动那一刻读入端点和凭据的,切完档案后,正在跑的会话还在用旧配置:
| 情况 | 切换后 |
|---|---|
| 本机的 Claude Code | 下一条消息起就用上新账号 / 新端点,通常不用重启;只有档案的默认模型或「走代理」设置与当前会话不同时,才会提示重启 |
| 其他工具,以及远程工作区里的 Claude Code | 询问是否立即重启当前空间里正在运行的会话(对话历史会自动恢复)。选「稍后手动」的话,状态栏会提示「档案已切换,但本会话仍在使用切换前的端点」,随时可点「立即重启本会话」 |
Antigravity 的切换是全局的
Antigravity 全机只有一份登录凭据,切换账号会影响所有正在运行的 Antigravity 会话。没重启的会话不只是"还在用旧账号",而是会在下次续期时悄悄变成新账号。
OAuth 多账号
Claude 多 OAuth 账号
适合在公司账号、个人账号、家庭共享账号之间频繁切换:
- 导入当前账号 — 在 API 配置页点档案工具栏的「导入当前」,把
~/.claude/.credentials.json加密保存为档案 - 添加新账号 — 点档案工具栏的「登录账号」,在弹窗的内置终端里自动运行
claude /login;浏览器完成 OAuth 后凭据自动入库 - 一键切换 — 切到目标 OAuth 档案时,整段还原
.credentials.json,CLI 重启即生效
Codex 多 OAuth 账号(v3.1.0+)
ChatGPT 账号同理:
- 点工具栏的「登录账号」,在弹窗的内置终端里完成
codex login(设备码方式,在本地浏览器授权,远程工作区同样适用) - 当前账号还没存成档案时,登录新账号前会先自动把它备份成档案,避免账号丢失(登录凭据一旦丢失无法找回,只能重新登录)
- 数据库
api_profiles表的auth_type/oauth_payload列保存加密 envelope
账号档案的日常操作
| 操作 | 说明 |
|---|---|
| 获取模型列表 | OAuth 账号档案也能点模型下拉旁的「获取」,拉取这个账号实际能用的模型。Claude 用账号自己的登录凭据向 Anthropic 查询(连不上时请为 Claude Code 开代理);Codex 读本机 Codex 的模型目录。「添加新账号」弹窗和编辑表单里都有 |
| 默认模型 | 账号档案可以改名称和默认模型。留空(Auto)由 CLI 自己决定;选定后,切回这个档案会自动用它,不必再去状态栏切一遍 |
| 添加新账号不丢旧账号 | 点「登录账号」登录新账号前,如果当前登录的账号还没存成档案,会先自动把它备份成一条档案(Claude、Codex、Antigravity 等各家一致) |
| 测试 | OAuth 档案的「测试」只在本地检查凭据是否已登录、未过期,不做在线探测;凭据已失效时会提示「重新登录」,用同一账号登录即可更新这条档案的凭据 |
| 删除 | 删除档案时可勾选「同时清除本机登录凭证」,连同本机残留的登录状态一起清掉 |
| 额度标签 | 开了额度监控后,账号档案行右侧显示各窗口已用比例,切号前就知道哪个号还有余量,详见额度监控与通知 |
OAuth 凭据安全
OAuth envelope 在数据库里以 enc:v1: 前缀加密存储。但不要把应用的数据目录整个上传到公开仓库或同步盘——连同本机数据一起被别人拿走时,仍可能被解密。WebDAV 同步时只会同步加密 envelope,不会把明文凭据上云。
凭据本地加密保存(v6.0.0+)
API Key 档案的密钥、OAuth 账号的登录凭据,以及语音识别、润色、下一步建议等功能里填的 Key,都在本地加密保存,不以明文存放。
- 升级自动转换 —— 旧版本存下的明文 Key 会在启动时自动转成加密保存,无需任何操作
- 跨实例导入照样可用 —— 从其他实例导入档案时会自动转成当前实例的加密,导入后直接能用
- 分享出去的是明文 —— 「分享」「导出全部」生成的内容含明文 API Key,只发给信任的人
额度用尽自动轮换(v5.2.0+)
准备了多个档案,最常见的用法就是"这个额度用完了换下一个"。以前得你盯着终端、看到限额报错再手动切换、再让 AI 从头接上。现在可以让它自己来:命中额度限制时自动切到下一个可用档案,重启会话并续发提示词接着跑。
开关在各 Provider 的 API 配置面板里、档案列表正上方。一个「工作区 + 工具」就是一个独立的轮换组,互不干扰。
默认关闭,首次开启会弹一次说明
轮换会自动重启会话。被动触发时会话本来就卡在限额报错上、干不了活,重启是纯收益;但你得先知道这件事会发生,否则某天回来发现终端重开过一次会一头雾水。至少需要 2 个档案才能启用。
轮换顺序
开启后会列出该工具下的所有档案:
- 拖拽排序 — 决定用尽后按什么顺序往下换
- 勾选参与 — 不想卷入轮换的档案(比如计费的生产账号)可以单独取消勾选,也支持一键全选
- 冷却倒计时 — 刚用尽的档案会进入冷却,列表里直接显示还有多久恢复可用;能从报错里解析出精确重置时刻的就按那个时刻算,不再一律傻等一小时
- 重置健康状态 — 手动把某个档案标回可用
高级选项
| 选项 | 说明 |
|---|---|
| 每小时最多切换 | 默认 3 次(上限 20)。超出则停止轮换并通知你——防止某个配置问题导致它在几个档案之间空转 |
| 切换后续发提示词 | 换完档案自动发给 AI 的那句话。留空用内置默认文案;建议明确写「从中断处继续」,只发「继续」两个字时部分 CLI 会当成新任务重头做 |
| 切换前探活 | 先试一下目标档案通不通,不通就直接跳到下一个(OAuth 档案无法探活,一律放行) |
| 预防式提前切换 | 不等报错,用量到达阈值(默认 95%,可调 50–99)就提前切。会打断正在跑的任务,所以是独立开关;判断时机是一轮回答刚结束、会话回到空闲的那一刻,不会在某一轮回答到一半时切。支持 Claude Code、Codex、Grok 三家 —— 只有它们能读到用量数据;其中 Claude Code 用的是后台额度监控采到的数据,需要先打开额度监控 |
最近轮换记录
无人值守跑了一夜,回来想知道到底发生过什么——面板底部的折叠区里有完整轮换历史:什么时候、从哪个档案换到哪个、因为什么触发。
支持范围
Claude Code、Codex、Gemini、Grok、Kimi、OpenCode、Antigravity 七个工具都带这张卡片。
限额识别直接读 CLI 吐出的报错文本,覆盖 usage / session / weekly / daily / monthly / hourly / rate limit 等各家说法——不同 CLI 对"额度用尽"的措辞差别很大,同一家在不同窗口下的叫法也不一样(比如 Claude 的 5 小时窗口报的是 session limit 而不是 usage limit)。
跨实例配置导入(v3.2.4+)
多开模式(开发实例 / 生产实例 / 公司 / 个人)之间互导配置:
| 场景 | 自动处理 |
|---|---|
| 开发实例 → 生产实例 | 自动反转 dev_suffix 和 app_data_root,路径无需手改 |
| 单实例机器 | UI 不显示「开发 / 生产」分组,避免困惑 |
| OAuth 凭证保活 | 跨实例导入 Claude OAuth 时,若 email 匹配,自动用源实例当前活跃 .credentials.json 替换 envelope 内冻结快照,避免"导入即过期" |
| 预览界面 | 显示 expiresAt 与「将自动同步源最新凭证」提示,让你心里有数 |
| 本机已有同一账号 | 标「本机已有·将更新凭据」,导入时更新已有档案的凭据,而不是再建一条重复的;本机正在用的账号也能这样直接恢复,不用先删档案 |
| 导入之后 | 不会自动启用导入的档案,要用时自己切 |
操作路径:API 配置页 → 配置档案工具栏的「跨实例」按钮 → 选源实例 → 勾选要导入的档案 → 确认。
多个实例共用同一个账号(v6.1.0+)
同一个 Claude 账号同时在主实例、多开实例、开发版里用,以前会互相顶掉:登录凭据每续期一次就换新,一个实例续上了,另一个实例手里那份随即作废,终端里冒出 Login expired · Please run /login。
现在同一个账号在整台电脑上只认一份凭据:
- 统一续期 —— 由智码在凭据过期前 15 分钟统一续期,并写回每一个用着这个账号的实例;正在跑的会话会自己接上新凭据,不用重启
- 谁续都一样 —— 任何一个实例(包括后台额度监控)续上的新凭据,其他实例都会拿到,不再出现"后续期的那个被顶掉"
- Codex 账号档案也共用一份 —— 同一个 ChatGPT 账号导进多个实例,切换或跨实例导入时拿到的都是最新的那份凭据,不会再搬来一份早已作废的旧快照
- 额度红标自愈 —— 换过凭据或重新导入后,额度监控里该账号的「需重新登录」标记会自动消失
macOS 上的区别
macOS 上本机各实例本来就共用同一个 Claude 官方登录账号(系统限制),在一个实例里切换 Claude 账号会影响其他实例,设置页会有对应提示。
档案工具栏
各工具的「配置档案」列表上方是一排平铺的操作按钮,分两组:
| 分组 | 按钮 | 作用 |
|---|---|---|
| 创建 | 新增密钥 | 手动填写 API Key 与端点地址,建一条新档案 |
| 创建 | 登录账号 | 在内置终端登录另一个账号,登录完自动存成档案 |
| 搬运 | 导入当前 | 把当前已登录的账号原样存成一条档案(不重新登录) |
| 搬运 | 跨实例 | 从本机其他实例(多开 / 开发版)已配好的档案里挑几条搬过来 |
| 搬运 | 导入分享 | 粘贴或选择别人分享出来的档案文件导入,可选遇到同一档案时保留还是覆盖 |
| 搬运 | 导出全部 | 把这个工具下所有 API Key 档案打包导出,用于换设备或分享 |
| 搬运 | 从本机 | 仅在远程工作区出现:把本机已配好的端点与密钥逐条复制到这台远程主机 |
部分工具还有「跨工具」按钮,从其他 AI 工具里已配好的凭据导进来。各按钮悬停都有说明,点不了时会告诉你原因。
单个 API Key 档案行上还有「分享」按钮,把这一条复制到剪贴板,可粘贴到任何支持同一格式的软件。分享和导出的内容含明文 API Key,只发给信任的人;OAuth 账号档案与设备绑定,不能分享。
国内厂商端点 / 认证方式
为 DeepSeek、智谱 AI 等国内厂商提供 Base URL 下拉和认证方式自动判定,避免新老端点配置混乱、不同厂商鉴权头不一致的坑。
数据库事务保障(v3.2.4)
切换档案的"清旧 + 写新"操作用 SQLite 事务包裹(set_active_api_profile Command),避免半切换状态——要么完整切到目标档案,要么回滚到原状态,不会出现"切了一半,磁盘 OAuth 是新的、settings.json 还指向旧的"这种诡异情形。
相关章节
- 多 AI 工具统一管理 — 工具检测与一键切换
- 多账号完全隔离 — 实例级别的完全隔离(与档案级互补)
- 额度监控与通知 — 档案行上的额度标签、额度恢复 / 快用完通知
