Runner 0.17.0:支持 Claude Code 多账号切换

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签: 是
  • 我的开源项目完整开源,无未开源部分: 是
  • 我的开源项目已链接认可 LINUX DO 社区: 是
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
  • 以上选择我承诺是永久有效的,接受社区和佬友监督: 是

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


之前在社区介绍过 Runner,是一个管理 CLI agent 的原生桌面工具,本质是一个类似terminal multiplexer的工具,可以在同一个app中管理不同平台的agent cli,也可以把几个 agent 组成 crew 一起协作沟通。

这次做claude多账号切换的初衷主要是我自己用了两年的 Claude 账号最近被封了,用的是 Max 订阅。并且想要再搞出一个新的max账号现在太难了,有 KYC,加上越来越严格的检查,感觉普通国内用户想稳定用一个 Max 账号的成本已经显著增加了。

从我自己最近的使用情况来看,Pro 账号的检查相对没那么严格,用多个 Pro 的重度用户也多了起来。这样就需要管理几个账号、看各自的用量,也希望换个账号以后还能接着之前的工作继续做。

所以这次 0.17.0 给 Runner 加了 Claude Code 多账号支持,可以在里面分别登录、查看用量,切换账号以后继续之前的对话。这里单独开一帖,配几张图介绍一下。

添加另一个账号

在 Settings → Agents → Claude Code 的 Accounts 里面,可以看到自己原来用的账号,默认叫 Personal。点 Add account,给新账号起个名字,再跟着 Claude Code 的浏览器登录流程走一遍就可以了。如果之前已经用独立目录登录过,也可以直接选择那个目录。

添加以后,两个账号的登录会分别保留,平时切换不用再来回退出和登录。

原来的配置可以继续用

我自己用 Claude Code 会配一些 skills、MCP 和插件,换个账号以后如果这些都要重新弄一遍,还是挺麻烦的。所以添加账号时,可以勾选 Use Personal’s settings,继续用主账号的全局 CLAUDE.md、skills、MCP 和已启用的插件。

这里主账号和当前使用的账号是分开的:主账号提供共享配置,Active 决定接下来用哪个账号启动会话。比如配置一直用 Personal 的,干活时可以切到 Work。

新账号已有的本地配置和同名 skill 会保留,登录信息也是各自独立的。

换个账号,继续之前的对话

在用量下拉框里选好账号以后,新开的 chat 和新启动的 Claude Code crew 成员就会使用它。已经在跑的会话会继续使用原来的账号。

已有的 chat 如果也想换账号,可以先 Stop,选好另一个账号,再点 Resume。Runner 会接着原来的对话继续,不用重新开一个 chat,再把项目和做到哪一步介绍一遍。

这一版先做了手动切换,不会在额度用完时自动轮换账号。多账号功能目前也只针对 Claude Code。

账号切换实现对比

做这个功能的时候,也看了社区里一些工具的实现。大致可以分成两类:

  1. 通过反代或者 agent gateway。 客户端先把请求交给一个中间服务,由它选择账号、转发请求,有的还会做协议转换。具体实现也有区别,比如 Magpie 的 Claude gateway,是由 gateway 调用真实的 Claude Code,再由 Claude Code 向 Anthropic 发起请求。
  2. 原生 CLI 直连,在本机切换账号。 不额外加模型请求代理,还是由 Claude Code 自己发请求。这里又可以分成替换登录凭据和切换账号目录两种做法,所以 direct mode 不一定就是切目录。

Anthropic 官方文档里的多账号用法是给每个账号一个独立的配置目录,用 CLAUDE_CONFIG_DIR 来选择。例如个人账号继续直接运行 claude,工作账号用 CLAUDE_CONFIG_DIR=~/.claude-work claude,各自在自己的目录下登录。

对 Runner 来说,我觉得沿用这个官方提供的机制是最稳妥的选择。Runner 本来就在管理本机的 CLI 进程,经常会有几个 agent 同时跑。每个账号保留自己的登录状态和凭据存储,登录、保存凭据和 token 刷新都交给 Claude Code,Runner 负责启动时选好目录。从登录状态的稳定性和账号凭据管理上,这样我会更放心一些。

Runner 具体怎么做

  • 登录和凭据: 添加账号时,在对应目录下运行 claude auth login,走 Claude Code 自己的浏览器登录流程。macOS 上凭据由 Claude Code 放进对应的 Keychain 项,Windows 上放在对应目录的凭据文件里。Runner 保存账号名字、目录等信息,不另外保存一份供切换用的凭据;查看用量时会读取本机凭据,查询对应账号的用量。
  • 启动和切换: 原来的账号保持原来的启动方式,额外账号通过 CLAUDE_CONFIG_DIR 指定目录。切换 Active 账号,只影响接下来新开或恢复的会话,已经在跑的 agent 继续用自己的账号。在 Runner 外面直接打开的 Claude Code 也继续使用原来的默认登录。
  • 共享配置: 目录分开以后,skills、MCP 和插件这些也需要处理。Runner 按需链接主账号的 CLAUDE.md、skills 等内容,settings、MCP 和插件通过启动参数带入,保留各账号已有的本地文件和插件状态。所以账号可以分别登录,常用配置仍然可以共用。
  • 继续原来的对话: Runner 会记住对话文件最初在哪个目录。换账号恢复时,用 claude --resume <原对话文件路径> 接着原来的记录继续,不需要把历史复制到新账号目录,也不用从头开一个 chat。

和 Magpie direct mode 的区别

Magpie 的 direct mode 会记住多个账号的凭据,切换时先保存当前账号的最新凭据,再把选中账号的凭据写回 Claude Code 原来使用的位置。这样配置和历史可以一直留在同一个目录,切换工具需要处理凭据的保存、替换和刷新后的同步。

Runner 这里切的是启动时使用的目录,每个账号的凭据留在各自的存储里。相应地,Runner 要多处理共享配置和跨目录恢复对话。这是两种实现各自需要处理的事情,也和 Runner 本身就管理会话的功能有关。

另外,Magpie 的 gateway 内部也会给 Claude 账号使用独立目录。所以这个区别具体说的是它切换原生 Claude Code 登录的 direct mode,独立目录也不是 Runner 特有的做法。

和 CC Switch 的区别

CC Switch 在 Claude Code 这一侧主要是切换 provider 配置。Direct 模式会修改配置里的 endpoint、key、模型等字段;Routing 模式则让请求经过它的本地路由,可以做协议转换和故障切换。Claude Official 使用 Claude Code 自己的登录,不经过本地 Routing。

按它目前的文档,Accounts 里的多订阅账号管理列出的是 ChatGPT、GitHub Copilot 和 Grok。它的 Claude provider 切换,和 Runner 这次做的几个 Claude 订阅账号各自登录、切换后继续同一个会话,处理的需求有所不同。

下载和反馈

Repo:GitHub - yicheng47/runner: Where terminal agents work together. Claude Code, Codex, Copilot CLI and pi on the same task, in one mission, each keeping its own TUI in a real terminal. · GitHub

官网:https://runnersh.dev

下载:Download · Runner

版本说明:Runner 0.17.0

支持 macOS(Apple Silicon)和 Windows x64(Windows 10 1809 及以上)。

有多个 Claude 账号的佬友可以试试看,有问题在楼里反馈,或者到 GitHub 提 issue 都可以。也欢迎分享自己平时是怎么切换账号的,看看还有哪些地方可以做得方便一点。

感谢 LINUX DO 社区提供交流与开源推广平台。

1 个赞