チュートリアル · 読了まで約 17 分

2026、ターミナル AI の本命とも言える
OpenAI Codex CLI を Clash 分流で通す:npm registry・OpenAI API・Docker Hub のサンドボックスイメージ

OpenAI Codex CLI(パッケージ名 @openai/codex)は、エディタに閉じない端末ネイティブの AI コーディングエージェントとして 2025〜2026 年にかけて議論の中心にあります。導入のたびに表面化するのは、npm registry からの取得、初回ログイン時の OpenAI 系 HTTPS、ストリーミングに近い OpenAI API セッション、任意の MCP サーバ取得、そして隔離実行用の サンドボックスイメージDocker Hub などから引く流れが一本の開発者パスに束ねられる点です。本稿では Clash 分流Mihomo 互換の観点から、DOMAIN-SUFFIXRule Provider で再現性のある出口を作る手順を整理します。特定クライアントの宣伝ではなく、ログを正に育てる運用に焦点を当てます。

Codex CLI · npm · OpenAI API · Docker · Clash · Rule Provider

1 Codex CLI が踏む典型経路

多くのチームで最初に行うのは npm install -g @openai/codex のようなグローバル導入です。ここで触れるのは公開 npm registry(代表例として registry.npmjs.org)と、その周辺に現れる tarball 配信ホストです。次に CLI の初回起動では、ブラウザを介した OpenAI アカウント連携やトークン取得のため、openai.com 配下や chatgpt.comapi.openai.com に代表される API エンドポイントへのアウトバウンドが続きます。さらに隔離実行やツールチェーン拡張を有効にすると、Docker Hubdocker.ioregistry-1.docker.io など)や ghcr.io といったコンテナレジストリdocker pull が走るケースが増えます。

つまり「ChatGPT がブラウザで開ければよい」と「Codex CLI が最後まで自律的に動く」は別レイヤの話で、前者だけを ChatGPT/OpenAI 記事でカバーしても、後者には npm registryDocker Hub の束が抜けがちです。逆に MCP と npm/GitHub の専文だけでは、OpenAI API の長めのセッションや公式サンドボックスイメージの取得経路まで踏み込めません。本稿はその中間に位置づけます。

2 npm と @openai/codex

npm registry 向けルールは、npmjs.orgnpmjs.com を広めに DOMAIN-SUFFIX で束ねるのが無難です。registry.npmjs.org だけを購読リストに書いても tarball 取得で別ホストがログに出ることがあるため、接続ログの SNI を正に足していく運用が安全です。社内で Verdaccio などのミラーを使う場合は、そのミラーホストを意図的に DIRECT に落とし、公開 registry だけをプロキシへ載せる二段構えにすると切り分けが容易です。

corepackpnpm、企業プロキシ経由の npm では追加のホスト名が出ます。詰まったら「パッケージ名が Codex だから」ではなく、取得 URL のホストをルールに反映してください。Rule Providercodex-dev-net.yaml のような短いファイルを切り出しておくと、CLI のバージョンアップに伴う周辺ホストの増減だけを差分レビューできます。

3 初回ログインと OpenAI 系ドメイン

初回ログインはデバイスフローやブラウザリダイレクトを含み、短時間に複数ホストへ飛びます。実務では openai.comauth.openai.complatform.openai.com、ブラウザ体験と重なる chatgpt.comchat.openai.com、証明書検証や静的資産に関わる oaiusercontent.com などがログに並ぶことがあります。ここをバラバラのプロキシノードに分散させると、Cookie や TLS セッションの観点で不安定になるので、同一セレクタ(例:OPENAI_PROXY)へ寄せる設計が読みやすいです。

ホスト名は可変です: OpenAI 側のインフラは更新されます。本稿の列挙は出発点であり、接続ログで実測した SNIRule Provider に追記する前提で読んでください。

4 OpenAI API と長めのセッション

Codex CLI の本体動作は OpenAI API への HTTPS を長時間維持しがちです。api.openai.com を含む openai.com 系をまとめて扱い、MATCH よりかつ誤爆しやすい DOMAIN-KEYWORD よりに置くと、他ベンダーの生成 AI ルールと衝突しにくいです。ストリーミング応答では中間装置のタイムアウトが効きやすいので、企業プロキシの前段で CLI だけ別出口にする、といったセレクタ分離も検討対象です。

DNS 側で期待と異なる IP が返ると、ルール上は正しく見えても実パケットがズレます。FakeIP と DoH の組み合わせを使う場合は、ターミナル・Docker デーモン・ブラウザが同じリゾルバ経路を見ているかを先に揃えるとよいです。

5 サンドボックスイメージと Docker Hub

隔離実行を有効にすると、CLI または裏側のランタイムが Docker Hub や GitHub Container Registry(ghcr.io)からサンドボックスイメージを取得します。Docker エコシステムでは docker.ioregistry-1.docker.io、認証系の auth.docker.io、CDN 周りのホスト名がログに現れます。これらを OpenAI 用ルールとは別ファイルの Rule Provider(例:container-registries.yaml)に分離しておくと、「モデル通信は落ちないのに pull だけ遅い」といった非対称な症状の切り分けが速くなります。

ローカルで Docker Desktop を動かしている場合、docker pull はホスト OS のルーティングと DNS に従います。WSL2 バックエンドなら Linux 側の resolv.conf と Windows 側の Clash が二重化しがちなので、WSL2 と Clash の記事と合わせて読むと理解が揃います。

6 MCP・追加レジストリとの棲み分け

