動かざることバグの如し

近づきたいよ 君の理想に

codexでAPIキー設定方法が変わっていた件

環境

  • codex-cli 0.98.0

codexアップデートしたらAPIキー設定できなくなってた件

普段codexを使っているのだが、個人のAPIキーで使っている。以前はconfig.tomlでpreferred_auth_method = "apikey"と設定すれば簡単に切り替えられたのだが、codexを久々にアップデートしたらこの方法が使えなくなっていた。

~/.codex/config.tomlで

model = "gpt-5.2-codex"
model_reasoning_effort = "medium"
personality = "pragmatic"

preferred_auth_method = "apikey"

のところが

Additional properties are not allowed ('preferred_auth_method' was unexpected)

でエラーになってた。

対応

どうやらpreferred_auth_methodというプロパティがconfig.tomlから削除されたらしい。

まずはググって一番最初に出てきたやり方で試してみた。

❯ codex login --api-key sk-dummy
The --api-key flag is no longer supported. Pipe the key instead, e.g. `printenv OPENAI_API_KEY | codex login --with-api-key`.

ダメじゃねーかw。エラーメッセージの通りパイプで渡す方式に変更されたようだ。--api-keyフラグが廃止されて--with-api-keyに置き換わった模様。

というわけでパイプで渡してみる。

printenv sk-dummy | codex login --with-api-key
Reading API key from stdin...
No API key provided via stdin.

これもダメ。どうやら環境変数として先に設定しておかないとprintenvで値が取得できないらしい。当然だが直接文字列をパイプしようとしても認識してくれないようだ。

正しい手順は以下の通り。まず環境変数APIキーを設定してから、それをパイプで渡す必要がある。

export OPENAI_API_KEY=sk-dummy

❯ printenv OPENAI_API_KEY | codex login --with-api-key

Reading API key from stdin...
Successfully logged in

これで無事ログインできた。config.tomlからpreferred_auth_methodの設定を削除して、codex login --with-api-key環境変数経由でAPIキーを渡す方式に移行する必要があるようだ。

セキュリティ的にはAPIキーを直接コマンド履歴に残さず、環境変数経由で渡す方式の方が確かに安全ではある。面倒になったのは仕方ない。