Codex ローカルLLM運用——OpenAIのCodex CLIをローカルのOSSモデルで動かす組合せは2026年1月から可能だったが、5月14日のOllama v0.24.0 で公式機能として揃った。ollama launch codex 一発でCodex CLIがローカルLLMバックエンドで立ち上がり、OpenAIのコーディングエージェントが自分のマシンで、レート制限なし、API課金なしで動く。

SAME AGENT, LOCAL MODELリクエストの通り道

Codex から見れば Ollama はただの OpenAI サーバー

  1. Codex CLI

    codex --profile

  2. 互換 API

    localhost:11434/v1

  3. Ollama

    ローカルのサーバー

  4. gpt-oss

    20b / 120b

  5. ツール実行

    ファイル・シェル・Git

出典: docs.ollama.com Codex CLI Integration。base_url が変わるだけでエージェントループは同じ

30秒でわかるCodex×Ollama

  • ・ollama launch codex がconfig追記・モデルpull・64kコンテキスト設定・起動までを1コマンドで行う
  • ・推奨は gpt-oss:20b(既定)/gpt-oss:120b(ハイエンド機)/gpt-oss:120b-cloud(Ollama Cloud)。64k以上のコンテキストとツール呼出対応が要る
  • ・config.tomlのプロファイルで、ローカル20B/120B/クラウドを codex --profile 1つで切り替える
  • ・API課金もレート制限もない。コードがOpenAIに送られないので社外秘リポジトリにも使える
  • ・現行のOllamaは v0.33.2(2026-08-27)。CLI側の ollama launch codex は改名されていない

LLMそのものの仕組み・量子化・主要モデル比較は LLMとは?仕組み・主要モデル比較・ローカル実行・量子化を一気にまとめる2026年版 が土台になる。本記事はその一歩先、CLIのコーディングエージェント(Codex CLI)とローカルLLMの統合を扱う。

Codex CLIをOllama経由でローカル実行するデモ(5分)。(出典:YouTube「Codex + Ollama = Free Unlimited Coding AI (Under 5 Minutes)」/Grayson Ho | AI Builders Lab)

何が起きたのか:Ollama 0.24でCodex統合が完成

2026年1月15日のOllama公式ブログ「OpenAI Codex with Ollama」で ollama launch codex(と codex --oss)が初登場し、1月23日の「ollama launch」ブログで Claude Code・OpenCode・Codex・Droid をワンコマンドで起動する ollama launch ファミリーが正式化された。5月14日のv0.24.0でデスクトップ版Codex Appを起動する ollama launch codex-app が加わり、CLI・デスクトップの両系統が揃った。

Ollamaは以前から http://localhost:11434/v1 でOpenAI互換APIを提供していたので、Codex側を手で設定すればローカル接続はできていた。新しいのはセットアップの摩擦を消すレイヤーだ。

ONE COMMANDollama launch codex

手で30分かけていた設定を、1コマンドが肩代わりする

  1. Codex CLI を確認

    入っていなければ案内する

  2. 推奨モデルを pull

    既定は gpt-oss:20b

  3. config にプロファイルを追記

    model_providers / profiles.ollama-launch

  4. 64k 以上のコンテキストで起動

    codex --profile ollama-launch 相当

出典: Ollama 公式ブログ「OpenAI Codex with Ollama」(2026-01-15)・docs.ollama.com

gpt-ossは128kまでのコンテキストに対応する。これまで30分かけていた作業が1コマンドになり、ollama launch ファミリーが主要エージェントCLIを広くカバーしていく方向から、Ollamaが「ローカルLLMコーディングのハブ」を狙っているのが見える。関連オプションは2つ、--model(起動モデルの指定)と --restore(Ollama連携で書き換える前のCodex設定に戻す。バックアップは ~/.ollama/backup/codex-app/)だ。

Codex ローカルLLM化のしくみ:Codex CLIとOllamaの接続

