0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codex CLIとOllamaを連携させて無料でAIコーディングできるって聞いたのですができませんでした...でも最後にはできました😊

0
Last updated at Posted at 2026-06-01

はじめに

OpenAIのCodex CLIは、Ollamaで動作するローカルLLMも利用できる。
Ollamaの公式ドキュメントでは、Codex CLIをOSSモードで起動する方法としてcodex --ossが案内されている。

今回、macOS環境でOllamaのgpt-oss:20bをCodex CLIから利用したところ、認証エラーやモデルメタデータの警告が発生した。

この記事では、実際に発生した不具合、原因、適用した修正内容を整理する。

調査日は2026年6月1日である。Codex CLIやOllamaの更新により、将来は挙動が変わる可能性がある。

また、以下の処理はエラーが発生する都度CodexCLIに投げかけ調査してもらい、設定の書き換えもほぼCodexCLIが行っています。
同じように実施したい場合は、この記事のURLをプロンプトに入れて、設定を調整してもらうよう依頼するのが良いかもしれません。

検証環境

今回確認した環境は以下のとおり。

項目 内容
OS macOS(Apple Silicon、macos-aarch64
Codex CLI codex-cli 0.135.0
Ollama 0.24.0
利用モデル gpt-oss:20b
モデルサイズ 約13 GB
パラメーター数 20.9B
コンテキスト長 131072 tokens
Ollamaが認識した機能 completiontoolsthinking

Ollamaの公式ドキュメントでは、Codex CLIで利用するモデルに最低64k tokensのコンテキスト長が推奨されている。
今回のgpt-oss:20bは131072 tokensのため、この条件を満たしている。

最終的に使用した起動コマンド

ローカルのOllamaを明示してCodex CLIを起動する。

codex --oss --local-provider ollama -m gpt-oss:20b

~/.codex/config.tomlに次の設定を追加している場合は、
--local-provider ollamaを省略してcodex --oss -m gpt-oss:20bと書ける。

oss_provider = "ollama"

発生した不具合1: モデルメタデータの警告

Codex CLIを起動してプロンプトを入力すると、次の警告が表示された。

⚠ Model metadata for `gpt-oss:20b` not found. Defaulting to fallback metadata; this can degrade performance and cause issues.

このメッセージは、Ollamaがモデルを読み込めないという意味ではない。
Codex CLI側がgpt-oss:20bのモデルメタデータを見つけられず、汎用のフォールバック設定を利用していることを示している。

Ollama側では、次のコマンドでモデル情報を正常に取得できた。

ollama show gpt-oss:20b

確認できた情報:

architecture        gptoss
parameters          20.9B
context length      131072
capabilities        completion, tools, thinking

原因: OSSモデルのメタデータがターン開始時に読み込まれない

この問題は、Codex CLIのIssue
#24659で報告されている。

Codex CLIは、通常の起動時に内蔵モデルカタログを読み込む。
しかし、Ollamaなどで利用するカスタムモデルは内蔵カタログに含まれていない。

~/.codex/models_cache.jsonにモデル情報があったとしても、
OSSモードのターン開始時には自動的に読み込まれない。
そのため、Codex CLIはgpt-oss:20bを見つけられず、フォールバック設定に切り替わる。

同じ警告はIssue #14757でも報告されている。
フォールバック時には性能低下だけでなく、apply_patchなどのツール利用に影響する可能性がある。

修正: 静的なモデルカタログを指定する

回避策として、model_catalog_jsonを使ってCodex CLIに静的なモデルカタログを読み込ませる。

まず、~/.codex/config.tomlに次の行を追加する。

model_catalog_json = "~/.codex/model-catalog.local.json"
oss_provider = "ollama"

次に、~/.codex/model-catalog.local.jsongpt-oss:20bの定義を追加する。

Codex CLI 0.135.0で動作確認したローカルモデル定義は以下のとおり。

{
  "slug": "gpt-oss:20b",
  "display_name": "gpt-oss:20b",
  "description": "Local gpt-oss:20b model served by Ollama.",
  "default_reasoning_level": "medium",
  "supported_reasoning_levels": [
    {
      "effort": "medium",
      "description": "Use the model's thinking capability."
    }
  ],
  "shell_type": "shell_command",
  "visibility": "list",
  "supported_in_api": true,
  "base_instructions": "You are Codex, a coding agent. Inspect the workspace before editing. Use shell tools for investigation and the apply_patch tool for file edits. Verify changes with focused tests.",
  "priority": 0,
  "additional_speed_tiers": [],
  "service_tiers": [],
  "availability_nux": null,
  "upgrade": null,
  "supports_reasoning_summaries": false,
  "default_reasoning_summary": "none",
  "support_verbosity": false,
  "default_verbosity": "low",
  "apply_patch_tool_type": "freeform",
  "truncation_policy": {
    "mode": "tokens",
    "limit": 10000
  },
  "supports_parallel_tool_calls": true,
  "supports_image_detail_original": false,
  "context_window": 131072,
  "max_context_window": 131072,
  "effective_context_window_percent": 95,
  "experimental_supported_tools": [],
  "input_modalities": [
    "text"
  ],
  "supports_search_tool": false
}

注意: カタログは追加ではなく置換される

model_catalog_jsonを設定すると、内蔵モデルカタログに追記されるのではなく、指定したJSONファイルで置き換えられる。

ローカルモデルだけを記述すると、Codex CLIで通常利用するクラウドモデルの定義が失われる可能性がある。

今回の環境では、~/.codex/models_cache.jsonに含まれる既存モデル定義を保持し、gpt-oss:20bを加えた結合カタログを作成した。

作業用のlocal-model.jsonが、次のような形式であるとする。

{
  "models": [
    {
      "slug": "gpt-oss:20b"
    }
  ]
}

実際には、上記の省略例ではなく、前節に掲載した全項目を含める。
結合にはjqを利用できる。

jq --slurpfile local local-model.json \
  '{models: (.models + $local[0].models)}' \
  ~/.codex/models_cache.json \
  > ~/.codex/model-catalog.local.json

設定を変更する前に、バックアップを作成しておく。

cp ~/.codex/config.toml ~/.codex/config.toml.bak

発生した不具合2: プロファイル設定形式の競合

Ollamaの自動設定を試した際には、別のエラーも発生した。

ollama launch codex --config --model gpt-oss:20b

表示されたエラー:

Error loading config.toml: --profile `ollama-launch` cannot be used while
~/.codex/config.toml contains legacy `profile = "ollama-launch"` or
`[profiles.ollama-launch]` config

Codex CLI 0.135.0では、--profile ollama-launchを指定すると~/.codex/ollama-launch.config.tomlが読み込まれる。

一方、Ollama 0.24.0の自動設定は、~/.codex/config.toml内に旧形式の[profiles.ollama-launch]を生成する場合がある。

新旧の設定形式が競合すると、プロファイルを利用できない。
この問題はOllamaのIssue #16348で報告されている。

2026年6月1日時点では、Ollamaの公式ドキュメントにも~/.codex/config.toml内へ[profiles.ollama-launch]を追加する例が掲載されている。一方、Codex CLI 0.135.0では別ファイル形式への移行を求められるため、バージョンの組み合わせに注意が必要である。

Ollama側では、Codexの新しいプロファイル形式に対応するPull Request #16351が作成されている。

発生した不具合3: APIキーログインの強制

プロファイルを手動移行した後、次のコマンドを実行した。

codex --profile ollama-launch -m gpt-oss:20b

すると、次のエラーが表示された。

API key login is required, but ChatGPT is currently being used. Logging out.

原因は、~/.codex/ollama-launch.config.tomlに含まれていた以下の設定だった。

forced_login_method = "api"

ローカルのOllamaを利用する場合、この設定は不要である。
削除またはコメントアウトすると、APIキーログインの強制を回避できる。

openai_base_url = "http://127.0.0.1:11434/v1/"
model_provider = "ollama-launch"
# forced_login_method = "api"

ただし、今回の用途ではプロファイルを使わず、--oss --local-provider ollamaを明示する方が分かりやすかった。

動作確認

静的モデルカタログを追加した後、次のコマンドで最小限の確認を行った。

codex --oss --local-provider ollama -m gpt-oss:20b \
  --strict-config \
  exec --skip-git-repo-check --ephemeral \
  'Reply with exactly: OK'

起動時には次の内容が表示された。

model: gpt-oss:20b
provider: ollama

モデルからOKが返り、カスタムカタログも--strict-configの検証を通過した。

まとめ

今回発生したメタデータ警告は、Ollamaのモデル読込エラーではなく、Codex CLIがカスタムモデルの情報をターン開始時に読み込まないことが原因だった。

修正の要点は以下のとおり。

  1. codex --oss --local-provider ollama -m gpt-oss:20bで起動する。
  2. model_catalog_jsonで静的モデルカタログを指定する。
  3. カタログには既存モデル定義も含める。
  4. プロファイルを利用する場合は、旧形式設定とforced_login_method = "api"を確認する。

静的カタログを使う場合、Codex CLIの更新でクラウドモデルが追加された際には、結合カタログの再生成が必要になる。

できた!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?