@ledsun blog

無味の味は佳境に入らざればすなわち知れず

Codex CLI内でnpmコマンドを実行する

背景

Fix ESLint v10 RuleContext API removal (follow-up to #3972) by ledsun · Pull Request #3979 · jsx-eslint/eslint-plugin-react · GitHub を直そうとしています。 CI環境の設定がよくわかりません。 Codex CLIと相談しながら進めることにしました。

Codex CLIを使っているのは、CLI系のコーディングエージェントを試してみたかったのと、ChatGPTを有料契約しているからです。 技術的な理由では選択していません。

実行したコマンド

次のようなnpmコマンドを試す必要がありました。

rm -rf node_modules package-lock.json
npm install --omit=dev
npm install --no-save --legacy-peer-deps eslint@^10 typescript@^5
npm run build-types

しかし、Codex CLIはデフォルトではサンドボックスで実行されネットワーク接続が許可されていません。 安心ですね。

Codex CLIサンドボックス

Codex CLIには次の3つのサンドボックスがあります。

  • read-only: 読み取り専用
  • workspace-write: ワークスペース内のみ書き込み可(ネットワークはデフォルト無効)
  • danger-full-access: 制限なし(ローカル環境と同等の権限)

デフォルトではworkspace-writeが使われます。 ファイルの書き込みはできますが、ネットワーク接続は許可されていません。

ネットワークを有効化する方法

次のコマンドでネットワーク接続を許可して起動できます。

codex -c 'sandbox_workspace_write={network_access=true}'

永続化するには~/.codex/config.tomlにネットワーク接続を許可する設定を追加します。

[sandbox_workspace_write]
network_access = true