はじめに
初めまして。株式会社NeurestXの桑山です。
先日、 Ollama がCodex Appに対応するというニュースを見て、Codex 上でローカルLLMを動かすための検証を行いました。本来はCodex App上で動かす予定だったのですがエラーによりCodex CLI上で検証を行いました。
Ollamaとは
Ollamaとは自身のパソコン上で大規模言語モデル(ローカルLLM)を実行できるオープンソースツールです。
ローカルLLMとは、AIモデルを自分たちの環境(社内サーバーやローカルPCなど)で動作させる運用形態です。ローカルLLMの強みはオフライン環境で実行できたり、機密情報を外部に出さず処理できるなどがあります。
対義語はクラウドLLMといい、インターネット経由で外部のAIサービスにアクセスし、AIモデルの処理結果を利用する形態を指します。モデル本体は提供企業のクラウド上にあるのが特徴です。
クラウドLLMの代表例はChatGPTやGeminiなどです。(それぞれOpenAIとGoogleのクラウドにあります)
Codex App
CodexというAIエージェントは一般的にコマンドラインを用いて実行されます(Codex CLI)。このエージェントのアプリケーション版がCodex Appになります。
環境構築
まずはじめに筆者のPCスペックは以下の通りです。ノートパソコンです。
- CPU: Intel Core Ultra7 258V
- GPU: Intel Arc Graphics (128 MB)
- RAM: 32GB
- OS: Windows 11 Home
Ollamaインストール
上記サイトからインストールしました。
winget install Ollama.Ollama
コマンドラインなら上記からインストールできます。
バージョンが出力されれば成功です。
ollama --version
ollama version is 0.24.0
Codex Appインストール
上記サイトからインストールしました。
使用モデルの切り替え
ollama launch codex-app
今回はgemma4を選択しました。
Codex Appが動かない
ローカルLLMを動かそうとしてCodex Appが起動したのはいいもののエラーがでました。
”バックアップサンドボックスを使用する”をクリックしても変化がなく、調べても有効手段が見当たらずCodex Appの使用を断念し、Codex CLI上でOllamaを動かすことにしました。

また、ターミナル上で以下のコマンドを実行することでCodex(モデル指定)を起動できます。
codex --profile ollama-launch-codex-app
しかしコマンドを実行すると、以下のようなエラーが出ました。
Error loading config.toml: --profile ollama-launch-codex-app cannot be used while C:\~~\.codex\config.toml contains legacy profile = "ollama-launch-codex-app" or [profiles.ollama-launch-codex-app] config; move those settings into C:\~~\.codex\ollama-launch-codex-app.config.toml and remove the legacy profile selector/table. See https://developers.openai.com/codex/config-advanced#profiles for more information.
要するに、config.tomlで書き方が違うから動かないみたいなことが言われてます。原因は十中八九ollama launch codex-appを実行しconfig.tomlが書き換えられたことが原因かと思います。
そのため、configまわりを整理しました。
config.toml内の
- [profiles.ollama-launch-codex-app]
- [model_providers.ollama-launch-codex-app]
この2つの部分を消します。消しただけだとgemma4で起動しないためconfig.tomlがあるディレクトリでollama-launch-codex-app.config.tomlを作成します。そこに下記を入力
model = "gemma4"
model_provider = "ollama"
[model_providers.ollama]
name = "Ollama"
base_url ="http://127.0.0.1:11434/v1/"
wire_api = "responses"
codex --profile ollama-launch-codex-app
上記コマンドを実行するとターミナル上でCodex CLIが動きました。modelの部分をgemma4:e4bなどに変更するとそのモデルで起動します。
ようやく実行
なんとか環境構築することができ、ようやくCodex CLI(モデルの中身はGemma4)という状態で実行することができました。
今回行うこと
Codex CLI上でモデルをgemma4:e4bとgpt5.5を用いてローカルLLMとクラウドLLMの比較を行う。同じ文(日本語)で命令を下し、実行結果の出力時間やコード量によって比較を行います。
今回用いたプロンプトは以下です。
あなたはCodex CLI上で動く開発エージェントです。
このプロジェクトのファイルを直接作成・編集してください。
説明だけ、挨拶だけ、コード表示だけで終わらないでください。
Flaskでログイン機能を作成してください。
必要なファイル app.py, requirements.txt, templates/login.html, templates/home.html を作成してください。
GPT-5.5の結果
正しくファイルが作成されていることが確認できました。
しっかり画面表示、ログインできました。
Gemma4:e4bの結果
今回このモデルを用いたのは筆者のPCのスペック的に大規模なLLM(gemma4:31bなど)は動作が安定しない可能性があり、軽量なモデルであるgemma4:e4bを採用しました。
プロンプトの、”コード表示だけで終わらないでください。”について無視されていました。しかしコードは表示されていたのでファイルを作成して試してみます。
とりあえず、app.py, requirements.txt, templates/login.html, templates/home.htmlを作成し、それぞれ出力されたコードを張り付けていきます。ここで見落としてたのですが、home.htmlじゃなくてindex.htmlで出力されていました。以下画像のhome.htmlは中身空白です。
UIの違いはあれど要件通りになっていました。
おわりに
今回は、Codex CLI上でOllamaを用いてローカルLLMを実行しました。筆者のPCがノートパソコンであり、そこまで高スペックではないためgemma4:e4bとgpt5.5の比較を行いました。
この結果的には、ノートパソコンでLLMを実行する場合にはクラウドLLMを使用したほうがいいなと感じました。理由としては2点あり、まずは実行時間の点です。次点で、命令理解度の差です。今回用いたプロンプトでは実行時間に2分弱の差があり、命令理解については目に見えて差が感じられたためクラウドLLMのほうが良いと考えました。
一方でローカルLLMはネットワークなしのオフライン環境で実行できるなどの強みがあるため、用途に応じて使い分けることが好ましいと感じました。
参考リンク











