BlackHole1/aswap
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.
实测星标增长
- 24小时
- +1
- 7天
- +3
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
docs/readme/README.zh-CN.md
原文aswap
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Русский | Français | Español

基于 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 ...] 会立即逐个账户拉取用量。对于被限流的账户,会显示服务端允许下次重试的时间。

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

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

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。