儲存多個 Claude Code 訂閱帳號,一個指令即時切換,不會掉訂閱、不需重新登入。
設定、MCP、技能、歷史全部共用。支援 Windows、Linux、macOS。
需要先安裝 Git(Linux/macOS 另需 jq、curl)。沒有 Git?點這裡看安裝方法
把每個 Claude 帳號的登入權杖分別存成獨立 profile,個人、公司帳號互不干擾。
cl switch 開選單、選好按 Enter,自動先關掉正在跑的 Claude,再換帳號。
切換時連帶換掉訂閱身分,Claude Code 仍走你的 Pro / Max 訂閱,不會偷偷掉成 API 計費。
MCP token、設定、對話歷史、技能、外掛通通共用,只有帳號權杖會切換,其他不受影響。
| 項目 | 位置 | 切換 / 共用 |
|---|---|---|
帳號權杖 claudeAiOauth | ~/.claude/.credentials.json | 每個帳號切換 |
訂閱身分 oauthAccount | ~/.claude.json | 每個帳號切換 |
MCP token mcpOAuth | ~/.claude/.credentials.json | 共用 |
| 設定、對話歷史、技能、外掛 | ~/.claude/ | 共用 |
.credentials.json,訂閱身分在 ~/.claude.json。
只換其中一個,Claude Code 會把它當成不一致而退回 API 計費。cl 會同時換好這兩塊,所以切換後仍然吃你的訂閱額度。過期權杖也會在切換時自動更新。
按 Win + X,選「終端機」或「Windows PowerShell」,將以下指令完整複製貼上(Ctrl+V),按 Enter。
PS> irm https://raw.githubusercontent.com/yazelin/claude-auth-switcher/main/install-oneliner.ps1 | iex
安裝會自動接好 Windows PowerShell 5.1 與 PowerShell 7 兩個設定檔,並印出後續步驟。裝完請重開一個 PowerShell 視窗。
如果電腦已經登入過 Claude Code,執行這行把現有登入狀態存成叫「personal」的 profile:
PS> cl import personal
「personal」只是名稱,換成你自己看得懂的暱稱也可以。
執行 cl login 加上名稱,會開啟瀏覽器 OAuth 登入流程,登入完成後自動存成 profile:
PS> cl login company
# 登入完成後,company profile 就儲存好了
PS> cl list
CURRENT PROFILE EMAIL PLAN USAGE
* personal ya***@gmail.com max 5h 42% used @14:00 | wk 18% used @06/02
company ya***@company.com pro 5h 7% used @09:00 | wk 55% used @06/05
* 號是目前使用中的帳號;email 會遮罩;百分比是已用量(5 小時 / 每週)。
用互動選單切換,會自動先關掉正在跑的 Claude,再換帳號:
PS> cl switch
cl use company — 切換後直接開 claude 即可,不需要任何 wrapper。
需要先有 git、jq、curl。
$ bash <(curl -fsSL https://raw.githubusercontent.com/yazelin/claude-auth-switcher/main/install-oneliner.sh)
$ source ~/.bashrc
# zsh 用戶請改為:source ~/.zshrc
$ cl import personal # 儲存現有帳號
$ cl login company # 瀏覽器 OAuth 新增第二個帳號
$ cl use company # 切換到 company 帳號(會先關掉正在跑的 claude)
$ claude # 照常啟動 Claude Code
cl usage 不帶參數就會即時更新每個帳號的用量並排成表(等同 --all)— 一眼比較哪個帳號還有額度。重置時間顯示為你的本地時間(台灣 UTC+8)。
輸入數字選帳號 → Enter。切換前會自動關掉正在運行的 Claude,避免它把舊帳號權杖寫回來。
| 指令 | 功能說明 |
|---|---|
cl login <名稱> | 開啟瀏覽器 OAuth 新增帳號,存成新 profile |
cl import <名稱> | 把目前 ~/.claude 的登入狀態存成 profile |
cl use <名稱> | 切換 active 帳號(會先關掉正在跑的 claude) |
cl switch | 互動選單切換帳號,一樣會先關 claude |
cl kill | 立即關閉所有正在運行的 claude 程序 |
cl list | 表格列出所有帳號:使用中標記、email(遮罩)、訂閱、快取用量 |
cl usage [name|--all] | 全部帳號即時用量並排表(不帶參數=全部);單一帳號顯示詳細分項 |
cl current | 顯示目前使用中的 profile 名稱 |
cl remove <名稱> | 刪除一個 profile |
cl ps | 列出偵測到的 claude 程序(排除本 session) |
cl doctor | 診斷:路徑、claude 程序狀態、profile 概覽 |
cl export <檔名> | 備份所有 profile(Windows .zip / Linux .tgz) |
cl restore <檔名> | 從備份檔還原 profile |
cl help | 顯示內建指令說明 |
Windows:在 PowerShell 輸入:
安裝完後關掉 PowerShell 再重開,就有 git 了。
Linux(Ubuntu/Debian):
macOS:在終端機輸入 git,macOS 會提示安裝 Command Line Tools;jq 可用 brew install jq。
Windows 有時會封鎖 PowerShell 腳本。先執行這行解除限制,再重貼安裝指令:
安裝會把設定加到你的 PowerShell profile,需要重新開啟 PowerShell 才生效。安裝程式已同時接好 Windows PowerShell 5.1 與 PowerShell 7 兩個設定檔。
還是不行的話,確認 profile 裡有這行:
裡面應該有一行 . "C:\Users\你的名字\claude-auth-switcher\shell\powershell.ps1"。沒有的話手動加上去存檔,再重開 PowerShell。
最常見原因是切換時還有 Claude 在跑——正在運行的 session 會在下一次呼叫 API 時把自己的舊權杖寫回去,蓋掉切換結果。
cl use 和 cl switch 預設都會先關掉正在跑的 claude 再切換,所以照正常用法就不會踩到。若你手動加了 --no-kill,記得先自己關掉 Claude。
不會。Claude 的帳號身分分散在兩個檔案:權杖在 ~/.claude/.credentials.json,訂閱身分(oauthAccount)在 ~/.claude.json。
cl 切換時會同時換好這兩塊,所以 Claude Code 仍然走你的 Pro / Max 訂閱。如果某個 profile 是用舊版工具存的、缺少訂閱身分,重新 cl import <名稱> 一次即可補上。
顯示的是已用量。例如 5h 42% used 代表這個 5 小時視窗已經用掉 42%。單一帳號的 cl usage <名稱> 會再列出每週、週-opus、週-sonnet 分項與重置時間。
(這點和姊妹專案 codex-auth-switcher 相反——Codex 顯示的是剩餘量。)
不會。所有權杖只存在你自己電腦的 ~/.claude_auth_profiles/ 資料夾裡,工具完全在本機運行。Unix 上 profile 目錄會設成 700、檔案 600。
請勿把 ~/.claude_auth_profiles/ 或 cl export 出來的備份檔 commit 到 Git;備份檔含長期權杖,傳完請刪除。