0% read

Gemma 4 × OpenAI Codex CLI の使い方:完全ローカルで動くAIコーディング環境を作ってみた(2026年版)

4月 16, 2026

Gemma 4 × OpenAI Codex CLI の使い方:完全ローカルで動くAIコーディング環境を作ってみた(2026年版)

2026年4月、OpenAI が Codex CLI をリリースした直後、開発者コミュニティで真っ先に話題になったのは「動くのか?」ではなく、「OpenAI の有料 API をやめて、ローカルモデルに差し替えられないか?」という点でした。

結論から言うと、できます。Codex CLI は OpenAI 互換の API エンドポイントなら何でも喋ってくれるので、Ollama で動かす Gemma 4 は理想的な差し替え先になります。トークン課金ゼロ、ソースコードが外部に出ない、機内や社内ファイアウォールの中でも動く——そんなターミナル AI アシスタントが手に入ります。

本記事では Ollama のインストールから Gemma 4 の選定、環境変数の設定、そして実用的な4つの作業例まで、全工程を実際の手順に沿って解説します。「API 課金が重すぎる」「情報漏洩リスクで社内承認が下りない」と Codex の導入をためらっていた方は、ぜひ最後まで読んでみてください。

OpenAI Codex CLI とは?

Codex CLI は OpenAI がリリースしたターミナル用 AI コーディングツールです。一言で言うと「コマンドライン版の GitHub Copilot」——エディタではなく、シェルから対話的にコードを書かせます。

  • 自然言語でコード生成codex "JWT 認証付きの REST API を作って"
  • コード解説codex explain app/main.py
  • リファクタcodex refactor src/cache.ts --goal "reduce memory"
  • エラー修正codex fix --error "TypeError: undefined is not a function"

デフォルトでは api.openai.com を叩きますが、中身は標準的な OpenAI 形式の HTTP クライアントなので、Ollama / LM Studio / vLLM など OpenAI 互換 API を喋るものなら何でも繋がります。これが本記事の肝です。

なぜ Gemma 4 に差し替えるのか?

実務レベルで効くメリットが3つあります。

1. プライバシー。コードが自分のマシンから一行も出ません。ビジネスロジック、API キー、DB スキーマを外部ベンダーに見られることがない。GDPR、個人情報保護法、社内のソースコード持ち出し規定がある企業にとっては必須条件です。

2. コスト。OpenAI はトークン課金で、Codex はファイル全体をコンテキストに入れがち。中規模リポジトリのリファクタ1回で5〜10ドル飛ぶこともあります。Gemma 4 はローカルで走るので、エージェントを一晩放置しても料金はゼロです。

3. オフライン。新幹線、飛行機、客先常駐、閉域網——ネットが不安定または禁止されている現場でもそのまま使えます。

かつてローカル LLM の弱点は「コードが書けないほど馬鹿」ということでしたが、Gemma 4 でこの壁が崩れました。26B と 31B は命令追従、function calling、構造化出力のどれもが実用レベルに達しています。

前提条件