OpenAI Codex CLI は @openai/codex としてnpm(Homebrewも可)で配布される、Rust実装・Apache-2.0ライセンスの公式コーディングエージェントだ。リポジトリの説明は “Lightweight coding agent that runs in your terminal”。2026年7月時点で0.142系まで進んでおり、--oss や --profile が使えるかは codex --version で確かめるのが確実だ。ファイル読み書き、シェル実行、Git操作、ブラウザ確認といったツールを呼びながら自律的にタスクを進める、Claude Codeに対するOpenAI側のカウンターパートである。

認証は3系統ある。

・ChatGPT契約でのサインイン:Plus/Pro/Business/Edu/Enterprise。ChatGPT側のメッセージ枠を消費
・OpenAI APIキー:OPENAI_API_KEY を環境変数に入れる。トークン課金
・OSSモード(本題):codex --oss か --profile <ollama-profile> でローカル/OSSプロバイダ接続。課金もレート制限もない

構成は、Codex CLIがHTTPクライアント、OllamaがOpenAI互換のHTTPサーバーだ。Codexから見ると api.openai.com と localhost:11434 の違いはベースURLだけで、エージェントループ・ツール実行・コンテキスト管理は同一のコードパスで走る。クラウドAPIをローカルAPIに丸ごと置き換えても、上位のエージェント体験は変わらない。

注意点は2つ。1つ目はコンテキスト窓で、Codexは1ターンごとに思考・ツール出力・差分パッチを大量に積むため、Ollama公式ドキュメントは64k以上を推奨している(初出ブログでは32k以上だったが、実運用の推奨値は上振れした)。2つ目はツール呼出(function calling)への対応で、OllamaのTools APIに乗っていないモデルではエージェントループが破綻する。ollama show <model> で Tools: yes を確認する。

Codex CLIのセットアップ:数分で動かす最短手順

最短手順は「Ollama 0.24以上を入れる → Codex CLIを入れる → ollama launch codex」の3段階だ。

# Ollama(macOS / Linux。Macは brew install ollama でも可)
curl -fsSL https://ollama.com/install.sh | sh
ollama --version   # 0.24.0以上であること

# Codex CLI(Homebrew の cask は codex。openai-codex-cli ではない)
npm install -g @openai/codex
# brew install --cask codex
codex --version

ollama launch が認識されなければバージョンが古いので、brew upgrade ollama か再インストールで上げる。Windowsは公式のPowerShellスクリプトでCodexを入れる。

# デフォルト構成で起動(gpt-oss:20b、64kコンテキスト)
ollama launch codex

# gpt-oss:120b(ローカル。量子化込みで60〜80GB級のメモリが目安)
ollama launch codex --model gpt-oss:120b

# gpt-oss:120b-cloud(Ollama Cloud経由。手元のリソースを使わない)
ollama launch codex --model gpt-oss:120b-cloud

初回はgpt-oss:20bのpull(十数GB規模)が入る。起動後はChatGPT版Codexと同じUI・キーバインドで、ファイル編集・シェル実行・Git操作も同じように使える。Cloud版は「120Bを試してからローカルに落とすか決めたい」ときに便利だ。

config.tomlを自分で管理したい、CIなど非対話環境で使いたいなら手動でもつなげる。base_urlを http://localhost:11434/v1 に向け(http:// を省くと失敗する)、Ollamaサーバーを起動しておき、codex --oss か codex --profile <名前> で起動する。

ollama serve &                 # アプリ常駐なら不要
ollama pull gpt-oss:20b
codex --oss -m gpt-oss:20b     # OSSモード(ローカルプロバイダ)で起動

モデル選定とconfig.tomlプロファイル管理

ollama launch が生成するのは、次のようなプロバイダ定義とプロファイルだ。ここに自分用のプロファイルを足す。

# Ollama接続定義(base_urlが11434なのがポイント)
[model_providers.ollama-launch]
name = "Ollama"
base_url = "http://localhost:11434/v1"

