UbuntuにCodex CLIをいれてみました。手順をChatGPTにまとめてもらったので載せておきます。

先日のブログ記事で、二階堂 愛(Nikaido Itoshi)先生の公開された最新の教科書 (AIエージェントを使いこなす はじめてのバイオインフォマティクス開発作法)を紹介しました。読み始めましたがCodex CLIを導入する部分が簡潔すぎて私のような初心者には難しかったので、UbuntuにCodex CLIを最短導入する手順をまとめてみました。メモ代わりに記事にしておきます。これはChatGPT 5.4 thinkingとやりとりしながら作った記事に修正を加えたもので、この手順で無事、Codex CLIをUbuntuにインストールして教科書の例題 (大腸菌の遺伝子推定)のpython codeを作ることができました。


『UbuntuでCodex CLIを最短導入する手順』

OpenAI の Codex CLI は、ターミナル上で動くコーディングエージェントです。選択したディレクトリ内のコードを読み、変更し、必要に応じて実行できます。公式ドキュメントでは、ローカルで動かす CLI として案内されており、ChatGPT の Plus / Pro / Business / Edu / Enterprise プランで利用対象に含まれます。 (OpenAI開発者)

この記事では、Ubuntu で Codex CLI をできるだけ最短で導入する手順をまとめます。あわせて、初回起動時に認証画面が出る場合と、今回のように認証画面が出ない場合の両方について、理由と対処を整理します。 (OpenAI開発者)


はじめに:Node.js、nvm、npm とは何か

Codex CLI を入れる前に、まず 3 つの用語だけ押さえておくと理解しやすくなります。

Node.js は、ブラウザの外で JavaScript を動かすための実行環境です。Node.js の公式サイトでは、サーバー、Web アプリ、コマンドラインツール、各種スクリプトを作れるクロスプラットフォームの JavaScript runtime と説明されています。今回の Codex CLI も、この Node.js 系の仕組みを使って配布されています。 (Node.js)

nvm は Node Version Manager の略で、Node.js のバージョン管理ツールです。公式 README では、ユーザー単位でインストールし、シェル単位で使う Node.js のバージョンマネージャーと説明されています。Ubuntu ではシステム標準の Node.js が古いことがあるため (私の場合は古かったです!)、nvm を使って新しい版を入れると、CLI ツール導入時の失敗を減らしやすくなります。 (GitHub)

npm は、Node.js 用のパッケージ管理の仕組みです。(Pythonのpipみたいなものです。)npm の公式ドキュメントでは、npm はレジストリ、CLI、Web サイトから成る仕組みで、パッケージの共有・取得・管理に使うと説明されています。簡単にいえば、Node.js 用ソフトを入れるための標準的な道具です。今回の Codex CLI も npm でインストールします。 (npmドキュメント)

要するに、今回の関係は次のようになります。

  • Node.js:土台になる実行環境
  • nvm:Node.js の版を管理する道具
  • npm:Node.js 用ソフトを入れる道具
    (npm は Node.js / JavaScript 系のパッケージや CLI ツールを扱います。Node.js を使って作られたツールは、Codex CLI のように npm で配布されることがよくあります。)
  • Codex CLI:npm で入れる実際のツール本体 (GitHub)

なぜ Ubuntu では nvm を使うのが無難なのか

Ubuntu では、apt で入っている Node.js が古いことがあります。Codex CLI のインストールに使う @openai/codex は Node.js の要件を満たす必要があるため、古い Node.js のままだと失敗しやすくなります。Codex CLI の公式セットアップは npm ベースで案内されているので、最初に nvm で十分に新しい Node.js を用意しておくのが安全です。 (OpenAI開発者)

特に、システム全体の Node.js を直接更新しようとすると、権限や既存環境との兼ね合いで面倒が増えがちです。nvm はユーザー単位で動くため、sudo npm install -g ... のような作業を避けやすく、セットアップをかなり単純化できます。 (GitHub)


最短セットアップ手順

以下が、Ubuntu で Codex CLI を最短で導入する手順です。OpenAI の公式 CLI ページでは、Codex CLI の導入は npm で @openai/codex をグローバルインストールする流れになっています。 (OpenAI開発者)

1. nvm をインストールする

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

続けて、今のシェルで nvm を有効化します。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

nvm は公式に、ユーザー単位・シェル単位で使う設計です。新しいターミナルを開き直してもよいですが、上の 2 行を打てばその場でも有効になります。 (GitHub)

2. 新しい Node.js を入れる 

