Claude Code 多帳號並行指南
你有兩個 Claude 帳號,Token 額度不同,想同時跑、互不干擾。 本文整理三種做法,由簡到繁。
背景知識:Claude Code 的認證優先順序
Claude Code 啟動時按以下順序決定身份(高→低):
1. ANTHROPIC_API_KEY(環境變數)
2. apiKeyHelper(settings.json 裡的腳本)
3. OAuth 登入(claude login 存的 token)
重點:ANTHROPIC_API_KEY 一旦設定,會覆蓋 OAuth 登入。
另一個關鍵環境變數:
CLAUDE_CONFIG_DIR— 指定 config 和 credentials 的儲存位置,預設~/.claude/
方法一:同一台機器,某些目錄用 OAuth、某些用 API Key
適用情境: 主力帳號用 Pro/Max 訂閱(OAuth),特定專案用另一個帳號的 API Key。
設定
在想用 API Key 的專案根目錄建立 .claude/settings.json(project-level settings):
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-你的第二帳號key"
}
}
或者不想把 key 寫進檔案,用 direnv(.envrc):
# 專案根目錄/.envrc
export ANTHROPIC_API_KEY="sk-ant-你的第二帳號key"
direnv allow
效果
~/project-a/ → 沒有設 ANTHROPIC_API_KEY → 走 OAuth(帳號 A)
~/project-b/ → .envrc 設了 ANTHROPIC_API_KEY → 走 API Key(帳號 B)
兩個 terminal 各開一個目錄,互不干擾。
注意
- API Key 優先度高於 OAuth,所以只要環境變數存在就一定走 API Key
- 離開該目錄後(direnv 會自動 unset),恢復 OAuth
- 如果用
.claude/settings.json方式,記得把它加進.gitignore
方法二:不同目錄用不同 API Key(兩個都是 API Key 帳號)
適用情境: 兩個帳號都有 Console API Key,想按專案分配額度。
設定
每個專案各自設 .envrc:
# ~/work-project/.envrc
export ANTHROPIC_API_KEY="sk-ant-帳號A的key"
# ~/side-project/.envrc
export ANTHROPIC_API_KEY="sk-ant-帳號B的key"
cd ~/work-project && direnv allow
cd ~/side-project && direnv allow
或者用 shell alias
# ~/.zshrc
alias claude-work='ANTHROPIC_API_KEY="sk-ant-帳號A的key" claude'
alias claude-side='ANTHROPIC_API_KEY="sk-ant-帳號B的key" claude'
效果
# Terminal 1
cd ~/work-project
claude # → 帳號 A 的 API Key
# Terminal 2
cd ~/side-project
claude # → 帳號 B 的 API Key
驗證
進入 Claude Code 後打 /status,確認使用的是哪個身份。
方法三:用 CLAUDE_CONFIG_DIR 隔離兩個 OAuth 訂閱帳號
適用情境: 兩個帳號都是 Pro/Max 訂閱,沒有 API Key,需要各自 OAuth 登入。
原理
Claude Code 的 credentials 存在 CLAUDE_CONFIG_DIR(預設 ~/.claude/)。
指向不同目錄 = 完全獨立的登入狀態。
初次設定(只需做一次)
# Terminal 1 — 帳號 A
export CLAUDE_CONFIG_DIR="$HOME/.claude-account-a"
claude
# 目錄是空的 → 自動進入登入流程 → 用帳號 A 的 email 登入
# credentials 存進 ~/.claude-account-a/
# Terminal 2 — 帳號 B
export CLAUDE_CONFIG_DIR="$HOME/.claude-account-b"
claude
# 同理 → 用帳號 B 的 email 登入
# credentials 存進 ~/.claude-account-b/
日常使用
# ~/.zshrc
alias claude-a='CLAUDE_CONFIG_DIR="$HOME/.claude-account-a" claude'
alias claude-b='CLAUDE_CONFIG_DIR="$HOME/.claude-account-b" claude'
之後直接:
claude-a # 帳號 A 的 OAuth token
claude-b # 帳號 B 的 OAuth token
不需要登出、不需要切換,兩個 terminal 同時跑完全獨立。
注意
~/.claude/(原本的預設目錄)不受影響,等於你有三個獨立的登入- 每個
CLAUDE_CONFIG_DIR有自己的 settings、memory、session history - 如果某個帳號的 OAuth token 過期,只有那個目錄需要重新
claude login
總結對照表
| 情境 | 方法 | 關鍵設定 |
|---|---|---|
| 主力 OAuth + 特定專案 API Key | 方法一 | 專案層級設 ANTHROPIC_API_KEY |
| 兩個 API Key 帳號按專案分 | 方法二 | direnv 或 alias 設不同 key |
| 兩個 OAuth 訂閱帳號並行 | 方法三 | CLAUDE_CONFIG_DIR 指向不同目錄 |
三種方法可以混用。例如帳號 A 用方法三的 OAuth,帳號 B 在某些專案用方法一的 API Key 覆蓋。
附錄:相關環境變數速查
| 變數 | 用途 |
|---|---|
ANTHROPIC_API_KEY | API Key,設了就覆蓋 OAuth |
ANTHROPIC_AUTH_TOKEN | Bearer token(用於 proxy) |
ANTHROPIC_BASE_URL | 自訂 API endpoint |
CLAUDE_CONFIG_DIR | Config/credentials 儲存位置 |
支持這個系列
如果這系列文章對你有幫助,考慮請我喝杯咖啡
請我喝杯咖啡
