codex login を完了し、Cloud IDE側で codex login status を確認します。Cloud IDEがすでに Logged in using ChatGPT ならコピー作業は不要です。未ログインの場合だけ、ファイル保存にした ~/.codex/auth.json をCloud IDEの ~/.codex/auth.json へコピーします。前提
この記事では、手元PCはWindows、ターミナルはGit Bash、リモート側はブラウザで使うVS Code系のCloud IDEを想定します。実際のユーザー名、IPアドレス、ホスト名、プロジェクト名は例示用に置き換えています。
OpenAI公式ドキュメントでは、Codex CLIは codex login でブラウザのChatGPT OAuthを完了する方式を案内しています。また、ログイン状態は codex login status で確認できます。
Windows側でNode.jsとnpmを確認する
Git Bashを開き、Node.jsとnpmが使えることを確認します。
node -v
npm -v
どちらもバージョン番号が表示されれば次へ進めます。
Codex CLIをインストールする
Codex CLIをnpmのグローバルパッケージとしてインストールします。
npm install -g @openai/codex
インストール後、バージョンを確認します。
codex --version
ここで次のように表示されることがあります。
bash: codex: command not found
この場合は、npmのグローバルインストール先がGit Bashの PATH に入っていません。次のコマンドで、現在のGit Bashセッションへ追加します。
export PATH="$PATH:$(cygpath -u "$(npm prefix -g)")"
hash -r
codex --version
成功すると、次のようにCodex CLIのバージョンが表示されます。
codex-cli 0.148.0
毎回設定しなくてよいようにするなら、~/.bashrc に追記します。
echo 'export PATH="$PATH:$(cygpath -u "$(npm prefix -g)")"' >> ~/.bashrc
source ~/.bashrc
認証情報をファイルへ保存する設定にする
Cloud IDEへ認証情報をコピーする可能性があるため、Windows Credential Storeではなくファイルへ保存する設定にします。Codexのユーザー設定ファイルは ~/.codex/config.toml です。
mkdir -p ~/.codex
grep -q '^cli_auth_credentials_store' ~/.codex/config.toml 2>/dev/null \
|| echo 'cli_auth_credentials_store = "file"' >> ~/.codex/config.toml
設定を確認します。
grep cli_auth_credentials_store ~/.codex/config.toml
次のように表示されればOKです。
cli_auth_credentials_store = "file"
OpenAI公式ドキュメントでは、cli_auth_credentials_store は file、keyring、auto を指定でき、file の場合は CODEX_HOME 配下、既定では ~/.codex/auth.json に認証情報を保存すると説明されています。
Windows側でChatGPTログインする
Git Bashで次を実行します。今回はローカルブラウザでログインするため、--device-auth は付けません。
codex login
次のような表示とともに、ブラウザが起動します。
Starting local login server on http://localhost:1455
If your browser did not open, navigate to this URL...
普段利用しているChatGPTアカウントでログインします。会社のChatGPTワークスペースを使う場合は、必要なワークスペースを選びます。
成功すると、ターミナルに次のように表示されます。
Successfully logged in
ログイン状態を確認します。
codex login status
次のように表示されれば、Windows側のCodex CLIはChatGPT認証済みです。
Logged in using ChatGPT
auth.jsonの場所を確認する
ファイルが作成されていることを確認します。中身は表示しません。
ls -l ~/.codex/auth.json
Windows上の実際の場所を確認する場合は、Git BashでWindows形式のパスへ変換します。
cygpath -w ~/.codex/auth.json
例として、次のようなパスになります。
C:\Users\example-user\.codex\auth.json
Cloud IDE側でログイン状態を先に確認する
ここからCloud IDE側へ移ります。ブラウザ上のVS CodeまたはCloud IDEのターミナルで、~/.codex を用意します。
mkdir -p ~/.codex
ls -a ~
.codex が表示されればOKです。次に、Cloud IDE側のログイン状態を確認します。
codex login status
もし次のように表示されるなら、すでにCloud IDE側でChatGPT認証が有効です。この場合、Windowsの auth.json をコピーしたり上書きしたりする必要はありません。
Logged in using ChatGPT
実際の確認例は、個人情報を伏せると次のような形です。
[coder@cloud-ide-host .codex]$ codex login status
Logged in using ChatGPT
未ログインの場合だけauth.jsonをコピーする
Cloud IDE側がログインしていない場合だけ、Windows側で作った auth.json をコピーします。既存ファイルがある場合は、Cloud IDE側で先にバックアップします。
cp ~/.codex/auth.json ~/.codex/auth.json.bak
SSH接続できるCloud IDEなら、Windows側のGit Bashから次のようにコピーできます。
ssh coder@cloud-ide-host 'mkdir -p ~/.codex'
scp ~/.codex/auth.json coder@cloud-ide-host:~/.codex/auth.json
OpenAI公式ドキュメントでも、信頼できるリモート環境へ auth.json を配置するパターンが紹介されています。ただし、これはアクセストークンを含むファイルを移す作業なので、対象が信頼できる環境であることが前提です。
SSHが使えず、ブラウザ版VS Codeからしかアクセスできない場合は、VS Codeのファイルアップロード機能で一時的にアップロードします。たとえば /home/coder/auth.json に置かれた場合は、Cloud IDEのターミナルで移動します。
mv ~/auth.json ~/.codex/auth.json
Git管理されているプロジェクトディレクトリに置いたままにしないことが重要です。
Cloud IDE側で権限を絞る
Cloud IDE側に auth.json を置いたら、ディレクトリとファイルの権限を絞ります。
chmod 700 ~/.codex
chmod 600 ~/.codex/auth.json
確認します。
ls -l ~/.codex/auth.json
次のように、自分だけが読める状態ならOKです。
-rw------- 1 coder coder ... /home/coder/.codex/auth.json
最後に、Cloud IDE側でログイン状態を確認します。
codex login status
Logged in using ChatGPT と表示されれば認証成功です。
Cloud IDE上でCodexを起動する
Codexは起動したディレクトリを基準に、リポジトリのファイル確認、編集、コマンド実行を行います。対象プロジェクトへ移動してから起動するのがおすすめです。
cd ~/target-project
codex
最初の動作確認では、ファイル変更を伴わない依頼から始めると安心です。
このプロジェクトの構成を確認して説明してください。
まだファイルは変更しないでください。
auth.jsonの取り扱い
~/.codex/auth.json はアクセストークンを含むため、パスワードと同じように扱います。次のような扱いは避けます。
| 避けること | 理由 |
|---|---|
cat ~/.codex/auth.json で表示する | 画面共有、ログ、履歴にトークンが残る可能性がある |
| GitHubへコミットする | リポジトリ経由で認証情報が漏えいする |
| チャットやチケットへ貼る | 閲覧者や保存期間を制御しづらい |
| 共有フォルダへ置く | 意図しないユーザーが読める可能性がある |
OpenAI公式ドキュメントでも、~/.codex/auth.json にはアクセストークンが含まれるため、コミットしたり、チケットやチャットへ貼ったりしないよう注意されています。
会社管理のCloud IDEを使う場合は、その環境へ認証情報を保存してよいか社内ポリシーも確認します。管理環境では、管理者がChatGPTログイン方式や対象ワークスペースを制限でき、認証情報が条件に合わない場合はCodexがログアウトして終了する仕組みもあります。
最短コマンドまとめ
Windows / Git Bash側です。
npm install -g @openai/codex
export PATH="$PATH:$(cygpath -u "$(npm prefix -g)")"
hash -r
mkdir -p ~/.codex
grep -q '^cli_auth_credentials_store' ~/.codex/config.toml 2>/dev/null \
|| echo 'cli_auth_credentials_store = "file"' >> ~/.codex/config.toml
codex --version
codex login
codex login status
ls -l ~/.codex/auth.json
Cloud IDE側です。
mkdir -p ~/.codex
codex login status
ここで Logged in using ChatGPT と表示されるなら、そのまま完了です。ログインしていない場合だけ、Windows側の ~/.codex/auth.json をCloud IDE側の ~/.codex/auth.json へコピーします。
chmod 700 ~/.codex
chmod 600 ~/.codex/auth.json
codex login status
最後に、対象プロジェクトでCodexを起動します。
cd ~/target-project
codex
今回の状態
今回の環境では、Windows側もCloud IDE側も codex login status が Logged in using ChatGPT になるところまで確認済みでした。そのため、最終的には auth.json をコピーせずに、Cloud IDE上でそのままCodex CLIを使える状態でした。
参考: OpenAI公式ドキュメント Authentication、Configuration Reference、Maintain Codex account auth in CI/CD