# OpenAI CodexでローカルLLMを実行する方法

このステップバイステップガイドでは、オープンなLLMとAPIをOpenAI Codexに接続する方法を紹介します **完全にローカルで**。スクリーンショット付きです。Codexに必要なのは、OpenAI Responses APIを話せるローカルエンドポイントだけです。Qwen、DeepSeek、Gemmaなど、任意のオープンモデルを使って実行できます。

このチュートリアルでは、次のオープンモデルを使います： [Gemma 4](/docs/jp/moderu/gemma-4.md) と [Qwen3.5](/docs/jp/moderu/qwen3.5.md) 。これらは強力なエージェント型・コーディングモデルです（24GB RAM/ユニファイドメモリのデバイスで動作）。推論には次を使用します [Unsloth Studio](https://github.com/unslothai/unsloth) と [`llama.cpp`](https://github.com/ggml-org/llama.cpp) を使うと、macOS、Linux、WindowsでLLMを実行・配信できます。ほかのモデルにも置き換え可能で、その場合はスクリプトとCodex設定内のモデル名を更新するだけです。

<a href="/pages/c87896ff7159620f4c01bb39fe9df1fd1a55274e#setup-codex" class="button primary" data-icon="openai">Codexをセットアップ</a><a href="/pages/c87896ff7159620f4c01bb39fe9df1fd1a55274e#quickstart-tutorials" class="button primary">📖 ローカルモデルセットアップチュートリアル</a>

モデル量子化版にはUnslothの [**Dynamic GGUFs**](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs.md) を使用するので、できるだけ精度を保ちながら量子化GGUFモデルを実行できます。

{% hint style="info" %}
Codexは2026年1月以降かなり変わりました。現在は [**OpenAI Responses API**](https://platform.openai.com/docs/api-reference/responses) **のみを**使用しており、Chat Completionsのサポートは非推奨になりました。 [Unsloth Studio](#unsloth-tutorial) は両方をサポートしているので、 `wire_api = "responses"` をこのガイド全体で使用します。
{% endhint %}

### &#x20;<i class="fa-openai">:openai:</i> Codexをセットアップ

[Codex](https://github.com/openai/codex) はOpenAI公式の、ローカルで動作するコーディングエージェントです。ChatGPT向けに設計されていますが、 **カスタムAPIエンドポイント**をサポートしているため、ローカルLLMでも動作します。後でStudioが起動したら、Unsloth Studioの `/v1/responses` エンドポイントを向けます。

{% tabs %}
{% tab title="Linux / WSL" %}
ターミナルで実行してください：

```bash
apt update
sudo apt install nodejs npm -y
npm install -g @openai/codex
```

{% endtab %}

{% tab title="Windows" %}
Windows PowerShelで実行：

```powershell
winget install --id OpenAI.Codex
```

{% hint style="info" %}
**Codexデスクトップアプリのほうが好みですか？** Microsoft Storeからインストール：

```powershell
winget install --id 9PLM9XGG6VKS --source msstore
```

または [Microsoftアプリストア](https://apps.microsoft.com/detail/9plm9xgg6vks)経由でも可能です。アプリは同じ `%USERPROFILE%\.codex\config.toml`を読み込むので、後で設定するプロバイダー設定はどちらにも適用されます。
{% endhint %}

{% hint style="info" %}
**WSLのほうが好みですか？** 管理者としてPowerShellを開き、 `wsl --install`を実行し、再起動してから、Ubuntu内で上のLinuxタブの手順に従ってください。Windowsホスト上のStudioに到達するには少ししたネットワークの工夫が必要です。CodexをStudioに接続するセクションのWSLヒントを参照してください。
{% endhint %}
{% endtab %}

{% tab title="MacOS" %}
ターミナルで実行してください：

<pre class="language-bash"><code class="lang-bash"><strong>bash brew install --cask codex
</strong></code></pre>

{% endtab %}
{% endtabs %}

インストールはこれで完了です - **まだ `codex` を実行しないでください**。そのまま実行すると、OpenAIの「ChatGPTでサインイン」選択画面に入ってしまいます（モーダルなので抜け道がありません）。ローカルプロファイルを接続した後なら、 `codex -p unsloth_api` または `codex -p llama_cpp` でその画面は完全にスキップされます。これはカスタムプロバイダーのデフォルトが `requires_openai_auth = false`だからです。先にローカルモデルサーバーを起動し、その後Codexを接続して起動してください。

## 📖 クイックスタートチュートリアル <a href="#quickstart-tutorials" id="quickstart-tutorials"></a>

始める前に、まず使用する特定のモデルのセットアップを完了する必要があります。ここでは [Unsloth](https://unsloth.ai/docs/new/studio) （Web UI）とllama.cppを使います。これらはMac、Linux、Windowsデバイス上でLLMを実行・配信するためのオープンソースフレームワークです。

{% columns %}
{% column %}
始める前に、まず使用する特定のモデルのセットアップを完了する必要があります。ここでは [Unsloth](/docs/jp/xin-zhe/studio.md) （Web UI）とllama.cppを使います。これらはMac、Linux、Windowsデバイス上でLLMを実行・配信するためのオープンソースフレームワークです。

Unslothには独自の自己修復型の [ツール呼び出し](/docs/jp/xin-zhe/studio/chat.md#auto-healing-tool-calling) と [Web検索](/docs/jp/xin-zhe/studio/chat.md#code-execution) 機能もあります。右側の、Claude CodeをUnslothに接続した例をご覧ください：
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/a3f1fdee7b4a96898eb3f45c6e5fb130adcb9c2e" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

<a href="/pages/c87896ff7159620f4c01bb39fe9df1fd1a55274e#unsloth-tutorial" class="button primary">🦥 Unslothチュートリアル</a><a href="/pages/c87896ff7159620f4c01bb39fe9df1fd1a55274e#llama.cpp-tutorial" class="button primary">🦙 llama.cppチュートリアル</a>

## 🦥 Unslothチュートリアル

このチュートリアルでは、ローカルモデルをUI経由でClaude Codeに配信・接続するために [Unsloth](https://github.com/unslothai/unsloth)を使用します。UnslothはWindows、WSL、Linux、MacOSで動作します。&#x20;

{% columns %}
{% column %}

* 検索、ダウンロード、 [GGUFを実行](/docs/jp/xin-zhe/studio.md#run-models-locally) およびsafetensorモデル
* [**自己修復型** ツール呼び出し](/docs/jp/xin-zhe/studio.md#execute-code--heal-tool-calling) + **Web検索**
* [**コード実行**](/docs/jp/xin-zhe/studio.md#run-models-locally) （Python、Bash）
* [自動推論](/docs/jp/xin-zhe/studio.md#model-arena) パラメータ調整（temp、top-p など）
* llama.cppによる高速CPU + GPU推論
* [LLMを学習](/docs/jp/xin-zhe/studio.md#no-code-training) 2倍高速、VRAM使用量70%削減

インストール手順は以下を参照してください：
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/c219df5fc541689071df02c2a6ac347cbb9a4847" alt=""><figcaption><p>UnslothでQwen3.6の2ビット版を実行している例。</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% tabs %}
{% tab title="MacOS" %}

#### ステップ1: Unslothをセットアップ

Macから `ターミナル` を起動し、以下のコマンドを入力してUnslothをインストールしてください。

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

以下のように、Unslothが環境のセットアップと必要パッケージのインストールを開始します。Studioを今すぐ起動してよいか尋ねられたら、 **Y** と入力して `Enter` を押してください。これでローカルのUnslothが **8888** ポートで起動します。

<figure><img src="/files/911b9883060def0d092c143792f31dd9552de2ac" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
インストール中にUnslothを起動しない選択をした場合でも、いつでも `unsloth studio -p 8888` を使ってUnslothアプリを起動できます。PC/コンピュータの外部にいるクライアントからUnslothインスタンスにアクセスできるようにしたい場合は、 `-H 0.0.0.0` を `unsloth studio` コマンドに追加してください。
{% endhint %}

#### ステップ2: Unslothを起動

お好みのブラウザを開き、URL欄に `http://127.0.0.1:8888`  と入力してください。これが初めてのUnslothインストールであれば、パスワードページに移動し、新しいパスワードを作成する必要があります。その後、以下のようにUnslothがチャットページで開くはずです。

<figure><img src="/files/22712a19788622c5a19fe86f6e5269b13c1d20d7" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Windows" %}

#### ステップ1: Unslothをセットアップ

スタートメニューを開き、 `PowerShell`を検索して起動します。インストールコマンドをコピーして入力してください：

```powershell
irm https://unsloth.ai/install.ps1 | iex
```

これで自動的にインストールが始まります。インストール完了後、PowerShellはUnsloth Studioを起動するかどうか尋ねま&#x3059;**.**

<figure><img src="/files/911b9883060def0d092c143792f31dd9552de2ac" alt="" width="375"><figcaption></figcaption></figure>

次のコマンドでも起動できます：

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

{% hint style="info" %}
PC/コンピュータの外部にいるクライアントからインスタンスにアクセスできるようにしたい場合。\
追加してください `-H 0.0.0.0` を `unsloth studio` コマンドに追加してください。
{% endhint %}

#### ステップ2: Unslothを起動

開く `http://127.0.0.1:8888` をブラウザで。初回起動時は、チャットページへ進むために新しいパスワードを作成してください。 **Unsloth Studio** は現在インストール済みで、すぐに使用できます。

<figure><img src="/files/22712a19788622c5a19fe86f6e5269b13c1d20d7" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Linux、WSL" %}

#### ステップ1: Unslothをセットアップ

{% tabs %}
{% tab title="Linux" %}
ターミナルアプリケーションを開いてください。 `Ctrl + Alt + T`を押すか、システムのアプリケーションメニューで `Terminal` を検索して起動できます。
{% endtab %}

{% tab title="WSL" %}
Windowsのスタートメニューをクリックし、インストール済みディストリビューション名（例： `Ubuntu`）を入力してから開いてください。

{% hint style="warning" %}
では、 **WSL**ご使用の **NVIDIAドライバー** が **Windows** にインストールされていること（WSL内ではなく）と、 **CUDAツールキット** がWSLディストリビューション内にインストールされていることを確認してください。詳細は以下のシステム要件を参照してください。
{% endhint %}
{% endtab %}
{% endtabs %}

インストールするには、インストールコマンドをコピーして実行してください：

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

次に：

1. ターミナルウィンドウ内をクリック
2. コマンドを `Ctrl + Shift + V`
3. で貼り付けます `Enter`

以下のように、Unslothが環境のセットアップと必要パッケージのインストールを開始します。Studioを今すぐ起動してよいか尋ねられたら、 **Y** と入力して `Enter` Studioを今すぐ起動してよいか尋ねられたら、を押してください。これでローカルのUnslothが起動します **8888** ポートで起動します。

<figure><img src="/files/f1400537616728bd8126c7e63eb295b63c379bb4" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
インストール中にUnslothを起動しない選択をした場合でも、いつでも `unsloth studio -p 8888` を使ってUnslothアプリを起動できます。PC/コンピュータの外部にいるクライアントからUnslothインスタンスにアクセスできるようにしたい場合は、 `-H 0.0.0.0` を `unsloth studio` コマンドに追加してください。
{% endhint %}

#### ステップ2: Unslothを起動

お好みのブラウザを開き、URL欄に `http://127.0.0.1:8888`  と入力してください。これが初めてのUnslothインストールであれば、パスワードページに移動し、新しいパスワードを作成する必要があります。その後、以下のようにUnslothがチャットページで開くはずです。

<figure><img src="/files/fe873fdd0e62c5c0973e8bd102e5314c44f2fafd" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### モデル読み込み + APIガイド

{% stepper %}
{% step %}

#### モデルを選択

APIを使う前に、 **モデルを選択** ドロップダウンから、チャットページ左上にあるモデルを読み込んでください。

<figure><img src="/files/e29038cb1426e393aee3cb144c904bc7a9438f27" alt=""><figcaption></figcaption></figure>

このガイドでは、次を使用します： `unsloth/gemma-4-26B-A4B-it-GGUF` 推奨される `UD-Q4_K_XL` 量子化版で。
{% endstep %}

{% step %}

#### モデルをテスト

クライアントを使う前に、簡単なメッセージを送ってください：

<div data-with-frame="true"><figure><img src="/files/6037fb7bcfd78472b5ddadc37e90255377de6580" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
これにより、モデルが正しく読み込まれ、応答可能な状態であることを確認できます。
{% endhint %}
{% endstep %}

{% step %}

#### **Unsloth APIキー**

Studioで、 **Settings → API** を開いてAPIキーを確認または作成してください。

<figure><img src="/files/ff7840d9317331aed891f8636717121d17346f61" alt=""><figcaption></figcaption></figure>

APIキーはパスワードと同様に扱い、スクリーンショットやリポジトリで公開しないようにしてください。
{% endstep %}
{% endstepper %}

## ⚙️ Codexを接続

このセクションは、Unsloth Studio、llama.cpp、または他のOpenAI互換ローカルサーバーを使った場合でも同じです。Codexには3つの値が必要です： **APIキー**、 **base URL**、そして **モデル名**です。以下の例ではUnsloth Studioを使います。llama.cppの場合は、llama.cppセクションの `llama_cpp` プロファイルで同じ形式を使ってください。

{% stepper %}
{% step %}

#### **Unslothプロバイダーを設定**

Codexは `~/.codex/config.toml` をmacOS/Linux/WSLで、または `%USERPROFILE%\.codex\config.toml` をWindowsで探します。作成または編集してください：

{% code title="\~/.codex/config.toml" overflow="wrap" %}

```toml
[model_providers.unsloth_api]
name                  = "Unsloth Studio"
base_url              = "http://localhost:8888/v1"
env_key               = "UNSLOTH_STUDIO_AUTH_TOKEN"
wire_api              = "responses"
requires_openai_auth  = false

[profiles.unsloth_api]
model_provider = "unsloth_api"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

{% hint style="info" %}
この設定により、 `unsloth_api`というCodexプロファイルが作成され、Studioを向き、APIキーを `UNSLOTH_STUDIO_AUTH_TOKEN`という環境変数名から読み取るようCodexに指示します。実際のキーは次のステップで設定します。
{% endhint %}

| 項目                     | 動作内容                                                                                     |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| `base_url`             | あなたのローカルサーバーのエンドポイント + `/v1`                                                             |
| `env_key`              | **名前** 。CodexがAPIキーを読み取る環境変数の名前です。キーそのものではありません。                                         |
| `wire_api`             | `responses`。Codexは現在、OpenAIのResponses APIのみを使用します。                                       |
| `requires_openai_auth` | `false` にすると、このプロバイダーではCodexが「ChatGPTでサインイン」画面をスキップします。デフォルトでもすでに `false`ですが、明示しておきましょう。 |
| `model`                | サーバーが公開しているモデルIDです。 `GET <base_url>/models` を実行して正確な文字列を確認してください。                        |

{% hint style="warning" %}
OpenAIは `wire_api = "chat"` のサポートを削除しました。必ず `wire_api = "responses"`を使ってください。もし `wire_api = "chat"`を設定すると、Codexは起動を拒否し、 `` `wire_api = "chat"` はサポートされなくなりました。修正方法: プロバイダー設定で `wire_api = "responses"` を設定してください。 ``
{% endhint %}

{% hint style="info" %}
同じファイルに複数のプロファイルを追加して、切り替えて使うUnslothモデルごとに1つずつ設定できます。Codexは自動で認識します。
{% endhint %}
{% endstep %}

{% step %}

#### APIキー環境変数を設定

に書いたものと同じ環境変数名を使ってください `env_key`。上のUnsloth Studioの例では、 `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`なので、 `UNSLOTH_STUDIO_AUTH_TOKEN` をCodexを実行する同じターミナルで設定してください：

{% code title="MacOS / Linux / WSL" %}

```bash
export UNSLOTH_STUDIO_AUTH_TOKEN=YOUR_TOKEN
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:UNSLOTH_STUDIO_AUTH_TOKEN = "YOUR_TOKEN"
```

{% endcode %}

もし `env_key`の名前を変更したなら、コマンド内の変数名も変更してください。たとえば、 `env_key = "LLAMA_CPP_API_KEY"` を使うllama.cppプロファイルでは、 `LLAMA_CPP_API_KEY`が必要であり、 `UNSLOTH_STUDIO_AUTH_TOKEN`.

**セッション vs 永続化：** 上記のコマンドは現在のターミナルにのみ適用されます。永続化するには：

* **MacOS / Linux / WSL:** その `export` 行を `~/.bashrc` （bash）または `~/.zshrc` （zsh）に追加してください。
* **Windows:** 次を実行してください `setx UNSLOTH_STUDIO_AUTH_TOKEN "YOUR_TOKEN"` を一度実行するか、 `$env:` 行をPowerShellの `$PROFILE`.

{% hint style="warning" %}
**Windows上のUnslothでWSL内からCodexを実行していますか？** WSLは別のネットワーク名前空間なので、 `localhost` はWSL内からではUnslothに到達しません。代わりにWindowsホストのIPを使うよう、 `config.toml` を編集してください：

```bash
# WSL内からWindowsホストのIPを取得
ip route | grep default | awk '{print $3}'
```

次に、 `base_url = "http://<that-ip>:8888/v1"`を設定してください。WSL2のミラーネットワークが有効なら（`.wslconfig` → `networkingMode=mirrored`), `localhost` はネイティブWindowsと同様に動作します。
{% endhint %}
{% endstep %}

{% step %}

#### **Codexを起動**

```bash
mkdir my-project && cd my-project
codex -p unsloth_api
```

{% hint style="info" %}
**新しいディレクトリで最初の起動時** Codexは *"このディレクトリの内容を信頼しますか？"* と尋ねるので、 *はい、続行します。* を選んでください。これはカレント作業ディレクトリごとの信頼確認であり、ChatGPTログインではありません（後者は \`requires\_openai\_auth = false\` によりスキップされます）。同じディレクトリでの以降の起動ではこの確認は表示されません。
{% endhint %}

<figure><img src="/files/304f0637e914771836fb6ec8fc2351665066e062" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**次の表示が出ても `Model metadata for`  unsloth/gemma-4-26B-A4B  `not found. Defaulting to fallback metadata`?** Codexには、OpenAI自身のモデル向けのコンテキストウィンドウ、ツールサポート、入力モダリティの組み込み表があります。それ以外のものについては、安全なデフォルトにフォールバックします。この警告は、OpenAI以外の各スラッグに対してセッションごとに一度表示されます。動作自体には問題なく、無視して大丈夫です。

**修正するには：** 追加してください `model_context_window = 131072` を `~/.codex/config.toml` の先頭に追加すると、Codexはフォールバック推測値ではなくGemma 4の実際の128Kコンテキストを使います。ツールサポートや入力モダリティも含めて完全に制御したい場合は、 `model_catalog_json` を `[profiles.unsloth_api]` 内で、カスタム `ModelInfo` エントリをそのスラッグ用に含むJSONファイルへ向けてください。
{% endhint %}

この `-p unsloth_api` フラグは、先ほど追加したプロファイルをCodexに使わせるためのものです。モデル名はCodexのステータスバーに表示されます。

<figure><img src="/files/77b7d2484bf81b08190a4953441acd87022887e1" alt=""><figcaption></figcaption></figure>

追加 `--search` するとWeb検索を有効にできます：

```bash
codex -p unsloth_api --search
```

すべての承認プロンプトを回避するには **（警告：これを行うと、Codexが一切の承認なしに好きなようにコードを実行・実施するようになります！）**:

{% code overflow="wrap" %}

```bash
codex -p unsloth_api --search --dangerously-bypass-approvals-and-sandbox
```

{% endcode %}
{% endstep %}
{% endstepper %}

### 実際のタスクを試す

シンプルなUnslothファインチューニングをインストールして実行するには、このプロンプトを試してください：

{% code overflow="wrap" %}

```
あなたが作業できるのは cwd project/ の中だけです。AGENTS.md を探さないでください - これがそれです。
uv経由の仮想環境でUnslothをインストールしてください。方法は
https://unsloth.ai/docs/get-started/install/pip-install を参照してください（取得して読んでください）。
その後、
https://github.com/unslothai/unsloth で説明されているシンプルなUnslothファインチューニング実行を行ってください。GPUは1つ使用できます。
```

{% endcode %}

そしてもう少し待てば、Unslothで正常にファインチューニングされたモデルが表示されます！

<figure><img src="/files/34e1b35a0b3053029a475482eb65f50563bfe855" alt=""><figcaption></figcaption></figure>

### 切断または元に戻す

Codexを `-p unsloth_api` なしで起動すると、デフォルトのプロバイダーを使用します。あるいは、 `[profiles.unsloth_api]` と `[model_providers.unsloth_api]` ブロックを `~/.codex/config.toml`.

```bash
unset UNSLOTH_STUDIO_AUTH_TOKEN
```

から削除してください。Unsloth Studioは起動したままでも停止しても構いません。停止中は何も割り込みません。

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

| 症状                                         | 考えられる原因                                            | 対処法                                                                                            |
| ------------------------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `Model metadata for ... not found`         | OpenAI以外のスラッグで、組み込みメタデータがない                        | 無害な警告です。副作用を抑えるには、 `model_context_window = 131072` で `~/.codex/config.toml`を設定するか、             |
| CodexがGPTだと言う                              | CodexはOpenAIを参照するシステムプロンプトを注入するため、ローカルモデルがそれを反映します | ルーティングの不具合ではありません。Studioのアクティビティパネルで確認してください。自己申告を変えたい場合はシステムプロンプトを上書きしてください。                  |
| `接続が拒否される`                                 | Studioが起動していない、またはポートが違う                           | Studioが `http://localhost:8888`で起動していることを確認してください；確認する項目は `base_url` で `config.toml`           |
| `wire_api = "chat" is no longer supported` | 古い `wire_api = "chat"` 設定内の                        | に切り替えてください `wire_api = "responses"`                                                            |
| `model not found`                          | モデルIDのタイプミス                                        | `GET http://localhost:8888/v1/models` を実行して正確なIDをコピーしてください                                     |
| 生成途中でOOM                                   | コンテキストがVRAMに対して大きすぎる                               | Studioの **Settings → Inference**でコンテキストを減らすか、より小さい量子化版を使ってください                                 |
| Codexに「ChatGPTでサインイン」選択画面が出る               | そのまま起動した `codex` （ `-p`)                           | なし）終了し（Ctrl+C）、次で再起動してください `codex -p unsloth_api`。カスタムプロバイダーではそれはスキップされます                      |
| ツール呼び出しが不安定                                | 自己修復フォールバックが必要                                     | Studioの [自己修復ツール呼び出し](file:///1382377/new/studio/#execute-code--heal-tool-calling) はデフォルトで有効です |
| WSL: `接続が拒否される` への `localhost`             | WSLネットワーク名前空間                                      | でWindowsホストIPを使用するか、WSL2ミラーネットワークを有効にしてください `base_url`、またはWSL2ミラーネットワークを有効にしてください              |

## 🦙 Llama.cppチュートリアル

も直接使用できます `llama.cpp` 。デプロイする必要があるのは `llama-server` で、これはMac、Linux、Windowsデバイス上でLLMを効率的に実行・配信するためのオープンソースフレームワークです。モデルは **ポート8001** で配信され、すべてのエージェントツール呼び出しはその単一のOpenAI互換エンドポイントを通してルーティングされます。

{% hint style="info" %}
llama.cppのエンドポイントは **ポート8001** ではなく `8888` （Unsloth Studioのデフォルト）になります。Codexの `base_url` を `~/.codex/config.toml`.
{% endhint %}

{% stepper %}
{% step %}

#### **で適宜調整してください**

llama.cppをインストール `llama.cpp` をインストールして、Codexで使用するローカルLLMをデプロイ・配信する必要があります。正しいGPUバインディングと最大パフォーマンスのため、公式のビルド手順に従います。 `-DGGML_CUDA=ON` への `-DGGML_CUDA=OFF` GPUがない場合、またはCPU推論だけを使いたい場合は、に変更してください。 **Apple Mac / Metalデバイスの場合**、 `-DGGML_CUDA=OFF` を設定してから通常どおり続けてください - Metalサポートはデフォルトで有効です。

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev git-all -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first \
    --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

{% endstep %}

{% step %}

#### **モデルをダウンロードしてローカルで使う**

モデルは `hf` CLI（`pip install huggingface_hub hf_transfer`）でダウンロードします。サイズと精度のバランスが最も良い **UD-Q4\_K\_XL** 量子化版を使います。すべてのUnsloth GGUFアップロードは [こちらのコレクション](file:///1382377/get-started/unsloth-model-catalog.md)で確認できます。ダウンロードが止まる場合は、次を参照してください [https://hugging-face-hub-xet-debugging.md](https://hugging-face-hub-xet-debugging.md "mention").

```bash
hf download unsloth/gemma-4-26B-A4B-it-GGUF \
    --local-dir unsloth/gemma-4-26B-A4B-it-GGUF \
    --include "*UD-Q4_K_XL*"
```

{% hint style="info" %}
**ビジョン対応が必要ですか？** 追加 `--include "*mmproj-BF16*"` を使ってビジョンプロジェクタも取得し、次に `--mmproj unsloth/gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf` への `llama-server`. Codex 自体はテキスト専用なので、これは任意です。
{% endhint %}

{% hint style="success" %}
私たちは `unsloth/gemma-4-26B-A4B-it-GGUF`を使いましたが、以下のようなものなら何でも使えます `unsloth/Qwen3.6-35B-A3B-GGUF` - 参照 [Qwen3.6-35B-A3B](/docs/jp/moderu/qwen3.6.md).
{% endhint %}
{% endstep %}

{% step %}

#### **Llama-server を起動する**

Gemma-4-26B-A4B をエージェント的なワークロード向けにデプロイするには、 `llama-server`を使います。Google 推奨のサンプリングパラメータ（`temp 1.0`, `top_p 0.95`, `top_k 64`）を適用し、 `--jinja` を有効にして、適切なツール呼び出しをサポートします。

このコマンドを新しいターミナルで実行してください（ `tmux` を使うか、新しいターミナルを開いてください）。以下は **24GB GPU（RTX 4090）に余裕で収まり** 約18GBです。 `--fit は` でも自動オフロードされますが、性能が悪い場合は `--ctx-size`.

```bash
./llama.cpp/llama-server \
    --model unsloth/gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \
    --alias "unsloth/gemma-4-26B-A4B" \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64 \
    --port 8001 \
    --kv-unified \
    --cache-type-k q8_0 --cache-type-v q8_0 \
    --batch-size 4096 --ubatch-size 1024
```

{% hint style="info" %}
私たちは `--cache-type-k q8_0 --cache-type-v q8_0` は、VRAM 使用量を減らすための KV キャッシュ量子化です。品質低下が見られる場合は、代わりに `bf16` を使ってください（`--cache-type-k bf16 --cache-type-v bf16`）、ただし VRAM は2倍になります。
{% endhint %}

{% hint style="success" %}
**思考を無効化することは** エージェント的なコーディングタスクで性能を向上させることがあります。Gemma 4 はチャットテンプレート経由で既定で思考を有効にするため、無効化するには llama-server コマンドに次のフラグを追加してください:

**MacOS / Linux / WSL:**

`--chat-template-kwargs '{"enable_thinking":false}'`

**Windows PowerShell:**

`--chat-template-kwargs "{\"enable_thinking\":false}"`
{% endhint %}
{% endstep %}

{% step %}

#### **Codex をポート 8001 に向ける**

編集して `~/.codex/config.toml` を llama-server のポートに使うようにしてください:

{% code title="\~/.codex/config.toml" %}

```toml
[model_providers.llama_cpp]
name      = "llama.cpp"
base_url  = "http://localhost:8001/v1"
env_key   = "LLAMA_CPP_API_KEY"
wire_api  = "responses"

[profiles.llama_cpp]
model_provider = "llama_cpp"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

その後、新しいプロファイルで起動します:

```bash
codex -p llama_cpp
```

llama-server は実際のキーを必要としないため、認証トークンは何でも設定できます:

{% code title="MacOS / Linux / WSL" %}

```bash
export LLAMA_CPP_API_KEY=sk-no-key-required
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:LLAMA_CPP_API_KEY = "sk-no-key-required"
```

{% endcode %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/ji-ben/codex.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
