Claude MAX(月額$200)を使っていると、週間の使用制限に引っかかることがあります。
「もう1つアカウントを契約すれば解決では?」と思いますよね。
しかし、単純にログアウト→別アカウントでログインしても、制限が引き継がれてしまうという問題があります。
本記事では、2つのClaude MAXアカウントを完全に分離して、c1/c2コマンドで簡単に切り替える方法を紹介します。
なぜ単純なログイン切り替えではダメなのか?
Claude Code(CLI版)は、アカウント情報だけでなく以下の情報でも利用状況を追跡しています:
-
~/.claude/配下の設定・キャッシュファイル - macOS Keychainに保存された認証データ
- ブラウザのCookie・ローカルストレージ
そのため、ログアウト→ログインしてもキャッシュや認証情報が残っていて、制限が解除されないことがあります。
解決方法:環境変数でアカウントを完全分離
Claude Codeは以下の環境変数で設定ディレクトリを変更できます:
-
CLAUDE_CONFIG_DIR- 設定ファイルの保存場所 -
CLAUDE_CACHE_DIR- キャッシュの保存場所
これを利用して、アカウントごとに別々のディレクトリを使うようにします。
セットアップ手順
1. エイリアスを設定
~/.zshrc(または ~/.bashrc)に以下を追加:
# Claude Code アカウント1
alias c1='CLAUDE_CONFIG_DIR=~/.claude-account1 CLAUDE_CACHE_DIR=~/.claude-account1/cache claude'
# Claude Code アカウント2
alias c2='CLAUDE_CONFIG_DIR=~/.claude-account2 CLAUDE_CACHE_DIR=~/.claude-account2/cache claude'
設定を反映:
source ~/.zshrc
2. 既存のキャッシュ・認証情報を完全削除
重要: 既存の認証情報が残っていると、新しいアカウントに古い制限が引き継がれます。
# Claude関連ファイルを完全削除
rm -rf ~/.claude
rm -rf ~/.claude.json
rm -rf ~/.config/claude-code/
rm -rf ~/.cache/claude/
rm -rf ~/.claude-account1
rm -rf ~/.claude-account2
# macOS Keychainから認証情報を削除
security delete-generic-password -l "Claude" 2>/dev/null
security delete-generic-password -l "claude" 2>/dev/null
security delete-generic-password -s "Claude" 2>/dev/null
echo "クリーンアップ完了"
3. ディレクトリを作成
mkdir -p ~/.claude-account1/cache
mkdir -p ~/.claude-account2/cache
4. 各アカウントでログイン
ターミナル1:
c1
→ ブラウザでアカウント1の認証を行う
ターミナル2(別ウィンドウ):
c2
→ ブラウザでアカウント2の認証を行う
日常の使い方
# アカウント1で作業
c1
# アカウント2で作業(別ターミナルでも可)
c2
# プロジェクトディレクトリを指定して起動
c1 /path/to/project
c2 /path/to/project
制限に達したら、もう一方のコマンドで起動するだけです。
分離されているか確認する方法
各セッション内で以下を実行:
!echo $CLAUDE_CONFIG_DIR
- c1 →
/Users/yourname/.claude-account1 - c2 →
/Users/yourname/.claude-account2
と表示されれば成功です。
Git/GitHub/Vercel との連携
Git設定やGitHub認証は共通のままで問題ありません。
| 項目 | 分離? | 説明 |
|---|---|---|
| Claude 設定・履歴 | ✅ 分離 | アカウントごとに別管理 |
| 週間使用量 | ✅ 分離 | 各アカウントで別カウント |
| Git 設定 | 共通 | 同じ人のコミットなので問題なし |
| GitHub 認証 | 共通 | 同一リポジトリにプッシュ可能 |
| Vercel | 共通 | GitHub連携でデプロイ |
注意: 同時に同じファイルを編集するとコンフリクトの可能性があるので避けましょう。
トラブルシューティング
アカウント切り替えがうまくいかない場合
完全リセットを実行:
rm -rf ~/.claude-account1
rm -rf ~/.claude-account2
security delete-generic-password -l "Claude" 2>/dev/null
security delete-generic-password -l "claude" 2>/dev/null
security delete-generic-password -s "Claude" 2>/dev/null
mkdir -p ~/.claude-account1/cache
mkdir -p ~/.claude-account2/cache
echo "リセット完了"
その後、c1とc2で再ログインしてください。
シークレットウィンドウで動作確認
問題の切り分け方法:
- ブラウザのシークレット(プライベート)ウィンドウを開く
- claude.ai にアクセス
- 2個目のアカウントでログイン
- シークレットで動く場合 → ローカルのキャッシュが原因
- シークレットでも動かない場合 → IPアドレスベースの制限の可能性
それでも解決しない場合
- 別のネットワークを試す(モバイルテザリングなど)
- VPNを使用してIPアドレスを変更
- Anthropicサポートに問い合わせ:https://support.anthropic.com
まとめ
| ポイント | 内容 |
|---|---|
| 環境変数 |
CLAUDE_CONFIG_DIR と CLAUDE_CACHE_DIR を分ける |
| Keychain | 初回セットアップ時に削除が必要 |
| 使い方 |
c1 / c2 コマンドで簡単切り替え |
| Git連携 | 共通のままでOK |
この方法で、Claude MAXの週間制限を実質2倍にできます。ヘビーユーザーの方はぜひお試しください。
参考
-
追記案(トラブルシューティングセクションに追加):
Settings Error が出る場合(2024年12月〜)
Claude Codeのアップデートにより、
~/.claude/settings.local.jsonのpermissions構文が厳格化されました。エラー例:
Settings Error
/Users/yourname/.claude/settings.local.json
Use ":" for prefix matching, not just ""原因:
以前はBash(git*)のように*だけでワイルドカードが使えましたが、新バージョンではBash(git:*)のように
:*の形式が必須になりました。また、シェル変数構文(
$var%%=*
など)を含むコマンドが許可リストに自動追加されていると、それがワイルドカードと誤認識されてエラーになります。解決方法:
# 問題のある設定を確認 grep -n '\*"' ~/.claude/settings.local.json | grep -v ':\*' # settings.local.json を開いて、問題のある行を削除または修正 # 例: "Bash(do name=\"$var%%=*\" ...)" のような行を削除 または、設定を完全リセット: rm ~/.claude/settings.local.json 注意: settings.local.json はグローバル設定なので、c1/c2 両方に影響します。 ---