nvm install 22
nvm use 22
nvm alias default 22

22はOpen AIが推奨しているNode.jsのversion番号です。

ちゃんと入ったかどうかの確認:

node -v
npm -v

Node.js は JavaScript runtime、npm はそのパッケージ管理ツールです。ここで node -v と npm -v が正しく表示されれば、土台の準備は完了です。 (Node.js)

3. Codex CLI をインストールする

npm install -g @openai/codex

確認:

codex --version

Codex CLI の公式セットアップでも、インストールは npm によるグローバル導入として案内されています。上のnpmのコマンドにある-g は グローバルインストール、つまりそのユーザー環境でどのディレクトリからでも codex コマンドを使えるようにする指定です (OpenAI開発者)

4. Codex を起動する

codex

これで起動できます。通常はここでログインが必要になります。 (OpenAI開発者)


認証が必要な場合

Codex CLI は、ChatGPT アカウントまたはAPI keyで認証できます。CLI リファレンスでは codex login、codex login --device-auth、codex login --with-api-key が案内されています。 (OpenAI開発者)

もっとも普通なのは、次の流れです。

codex

初回で未認証なら、ブラウザを開いて ChatGPT OAuth でサインインする案内が出ます。CLI リファレンスでは、フラグなしの codex login はブラウザを開く ChatGPT OAuth フローを使うと説明されています。 (OpenAI開発者)

手動でログインしたい場合は、次でも構いません。

codex login

ブラウザを使いにくい環境では device auth が使えます。

codex login --device-auth

API key を使いたい場合は、標準入力経由でもログインできます。

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

これらはすべて Codex CLI の公式リファレンスに載っています。 (OpenAI開発者)


認証画面が出ない場合もあります。その理由は?

codex を実行したのに OpenAI の認証画面が出なかった場合、まず考えられるのはすでに認証済みで、その情報が再利用されたということです。OpenAI の認証ドキュメントでは、Codex は CLI や IDE 拡張でログインした情報をキャッシュし、次回起動時に再利用すると説明されています。 (OpenAI開発者)

公式には、キャッシュされた認証情報は ~/.codex/auth.json または OS の資格情報ストアに保存されます。また、CLI と拡張機能は同じログイン情報を共有するとも明記されています。つまり、認証画面が出なかった場合の理由としては、たとえば次のようなものが考えられます。 (OpenAI開発者)

  • 以前に Codex CLI でログイン済みだった
  • IDE 拡張でログインしていて、CLI がその情報を再利用した
  • API key による認証情報が保存されていた

これは異常ではなく、Codex の仕様どおりの挙動です。 (OpenAI開発者)


認証状態を確認する方法

現在の認証状態を確認したい場合は、次を実行します。

codex login status

OpenAI の CLI ドキュメントでは、codex login status は認証情報が存在するかの確認に使えると説明されています。 (OpenAI開発者)


まとめ:そのままコピペできる最短手順

以下だけ実行すれば、かなり高い確率で導入できます。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

nvm install 22
nvm use 22
nvm alias default 22

node -v
npm -v

npm install -g @openai/codex
codex --version

codex

認証状態の確認:

codex login status

認証をやり直したいとき:

codex logout
codex

これで、認証が出る場合も出ない場合も、状態を把握しながら進められます。 (OpenAI開発者)


補足:覚えておくと便利な最初のコマンド

使い始めた直後に覚えておくと便利なのは、次の 3 つです。

/quit
/exit

で終了できます。control +Cでも終了できます。 (OpenAI開発者)

/plan

を使うと、いきなりコードを書かせずに方針だけ出させられます。慣れないうちはかなり有用です。 (OpenAI開発者)

/diff

を使うと、Codex が加えた変更を確認できます。編集を伴う作業では見る癖をつけると安心です。 (OpenAI開発者)


まとめ

Ubuntu で Codex CLI を最短で入れるなら、nvm → Node.js → npm → Codex CLI の順がもっとも素直です。Node.js は JavaScript を動かす土台、nvm はその版管理、npm は Node.js 用ソフトの導入ツールです。Codex CLI は npm で入れ、起動後は ChatGPT または API key で認証します。すでに認証情報が保存されている場合は、今回のように認証画面が出ないこともあります。 (Node.js)

Codex CLIが動くようになれば、二階堂先生の教科書の例題がためせます。ただFASTAファイルをダウンロードする方法とか、そのFASTAファイルを指定して作業させる方法とかも、初心者には難しいと思います。そのやり方は明日まとめることにします。