Go back

Claude Codeで複数アカウントを使い分ける方法と、Orcaのペイン設計から見えたこと

Posted on:

仕事用と個人用、2つのClaude Codeアカウントを同じマシンで行き来したくなりました。調べてみると、「メールアドレスを切り替える」専用コマンドはなく、代わりに設定ディレクトリを分ける発想が必要でした。ついでに普段使っているOrca(複数のコーディングエージェントをペインで管理するツール)でどう振る舞うかも気になったので、あわせて整理します。

きっかけ

Claude Codeを日常的に使っていると、業務用のアカウントと個人検証用のアカウントを両方触りたい場面が出てきます。最初は/loginのたびに毎回ログインし直せばいいと思っていましたが、それだと同じ端末で並行作業ができません。

調べてみると、Claude Codeには「アカウントの切り替え」というより「設定の置き場所を分ける」という考え方がありました。

逐次切り替えは/logoutから/login

一番シンプルなのは毎回ログインし直す方法です。

/logout
/login

認証情報は~/.claude/.credentials.jsonに保存されるため、これを打つたびに上書きされます。裏を返せば、同時に2つのアカウントを保持できないということです。

同時に使うならCLAUDE_CONFIG_DIR

複数アカウントを共存させたいなら、CLAUDE_CONFIG_DIR環境変数で設定ディレクトリそのものを分けます。

export CLAUDE_CONFIG_DIR=~/accounts/work/.claude
claude
export CLAUDE_CONFIG_DIR=~/accounts/personal/.claude
claude

ディレクトリが分かれていれば認証情報も分かれるので、それぞれ独立して/loginした状態を保てます。初回のディレクトリ作成も自動なので、事前準備は要りません。

同じ端末で使うなら環境変数をexportしない

ここが少しつまずいたポイントでした。exportしてしまうと、そのシェルセッションはずっとそのアカウントに固定されます。同じターミナルで切り替えたいなら、コマンド実行時だけ環境変数を渡す形にします。

CLAUDE_CONFIG_DIR=~/accounts/work/.claude claude
CLAUDE_CONFIG_DIR=~/accounts/personal/.claude claude

これなら同じターミナルで続けて打っても、シェルの環境自体は汚れません。頻繁に切り替えるならaliasにしておくと楽です。

alias claude-work='CLAUDE_CONFIG_DIR=~/accounts/work/.claude claude'
alias claude-personal='CLAUDE_CONFIG_DIR=~/accounts/personal/.claude claude'

tmuxのペイン分割や複数タブを使えば、同時に2アカウントのセッションを並行稼働させることもできます。

APIキーはさらに優先度が高い

もうひとつ覚えておきたいのがANTHROPIC_API_KEYの存在です。認証の優先順位は環境変数が/loginの認証より先に来るので、ANTHROPIC_API_KEYをセットしているとサブスクリプション(Claude.ai Pro/Max)よりそちらが優先されます。Console課金とサブスクリプションを切り替えるときも、この優先順位を知らないと「ログインし直したのに反映されない」という混乱が起きます。

Orcaで使うとどうなるか

普段はOrca(複数のコーディングエージェントをプロジェクトごとのペインで管理するツール)経由でClaude Codeを動かしています。Orcaの設定ファイルを覗くと、Codex用にはcodex-pane-accounts.jsonというペイン単位でアカウントを紐づける仕組みがありました。

"paneId::プロジェクトパス@@hash": {
  "selectionKey": "host",
  "accountId": null,
  "homeRoute": "shared-home"
}

キーが「ペインID + プロジェクトパス」という組み合わせになっているのが特徴です。同じ仕組みのClaude Code版は今のところ見当たりません。homeRoute: shared-homeの通り、ホストマシンの共有ホーム(通常の~/.claude)をそのまま見にいっている様子でした。

ここから推測できるのは次の2点です。

  • 同じプロジェクトで複数ペインを開いても、共有ホームを見ている限りアカウントは1つに固定される。ペインの見た目は分かれていても、認証情報の実体は同じ場所を指しているため、切り替えにはならない
  • 別プロジェクト(別パス)のペインなら、それぞれのシェルでCLAUDE_CONFIG_DIRを都度指定してしまえば、Orcaの管理対象とは別レイヤーの話として共存できる。Orcaがペインごとに独立したシェル環境を持っている限り、プロジェクトが違えば干渉しない

つまり「同じプロジェクトの中でアカウントを使い分ける」のは今の構成では難しく、「プロジェクトを分けてそれぞれに別アカウントを割り当てる」なら無理なく共存できそうです。

まとめ

  • Claude Codeに「アカウント切り替え」の専用コマンドはない。/logoutから/loginの逐次切り替えが基本
  • 同時に複数アカウントを保持したいならCLAUDE_CONFIG_DIRで設定ディレクトリを分ける
  • 同じ端末で使うならexportせず、コマンド実行時だけ環境変数を渡す(またはalias化する)
  • ANTHROPIC_API_KEY/login認証より優先されるので、切り替えの混乱ポイントになりやすい
  • Orca経由だと、同じプロジェクト内でのアカウント切り替えは共有ホームに阻まれる。プロジェクトを分ければ環境変数レベルで共存できる