作業を始める前に次を用意してください。

  • Ollama をインストール済み(ollama.com
  • Gemma 4 のモデル(26B または 31B。選び方は後述)
  • OpenAI Codex CLI
  • Node.js 20 以上
  • ハードウェア要件:26B は 16GB メモリ以上、31B は 24GB 以上推奨

どのサイズを選ぶべきか迷ったら——ノートPC なら 26B MoE が正解です。1トークンあたり約 4B パラメータしか活性化しないので、16GB MacBook でも快適に動きます。デスクトップに余裕があるなら 31B Dense の方が長めの推論タスクで賢いです。

ステップ1:Ollama のインストールと Gemma 4 の取得

Ollama はモデルのダウンロード、量子化、API サーバ起動を一本で済ませてくれます。

Ollama をインストール

# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# Windows:ollama.com からインストーラをダウンロードして実行

Gemma 4 をプル

コーディング用途なら、コスパ最強は Gemma 4 26B(MoE 版) です:

ollama pull gemma4:26b-a4b

24GB 以上のメモリがあって最高品質を狙うなら 31B Dense を:

ollama pull gemma4:31b

ダウンロード容量は 15〜20GB 程度。完了したら動作確認を行いましょう:

ollama run gemma4:26b-a4b "文字列を反転する Python 関数を書いて"

まともな回答が返ってくれば成功です。

ステップ2:Ollama の API サーバを起動

Ollama はデフォルトで http://localhost:11434/v1 に OpenAI 互換 API を立てます。ターミナルで起動:

ollama serve

このウィンドウはそのままにして、別ターミナルで疎通確認:

curl http://localhost:11434/v1/models

gemma4:26b-a4b を含む JSON が返ってくれば OK。応答がない場合は 11434 番ポートが既に使われていないかチェックしてください。

ステップ3:OpenAI Codex CLI のインストール

Codex CLI は npm 経由で配布されています:

npm install -g @openai/codex-cli
codex --version

1.x.x 以上が表示されれば OK。失敗する場合は Node.js のバージョンが 20 以上か確認を。Codex は新しめの fetch API を利用しています。

ステップ4:Codex CLI を Gemma 4 に向ける

Codex CLI は OpenAI SDK 標準の環境変数を尊重するので、3つ上書きするだけで Ollama に向きます。

macOS / Linux

~/.zshrc または ~/.bashrc に追記:

export OPENAI_API_BASE="http://localhost:11434/v1"
export OPENAI_API_KEY="ollama"   # 空でなければ何でも可
export CODEX_MODEL="gemma4:26b-a4b"

再読み込み:source ~/.zshrc

Windows(PowerShell)

$env:OPENAI_API_BASE = "http://localhost:11434/v1"
$env:OPENAI_API_KEY  = "ollama"
$env:CODEX_MODEL     = "gemma4:26b-a4b"

動作確認

codex "Python で hello world を表示して"

期待する出力:

print("Hello, World!")

Model not foundConnection refused が出たら、下のトラブルシューティングへ。

ステップ5:実務で使う4つのタスク

Hello World は退屈なので、実務でよく遭遇する4ケースを試しましょう。

1. REST エンドポイントの生成

codex "メールとパスワードを受け取り、検証して JWT を返す FastAPI エンドポイントを作って"

Gemma 4 26B はこんなコードを生成します:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, EmailStr
from datetime import datetime, timedelta
import jwt

app = FastAPI()
SECRET_KEY = "your-secret-key"

class UserLogin(BaseModel):
    email: EmailStr
    password: str

@app.post("/login")
def login(user: UserLogin):
    if user.email == "user@example.com" and user.password == "password123":
        token = jwt.encode(
            {"sub": user.email, "exp": datetime.utcnow() + timedelta(hours=1)},
            SECRET_KEY, algorithm="HS256",
        )
        return {"access_token": token, "token_type": "bearer"}
    raise HTTPException(status_code=401, detail="Invalid credentials")

2. 未知コードの解説

complex.py として保存:

def f(n): return n if n < 2 else f(n-1) + f(n-2)

実行:

codex explain complex.py

Gemma 4 はナイーブな再帰フィボナッチと特定し、O(2^n) の計算量を指摘、メモ化を提案してくれます。

3. パフォーマンス最適化リファクタ

codex refactor complex.py --goal "optimize for speed"

出力:

from functools import lru_cache

@lru_cache(maxsize=None)
def f(n):
    return n if n < 2 else f(n-1) + f(n-2)

デコレータ1行で O(2^n) から O(n) へ。教科書通りの回答です。

4. エラーの自動修正

codex fix --error "TypeError: 'NoneType' object is not subscriptable" --file app.py

Gemma 4 は app.py を読み、None が返り得る値に添字アクセスしている箇所を特定し、None チェックを追加するパッチを提案します。

ローカル Gemma 4 vs クラウド OpenAI:どこまで迫れる?

項目Gemma 4 26B(ローカル)Gemma 4 31B(ローカル)GPT-4 級(クラウド)
コード生成品質GPT-3.5 相当GPT-4 相当最強
生成速度20〜40 t/s(M1/M2)15〜30 t/s100+ t/s
ネットワーク遅延0ms0ms200〜500ms
1タスクの費用$0$0$0.15〜0.30
月額(週100回)$0$0$60〜120
プライバシー完全ローカル完全ローカルプロンプト送信
オフライン不可

数値上の速度差は大きく見えますが、ネットワーク遅延ゼロの効果で短いタスクの体感差はほぼありません。クラウドが明確に優位なのは、巨大リポジトリを対象とした多段エージェント処理——そこでは 100+ t/s の差が積み上がります。

ハードウェア別の実測値は『Gemma 4 Mac ベンチマーク:M1〜M4』『NVIDIA RTX で Gemma 4 を動かす』で詳しく扱っています。

トラブルシューティング

"Connection refused"

Ollama が起動していない、もしくはポートが違います。curl http://localhost:11434/v1/models で確認し、失敗したら ollama serve を再起動。11434 番ポートが他プロセスに取られていないかもチェック。

"Model not found"

ollama list で正確なタグ名を確認しましょう。CODEX_MODELgemma4:26b-a4b のように完全一致させる必要があります(gemma4-26b ではダメ)。

Codex がフリーズする

メモリ不足でスワップを吐いている可能性大。31B を 26B に替える、または Q4 量子化版を使う、あるいは --timeout 120 でタイムアウトを延ばしましょう。

出力がおかしい

ローカルモデルは曖昧な指示に弱めです。「もっと良くして」ではなく「この関数を async/await に書き換えてエラーハンドリングを追加して」のように具体的に。

応用:Function Calling を使う

Gemma 4 は OpenAI 互換の tool use に対応しているので、Codex CLI から外部 API やローカルスクリプトを実際に叩かせることができます。JSON Schema で tool を定義して --tools tools.json で渡すだけ。詳しくは『Gemma 4 で Function Calling 実践』を参照してください。

FAQ

Q:Gemma 4 E2B や E4B でも代用できますか? A:理論上は可能ですが、実用は厳しいです。エッジ向けの小型版はコンテキストが少し複雑になると破綻します。Codex 用途なら 26B か 31B を選んでください。

Q:Windows でも動きますか? A:動きます。Ollama は Windows 11 にネイティブ対応、Codex CLI は Node.js ベース。違いは PowerShell の $env: 記法で環境変数を設定することだけです。

Q:同じ仕組みで Cursor や Continue、Aider にも繋げられますか? A:OpenAI 互換 API を喋るツールなら全て対応できます。Base URL を http://localhost:11434/v1 に向けてモデル名を指定するだけ。Aider 連携Claude Code Router 連携の専用記事もあります。

Q:結局トータルでいくらかかりますか? A:0円です。Ollama・Gemma 4・Codex CLI すべて無料。追加コストは電気代だけです。

Q:コーディング用途で Gemma 4 と Qwen 3、どちらが良いですか? A:Gemma 4 は命令追従と構造化 JSON 出力で優位、Qwen 3 は同ハードでわずかに高速で中国語に強い。詳細は『Gemma 4 vs Qwen 3 徹底比較』

Q:Raspberry Pi で動きますか? A:E2B の小型版なら辛うじて動きますが、本格的な Codex 用途には非力です。16GB 以上のメモリを積んだ PC を推奨します。

Q:31B でも品質が足りない場合は? A:OPENAI_API_BASE の環境変数を外せば OpenAI クラウドに戻ります。普段はローカル Gemma 4、週1〜2回の難問だけクラウドというハイブリッド運用が現実的です。

関連記事

gemma4 — interact

Stop reading. Start building.

~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.

Launch Playground />
Gemma 4 AI

Gemma 4 AI

Related Guides

Gemma 4 × OpenAI Codex CLI の使い方:完全ローカルで動くAIコーディング環境を作ってみた(2026年版) | ブログ