Codex CLI から MCP サーバを追加すると、再び npm registrygithub.com 系オブジェクト配信へ戻ることがあります。この層は MCP 専文DOMAIN-SUFFIX 束とほぼ同型です。運用上は「OpenAI 束」「コンテナレジストリ束」「パッケージ/Git 束」を三つの Rule Provider に分け、rules では RULE-SET の並べ順だけを議論する方が、レビューとロールバックが楽です。

7 企業 VPN とローカル Docker の併用

企業 VPN がデフォルトルートを握る環境では、Clash の TUN と競合しやすいです。スプリットトンネルで社内 CIDR を VPN へ、開発者向けドメインを Clash 側へ、と書き分けるか、VPN クライアントの「全トラフィック代理」を見直す必要があります。詳細は 企業 VPN と Clash を参照してください。

Docker と Clash を同じマシンで動かすときは、(1) デーモンが参照する DNS、(2) HTTP(S)_PROXY をコンテナ build に渡すか、(3) 逆プロキシでレジストリをミラーするか、の三点が衝突点になります。Codex のサンドボックスが「ホストの Docker をそのまま使う」タイプなら、ホスト側の Clash 分流を先に安定させるのが近道です。

セキュリティ: エージェントがコンテナ内で任意コマンドを走らせる可能性があります。ネットワーク本稿は出口設計に限定し、RBAC やイメージ署名の話題とは切り分けてください。

8 YAML 断片と Rule Provider

以下は Mihomo/Clash Meta 互換の rules に追記するイメージです。DEV_OPENAI は手元のプロキシグループ名に置換し、MATCH より上に配置してください。コメントは英語のみとします。

YAML
# Place ABOVE MATCH. Replace DEV_OPENAI. Extend from your live connection logs.
rules:
  # npm ecosystem (global install @openai/codex)
  - DOMAIN-SUFFIX,npmjs.org,DEV_OPENAI
  - DOMAIN-SUFFIX,npmjs.com,DEV_OPENAI
  # OpenAI auth + API + web overlap (verify hostnames in logs)
  - DOMAIN-SUFFIX,openai.com,DEV_OPENAI
  - DOMAIN-SUFFIX,chatgpt.com,DEV_OPENAI
  - DOMAIN-SUFFIX,oaiusercontent.com,DEV_OPENAI
  # Common container pulls for sandbox / isolation images
  - DOMAIN-SUFFIX,docker.io,DEV_OPENAI
  - DOMAIN-SUFFIX,docker.com,DEV_OPENAI
  - DOMAIN-SUFFIX,ghcr.io,DEV_OPENAI

# rule-providers sketch (split files in production):
# rule-providers:
#   codex-openai:
#     type: http
#     behavior: classical
#     url: "https://example.com/rules/codex-openai.yaml"
#     path: ./rules/codex-openai.yaml
#     interval: 86400
# rules:
#   - RULE-SET,codex-openai,DEV_OPENAI

GitHub 由来のツールや MCP を同じマシンで使うなら、github.comobjects.githubusercontent.com など既存の開発者ネット束を同じグループへ載せるか、別 RULE-SET にして順序だけ調整してください。

9 トラブルシューティング

  • npm install -g @openai/codex が tarball で止まる: registry 以外のホストが別ルールに滑っていないか確認。npmjs.org 系の束を広げる。
  • ログインだけ失敗する: ブラウザと同じホスト群が CLI からも通るか。システムプロキシとターミナルの環境変数の差を疑う。
  • API は通るがサンドボックス起動が遅い: docker.ioregistry-1.docker.io が直連のまま詰まっていないか。Docker 側の DNS を確認。
  • VPN 接続中だけ不安定: デフォルトルート優先とスプリット設定を見直す。
  • TUN 有効時のみ再現: TUN モードの除外リストと、Docker の仮想ブリッジの干渉を確認。

10 まとめ

OpenAI Codex CLI@openai/codex の取得から OpenAI API セッション、任意の MCPDocker Hub などのサンドボックスイメージまでが連続するため、単一ドメインのルールでは足りません。Clash 分流では DOMAIN-SUFFIX で束ね、Rule Provider にファイル分割してチーム共有すると、再現性とレビュー性が上がります。ChatGPT 一般論と MCP 専文のあいだを埋める用途で本稿を位置づけています。

Mihomo 互換スタックは DNS とルールを一体で扱えるため、ターミナルエージェントのように長時間セッションとレジストリ取得が混ざるワークロードに向いています。ログを正にホストを足し続ける運用が、CLI のマイナーアップデートにも耐える近道です。

出口の一貫性を先に取り戻せば、Codex 側の設定トラブルとネットワーク起因の切り分けが格段に楽になります。短い YAML 断片を版管理し、セレクタ名だけチームで揃えるだけでも効果があります。

→ 無料で Clash をダウンロードし、Codex CLI の npm・OpenAI・Docker 経路を同じ分流で安定させる

タグ: OpenAI Codex CLI @openai/codex npm registry OpenAI API Docker Hub サンドボックスイメージ Clash 分流 Rule Provider Mihomo
Clash クライアントのロゴ:Codex CLI 利用時の接続ログ確認にも使える

Clash Verge Rev

次世代 Clash クライアント · 無料オープンソース

Codex CLI のように npm・OpenAI・Docker が混ざる経路は、ログで SNI を追いかけやすい GUI が有利です。Rule Provider を差し替えながら、TUN とシステムプロキシを切り替えてターミナルとブラウザの出口を揃えられます。

Rule/セレクタ Mihomo コア DNS/FakeIP Rule Provider 接続ログ

関連記事