# プロファイル1: ローカル20B(普段使い)
[profiles.ollama-launch]
model = "gpt-oss:20b"
model_provider = "ollama-launch"

# プロファイル2: ローカル120B(M4 Max級限定)
[profiles.ollama-120b]
model = "gpt-oss:120b"
model_provider = "ollama-launch"

# プロファイル3: クラウド120B(外部送信OKな案件)
[profiles.ollama-cloud]
model = "gpt-oss:120b-cloud"
model_provider = "ollama-launch"
config.tomlのプロファイルで二段運用。全部クラウドCodexだと課金が膨らみレート制限で止まりコードが外部送信される。ローカル8割+クラウド2割にすると軽量タスクは無料のローカル20B、重い判断だけクラウド切替でcodex --profile 1つで往復できる
プロファイル運用の本質は「コスト構造を意識しなくてよくなる」点。(図:AI Heartland)

軽量タスクは codex --profile ollama-launch、重い設計レビューは ollama-120b、外部送信OKな案件は ollama-cloud と、同じコマンド体系で使い分ける。エージェント系は反復のたびにトークンを消費するので、ローカル比率を上げるほど月額のAPI課金が減り、気にせず叩ける体験に近づく。

モデル パラメータ 量子化後メモリ目安 コンテキスト ツール呼出 Codex用途の相性(主観)
gpt-oss:20b 20B (MoE) 約13〜16GB 128k ✅ ★★★(基準・デフォルト)
gpt-oss:120b 120B (MoE) 約60〜80GB 128k ✅ ★★★★
gpt-oss:120b-cloud 120B (MoE) クラウド 128k ✅ ★★★★
Qwen3 Coder 30B級 約18〜24GB 長尺 ✅ ★★★★(コード特化)
GLM系 30B〜100B級 20〜60GB 長尺 ✅ ★★★
Kimi K2.6 1T (MoE) クラウド推奨 長尺 ✅ ★★★★(巨大MoE)
小型Chatモデル(〜8B) 〜8B 約5GB 〜128k △ ★(エージェント用途に不向き)

メモリとコンテキストは量子化・設定に依存する概算で、「相性」は筆者が同一プロンプト(軽量リファクタ+PR作成)で試した主観評価だ。OpenAI自身がオープン化したgpt-oss:20b/120bが、Codexのプロンプト前提に最も自然に噛み合う。長尺リファクタや既存コード読解ではQwen3 Coderが20Bより良いこともある。Kimi K2.6は1Tパラメータ級のMoEでローカル実行は事実上不可能なのでクラウド経由になる(Kimi K2.6エージェントスワーム解説)。小型Chatモデルは自己修正能力が低く不向きだ。

失敗しにくいのは、gpt-oss:20bで ollama launch codex を試し、ollama ps でメモリの余裕を見て120Bに上げ、足りなければCloud版、さらに特定タスクで足りなければOpenAI公式モデルのプロファイルを足す順だ。

Codex Appの改名と、v0.32以降の変更

ollama launch codex-app は、OpenAI公式のCodex App(デスクトップ版)をOllamaのモデルで起動するv0.24.0の目玉だった。macOSとWindowsに対応し、組み込みブラウザで開発中のページに直接注釈して修正指示を出せる、レビューモードで差分にコメントを返せる、モデル設定がセッションをまたいで残る、といった機能を持つ。Ollama公式ドキュメントのApp例には gemma4:31b(ローカル)や kimi-k2.6:cloud(クラウド)の指定もある。

ollama launch codex-app            # v0.32.0以降は ollama launch chatgpt
ollama launch codex-app --restore  # Ollama連携前の設定に戻す

v0.32.0(2026-07-11)では次の変更が入った。

変更(v0.32.0) 内容
Codex App統合 → ChatGPTへ改名 ollama launch chatgpt に。--restore で元のChatGPTプロファイルに戻る。公式ドキュメントのCodex Appページには旧名が残っている
素の ollama がエージェント起動に 引数なしの ollama で対話エージェントが立ち上がる(リリースノートの例では glm-5.2:cloud が既定)
launchメニューの簡素化 主要な連携のみ表示。それ以外は ollama launch <名前> で直接指定
旧世代モデルに非推奨警告 CodeLlama・Qwen2.5(-coder)・Llama 3.x・Mistral・StarCoder・素の DeepSeek-R1 タグに警告

