Logo

Claude Code / Codex で複数アカウントをディレクトリごとに切り替える

Claude Code / Codex で複数アカウントをディレクトリごとに切り替える

本記事はClaude Opus 5によって生成されました。


仕事用と個人用でアカウントを分けている人にとって、AI コーディングエージェントの「ログインし直し地獄」はよくある悩みだ。リポジトリを移動するたびに /logout して /login して、また戻して……を繰り返していると、そのうちどっちのアカウントで作業していたのか分からなくなる。

幸い、Claude Code も Codex CLI も設定の保存先を環境変数で丸ごと差し替えられる。これを direnv と組み合わせると、cd するだけで正しいアカウントに切り替わる環境が作れる。この記事ではその手順を両方ぶんまとめておく。

仕組み

どちらのツールも、認証トークン・設定・履歴といった状態をひとつの設定ディレクトリにまとめて保存している。

ツール

環境変数

デフォルトの保存先

Claude Code

CLAUDE_CONFIG_DIR

~/.claude

Codex CLI

CODEX_HOME

~/.codex

この変数を別のパスに向けると、そこにまっさらな「もうひとつのインストール」ができあがる。アカウントの数だけディレクトリを用意する、というのが基本の発想だ。

そして、ディレクトリに入ったときに環境変数を自動でセットしてくれるのが direnv だ。両方の手順でこれを使う。

# まだ入れていなければ
brew install direnv

# シェルにフックを追加(zsh の場合)
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
source ~/.zshrc

Claude Code

1. アカウントごとの設定ディレクトリを作ってログインする

まず、切り替えたいアカウントのぶんだけディレクトリを用意する。すでに使っている既定のアカウントは ~/.claude にそのまま残しておけばいい。

CLAUDE_CONFIG_DIR=~/.claude-work claude

初回起動時はログインを求められるので、そこで仕事用アカウントで /login する。以降このディレクトリのトークンは独立して更新されるので、ログインは一度きりでいい。

2. プロジェクトに .envrc を置く

ポイントは、各リポジトリではなく親フォルダに置くこと。こうしておけば配下のリポジトリすべてが同じアカウント・履歴・権限設定・MCP 認証を共有できる。

# ~/work/company/.envrc
export CLAUDE_CONFIG_DIR="$HOME/.claude-work"
cd ~/work/company
direnv allow

これで完了だ。このディレクトリ以下で claude と打つだけで、常に仕事用アカウントが立ち上がる。

3. 手動でも切り替えたいならエイリアス

direnv を挟まず明示的に指定したい場面もある。その場合はエイリアスを足しておくと楽だ。

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

注意点

別の設定ディレクトリは完全にまっさらな新規インストールとして扱われる。スキル・設定・プラグイン・MCP サーバーの定義は自動では引き継がれない。全プロファイルで同じフックを使いたいといった場合は、settings.json などを個別にシンボリックリンクするのが現実的だ。逆にメモリや履歴は分けたままにしておくほうが、コンテキストが混ざらなくて済む。

環境変数の一覧は公式ドキュメントで確認できる。

Codex CLI

考え方はまったく同じで、変数名が CODEX_HOME になるだけだ。Codex は認証トークンが入る auth.json や対話ログの格納先を、この変数のパスを基準に探しにいく。

1. ログイン

CODEX_HOME=~/.codex-work codex login

API キー課金として使い分けたい場合は、標準入力からキーを渡す方式もある。

printenv OPENAI_API_KEY | CODEX_HOME="$HOME/.codex-api" codex login --with-api-key

2. .envrc を置く

# ~/work/company/.envrc
export CODEX_HOME="$HOME/.codex-work"

Claude Code と併用しているなら、同じ .envrc に 2 行並べて書いてしまえばいい。

export CLAUDE_CONFIG_DIR="$HOME/.claude-work"
export CODEX_HOME="$HOME/.codex-work"

3. 状態の確認

いまどのアカウントで動いているのか不安になったら、次のコマンドで確認できる。

codex login status

Codex 固有の注意点

Codex にはひとつ、Claude Code にはない落とし穴がある。Codex デスクトップアプリ、VS Code 拡張、Codex CLI は通常すべて同じ ~/.codex を参照するという点だ。普通にログインし直すと、CLI だけ切り替えたつもりでもデスクトップアプリ側まで巻き込まれる。裏を返せば、CODEX_HOME を分ければ CLI だけを別環境として運用できるということでもある。

もうひとつ、ChatGPT サインインと API キーの資格情報が中途半端に両方残っていると、優先順位を取り違えて意図しない課金が発生しやすい。業務と個人を併用するなら、最初から環境ごと分けてしまうのがいちばん安全だ。

認証まわりの詳細は公式ドキュメントを参照してほしい。

まとめ

やることは驚くほど少ない。

  1. アカウントの数だけ設定ディレクトリを作り、それぞれで一度だけログインする
  2. プロジェクトの親フォルダに .envrc を置いて direnv allow する

セットアップは 5 分ほどで終わるのに、その後は「いまどっちのアカウントだっけ」と考える必要がなくなる。ログアウトによるセッションの喪失もない。複数の端末で同じ構成を再現するのも、.envrc を置くだけなので簡単だ。

複数アカウントを行き来している人は、一度やっておく価値がある。