ゴール:WSL(Ubuntu) を開いたら 毎回ただ
codexと打つだけで CodexCLI が使える。
やること:① nvm 方式に統一 → ② LTS の Node を既定化 → ③ CodexCLI を導入 → ④ wslview でログイン画面を確実に開く → ⑤.bashrcに恒久設定。
はじめに(Problem → Agitation → Solution)
Problem|よくあるつまずき
-
codex: command not foundと言われる -
npm -gのインストール先(prefix)と nvm がケンカして PATH から消える - WSL からブラウザが開かず、サインイン画面にたどり着けない
Agitation|放置のデメリット
- 直ったと思っても Node を更新した瞬間に再発(nvm は Node ごとにグローバルが別)
- 再セットアップの 手戻りコスト が継続的に発生
Solution|設計から直す
- nvm 方式に統一し、LTS を既定化
- CodexCLI は nvm 管理下の
npm -gで入れる(sudo不要) - wslview で WSL→Windows の既定ブラウザを開く
-
.bashrcに 自動初期化を仕込んで恒久化
目次
- はじめに(Problem → Agitation → Solution)
- 前提(環境と用語)
- 全体像(根本原因と対処)
- ステップ1:nvm を初期化し、LTS の Node を既定にする
- ステップ2:CodexCLI をインストール(nvm 配下・
sudo不要) - ステップ3:wslview を入れて、ブラウザを確実に開く
- ステップ4:初回サインイン(Sign in with ChatGPT)
- ステップ5:恒久化(
.bashrcに自動初期化を追記) - 失敗時のチェック(よくあるQ&A)
- Q1.
codex: command not foundのまま - Q2. サインイン画面が開かない/真っ白
- Q3. Node を更新したらまた見えなくなった
- Q1.
- 最短ワンライナー(全部まとめてやる版)
- 参考資料
- おまけ:用語の解説
- まとめ
前提(環境と用語)
- WSL2 + Ubuntu(Windows 上の Linux 環境)
- nvm:Node.js のバージョンを切り替える道具。バージョンが変わると npm の“グローバル置き場”も別になる。
- wslview(wslu):WSL から Windows の既定ブラウザを開くユーティリティ。
-
PATH:シェルが コマンドを探す“道”。ここに
codexの置き場が入っていないと「見つからない」。
全体像(根本原因と対処)
-
npm prefix と nvm の不整合 →
~/.npmrcで prefix をいじらず nvm に統一 -
PATH 未反映 →
.bashrcに nvm 初期化を記述 -
WSL→ブラウザ連携不足 → wslu(wslview)導入+
BROWSER=wslview
ステップ1:nvm を初期化し、LTS の Node を既定にする
# nvm を読み込む(毎回は不要:後で .bashrc に恒久化します)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# LTS をインストールして、その場で使う
nvm install --lts
nvm use --lts
# 次回以降も LTS を自動で使う既定設定
nvm alias default lts/*
解説
-
export NVM_DIR=... / . "$NVM_DIR/nvm.sh":nvm 本体を読み込む(このシェルだけ有効) -
nvm install/use --lts:安定版(LTS)の Node を入れて選択 -
nvm alias default lts/*:新しいシェルでも LTS を既定にする
ステップ2:CodexCLI をインストール(nvm 配下・sudo 不要)
# CodexCLI をグローバル導入
npm install -g @openai/codex
# 実行ファイルの場所とバージョンを確認
which codex
codex --version
解説
-
npm install -g:ツールをどこからでも使えるように入れる(nvm 配下なので権限はユーザーだけでOK) -
which codex:PATH 上の codex のフルパスを表示 -
codex --version:CodexCLI の バージョンを確認
ステップ3:wslview を入れて、ブラウザを確実に開く
# wslu(wslview を含む)を導入(初回だけ)
sudo apt update && sudo apt install -y wslu
# このシェルで wslview を“ブラウザ”として使う
export BROWSER=wslview
解説
-
sudo apt install -y wslu:WSL ユーティリティ群(wslview含む)を入れる -
export BROWSER=wslview:リンクを Windows 既定ブラウザで開くよう指定(このシェルのみ)
ステップ4:初回サインイン(Sign in with ChatGPT)
# CodexCLI を起動(サインイン画面が Windows 側で開く)
codex
操作
- 画面の案内に従い 「Sign in with ChatGPT」 を選択。
- 認証情報はホーム配下
~/.codex/に保存され、次回からすぐ使える。
ステップ5:恒久化(.bashrc に自動初期化を追記)
# 一度だけ追記(重複防止の印を付けています)
grep -q '### codex auto-setup ###' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
### codex auto-setup ###
# nvm の初期化(新しいシェルでも nvm を使えるようにする)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
# 毎回 LTS を自動選択(codex が常に見える状態に)
nvm use --lts > /dev/null 2>&1
# WSL から Windows の既定ブラウザを使う(サインイン画面が確実に開く)
export BROWSER=wslview
### codex auto-setup ###
EOF
# すぐ反映
source ~/.bashrc
解説
-
nvm 初期化:PATH に nvm 管理の bin を通す -
nvm use --lts:新しいシェル起動時に 自動で LTS を選ぶ -
export BROWSER=wslview:認証やリンクを Windows の既定ブラウザで開く
失敗時のチェック(よくあるQ&A)
Q1. codex: command not found のまま
# nvm が読み込まれているか
command -v nvm || echo "nvm が未読み込みです"
# LTS を選べているか
nvm use --lts
node -v && npm -v
npm config get prefix # ~/.nvm/versions/node/... になっていればOK
# CodexCLI が入っているか
npm list -g --depth=0 | grep @openai/codex || echo "未インストールの可能性"
which codex || echo "PATH 未反映の可能性"
Q2. サインイン画面が開かない/真っ白
pkill -f codex || true # codex をいったん終了
export BROWSER=wslview # ブラウザを wslview に明示
codex
(Chrome を直指定する例)
export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
codex
Q3. Node を更新したらまた見えなくなった(nvm は Node ごとに npm グローバルが別)
# 旧バージョンを控える(例: v22.20.0)
OLD_NODE="$(nvm current)"
# 新しい LTS を入れて切替
nvm install --lts
nvm use --lts
nvm alias default lts/*
# 旧バージョンのグローバルを新バージョンに引き継ぐ
nvm reinstall-packages "$OLD_NODE"
# 念のため CodexCLI を明示再導入
npm install -g @openai/codex
最短ワンライナー(全部まとめてやる版)
実行前に
.bashrcのバックアップ推奨。
export NVM_DIR="$HOME/.nvm"; [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm install --lts && nvm use --lts && nvm alias default lts/*
npm install -g @openai/codex
sudo apt update && sudo apt install -y wslu
grep -q '### codex auto-setup ###' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
### codex auto-setup ###
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
nvm use --lts > /dev/null 2>&1
export BROWSER=wslview
### codex auto-setup ###
EOF
source ~/.bashrc
codex # 初回はサインイン
参考資料
-
Codex CLI(公式):
-
Codex セキュリティ(Windows は WSL 推奨):
-
nvm(Node Version Manager)公式:
-
wslview / wslu(WSL→Windows 既定ブラウザ):
おまけ:用語の解説
- nvm:Node のバージョンを切り替える道具。バージョンが変わると npm の“グローバル置き場”も別になる点がキモ。
- npm -g:ツールをどこからでも使えるように入れること。nvm 管理下で使うと安全。
- wslview:WSL から Windows の既定ブラウザを開くコマンド。サインイン画面が確実に出る。
-
PATH:シェルが コマンドを探す道。ここに
codexの場所が含まれていないと「見つからない」。
まとめ
-
nvm に統一して LTS を既定化、wslview でサインイン画面を確実に開き、
.bashrcで毎回の初期化を自動化すれば、WSL を開いてcodexと打つだけの快適環境になります。 - Node 更新時は
nvm reinstall-packagesとnpm -g i @openai/codexで“すぐ復活”。