改名されたのはデスクトップApp側だけで、CLI側の ollama launch codex は変わっていない。非推奨警告は選定に効き、ツール呼び出しの精度が体験を左右するエージェント用途では、警告が出る世代をあえて選ぶ理由は薄い。挙動が記述と食い違うときは、まず ollama --version と codex --version を確かめてほしい。

Codex ローカルLLMの性能・限界とトラブルシュート

WHERE 20B FITS任せ方の境界

diff 30行・3ファイル以内なら、ローカル20Bでクラウドに近い

ローカル gpt-oss:20b に任せる

ループが1〜2回で収束

  • 5〜30行のバグ修正・型エラー
  • 単体テストの追加・リネーム
  • README の整形・翻訳

120B か公式モデルへ上げる

20B だとループがまとまらない

  • 数十ファイルを跨ぐ設計変更依存関係の理解が要る
  • 仕様書からの実装補完業務ロジックの推論
  • セキュリティ監査級のレビュー性能チューニングも同じ
一般に語られる傾向をもとにした切り分け。体感はマシン・モデル・タスクで変わる

傾向として、diffが30行以内・影響範囲が3ファイル以内ならループが早く収束し、20Bでもクラウドに近い体験になりやすい。20ファイル横断のリファクタのような大物は、20Bだとループが回ってもまとまらず、結局120Bかクラウドに切り替えることになる。境界を意識してプロファイルを切り替えるのが現実的な運用だ。

軸 クラウドCodex(公式モデル) ローカルCodex(gpt-oss:20b)
課金 トークン課金 or ChatGPT契約 $0(電気代のみ)
レート制限 あり(プランによる) なし
モデル品質 最高水準 ★★★(実用十分)
コード送信先 OpenAIサーバ 端末内のみ
オフライン動作 ✕ ✅
コンテキスト窓 大きい 128k
応答速度 API遅延あり GPU依存
モデル更新 OpenAI側で自動更新 自分で ollama pull
エージェント反復 課金懸念で抑制しがち 気にせず叩ける

エージェント系は1タスクで数十回モデルを呼ぶのが普通なので、回数を気にせず叩けると「PRを複数の観点でレビューさせて修正案を比べる」ような使い方が成立する。代わりに、コード理解の絶対値とコンテキスト窓では最新の公式モデルに譲る。速度・課金・プライバシーを取るか、品質・コンテキスト・最新性を取るかのトレードオフだ。

ollama show gpt-oss:20b | grep -i tools
# => Tools: yes  ← OK
症状 原因 対処
起動直後にループする Tools: no のモデル ollama show で Tools: yes を確認
すぐ詰まる コンテキストが64k未満 context length を確かめ、パラメータで上書き
極端に遅い CPUへスピルアウト ollama ps の PROCESSOR が 100% GPU か確認。小さいモデルか量子化を見直す
--profile が効かない Codex CLIが古い codex --version で確認し最新へ
接続できない base_urlに http:// が無い http://localhost:11434/v1 とフルURLで書く
別マシンのOllamaにつながらない --oss は localhost:11434 固定 --profile でプロバイダを明示するか、SSHポートフォワードで転送

最後の制約は openai/codex #8240 で、config.tomlで別マシンのIPを指定しても無視され「No running Ollama server detected」で失敗する。”not planned” でクローズされた仕様上の制約だ。

Ollama自体の入門とAPIの叩き方は、同じクラスタの Ollama入門2026|Mac/Windows/Linuxでローカル大規模言語モデルを動かす完全ガイド と Ollama API完全ガイド2026|REST・OpenAI互換・Python/JSでローカルLLMを叩く にまとめている。

参照ソース