Skip to content
项目

BlackHole1/aswap has 33 GitHub stars and 4 forks. GitHot measured +1 stars in 24 hours and +3 in 7 days. Last checked 2026-11-13 05:39 UTC. Last push 2026-11-03.

这些数字如何统计

Multi-account switcher for Claude Code and Claude Desktop: claude-swap (cswap) plus a maintained patch series.

33 星标4 forks +1 24小时

实测星标增长

24小时
+1
7天
+3
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

docs/readme/README.zh-CN.md

原文

aswap

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Русский | Français | Español

cswap list: two accounts with their 5h, 7d and per-model usage, then cswap switch 2

基于 claude-swap 的 Claude Code 多账户切换工具,附带一组持续维护的修复和新功能。

cswap 用来管理多个 Claude 账户。它会记录每个账户的用量,并能切换到剩余额度最多的账户。aswap 使用未经修改的上游源码构建 cswap,再在其上应用一小组补丁。所有 cswap 命令保持原样可用。

名字取自 account swap。

安装

uv tool install aswap  # 或:pipx install aswap
aswap --version

aswap 支持所有 cswap 命令。它可以和上游 cswap 同时安装,不会改动后者。

如果也想用 cswap 这个名字运行 aswap:

aswap link    # 在 aswap 旁边创建 cswap 启动器
aswap unlink  # 移除该启动器

aswap link 只会替换由 aswap 安装创建的 cswap 启动器。如需替换上游 cswap,请先卸载上游 (uv tool uninstall claude-swap),或加上 --force。

升级时运行 aswap upgrade。它会根据安装方式调用 uv tool upgrade 或 pipx upgrade。

aswap 新增了什么

按需刷新用量

cswap refresh [account ...] 会立即逐个账户拉取用量。对于被限流的账户,会显示服务端允许下次重试的时间。

cswap refresh: one account refreshed, the other rate limited with the server retry time

每个账户一个 Claude Desktop 窗口

Claude Desktop 同一时间只能登录一个账户。cswap desktop 2 会在独立窗口中打开账户 2,并保持其各自的登录状态;cswap desktop --all 会打开所有账户。每个窗口的 Code 标签页都显示相同的本地会话 (Windows 除外)。实现思路参考了 guise。

cswap desktop --all opening one Claude Desktop window per account, then cswap desktop listing both as open

每个账户一个 Chrome profile

Claude in Chrome 使用浏览器里登录的 claude.ai 账户,而不是 cswap switch 选中的账户 (上游 #256)。cswap chrome 2 会用你的 Chrome profile 的一份独立副本打开账户 2。其中的扩展以账户 2 运行,主浏览器的登录不受影响。

cswap chrome 2 opening a copy of the stock Chrome profile for account 2, cswap chrome 1 opening account 1, then cswap chrome listing both as open
  • cswap chrome --sync 2 会把当前的 Chrome profile 重新复制到账户 2。执行前请先关闭该账户的窗口。
  • cswap config set chrome.followSwitch true 会在 cswap switch 时把对应账户的浏览器窗口带到前台。
  • cswap config set chrome.appPath <path> 可以改用其他 Chromium 内核浏览器,例如 Edge 或 Brave。

共享会话历史

cswap run 默认让所有账户共享同一份会话历史。切换账户后,claude --resume 仍能找到之前的对话 (上游 #239)。如需按账户分开保存,运行 cswap config set run.shareHistory false。暂不支持 Windows。

问题修复

  • 账户配置过期。 如果 ~/.claude.json 仍指向账户 B,而钥匙串中已是账户 A 的 token,上游会要求重新登录 A,并停止刷新 B。aswap 会以实际持有当前 token 的账户为准。
  • 历史文件丢失。 上游把 profile 的历史合并到 ~/.claude 时,会不加比较地删除同名文件,可能导致会话或 memory/MEMORY.md 丢失。aswap 会把内容不同的文件另存到 history-conflicts/。
  • 版本与升级。 --version、更新检查和 upgrade 都写死了 claude-swap 包名。aswap 会使用实际安装的包。

构建方式

upstream.json 固定了一个上游 commit。bun run setup 会把该 commit 原样克隆到 cswap/,再按 patches/.patches 中的顺序,用 git am 应用 patches/ 下的所有补丁。这套结构参考了 Electron 管理 Chromium 和 Node 补丁的方式。每个 diff 都保持小而易读,升级上游只需对补丁序列做一次 rebase。

补丁 变更
以当前凭据的实际所有者为准 修复:账户配置过期
以实际安装的发行包为准 修复:版本与升级
按需刷新用量 功能:cswap refresh
合并历史时保留文件 修复:历史文件丢失
共享同一份会话历史 功能:共享会话历史
按账户打开 Claude Desktop 功能:cswap desktop
按账户打开 Chrome 功能:cswap chrome

每个补丁对应一个 commit,提交信息中说明了对应的上游问题。如需从源码构建或修改补丁,请参阅 CONTRIBUTING.md。

许可证

MIT,与 claude-swap 相同。详见 LICENSE。

探索相关项目