---
title: OpenCode カスタムプロバイダー設定：任意の OpenAI 互換 API を追加する
description: >-
  Haimaker、Ollama、OpenRouter、または任意の OpenAI 互換 API を OpenCode に追加する方法。opencode
  auth login、opencode.json の設定、ローカルモデルのセットアップ、よくあるプロバイダーエラーの対処法を解説します。
date: 2026-04-12T00:00:00.000Z
updatedDate: 2026-06-26T00:00:00.000Z
location: 'San Francisco, CA – 2026年4月12日'
image: /images/opencode-custom-provider-setup-hero.jpg
keywords: >-
  opencode カスタムプロバイダー, opencode プロバイダー追加, opencode モデルプロバイダー, opencode openai
  互換, opencode haimaker, opencode llm プロバイダー, opencode プロバイダー設定, opencode
  ローカルプロバイダー
faq:
  - question: OpenCode にカスタム LLM プロバイダーを追加するにはどうすればよいですか？
    answer: >-
      'opencode auth login' を実行して Other を選び、プロバイダーの認証情報を保存します。次に opencode.json
      に対応するプロバイダーエントリを追加し、npm に '@ai-sdk/openai-compatible' を設定、baseURL に API
      のエンドポイントを指定、'models' に使いたいモデルを記述します。OpenCode を再起動して /models
      で選択してください。Haimaker の場合は 'npx -y @haimaker/connect --opencode'
      を実行すると、認証情報とプロバイダーブロックが自動的に書き込まれます。
  - question: カスタムプロバイダーが /models に表示されないのはなぜですか？
    answer: >-
      よくある原因は、認証情報と設定ファイルのプロバイダー ID が一致していない、opencode.json が不正な JSON である、モデル ID
      がアップストリーム API と一致していない、またはプロバイダー設定の編集後に OpenCode を再起動し忘れていることです。
  - question: 同じ OpenAI 互換 API を OpenCode の複数プロバイダーとして使用できますか？
    answer: >-
      はい。'provider' ブロック内の各エントリは独立しているため、Haimaker、Ollama、OpenRouter、LM
      Studio、社内ゲートウェイをそれぞれ別のプロバイダーとして追加できます。/models の一覧が見やすくなるよう、プロバイダー ID
      は一意にしてください。
locale: ja-jp
translationKey: opencode-custom-provider-setup
---
OpenCode はプロバイダーディレクトリで 75 種類以上の LLM プロバイダーをサポートしていますが、カスタムプロバイダーも欠かせません。ゲートウェイ、ローカルランタイム、社内の推論エンドポイント、まだディレクトリに登録されていないモデルを追加できるからです。

手順はシンプルです。認証情報を保存し、プロバイダーブロックを追加し、OpenCode を再起動して、`/models` からモデルを選ぶだけです。

> **Haimaker をセットアップしたい場合**は、手動手順をスキップできます。`npx -y @haimaker/connect --opencode` を実行すると、CLI がプロバイダーブロックを書き込み、認証情報を自動保存します（`--project` を付けるとプロジェクトローカルの設定になります）。以下の手順は、*あらゆる* OpenAI 互換プロバイダー（Ollama、LM Studio、社内ゲートウェイ、ディレクトリにまだ載っていないものなど）に使える一般的な方法です。ワンコマンドで完了したい場合は[接続ガイド](/connect)を参照してください。

## カスタムプロバイダーを使う場面

モデルやエンドポイントが OpenCode の組み込みプロバイダー一覧にない場合は、カスタムプロバイダーを使います。

具体的な例：

- **Haimaker** - 1 つの API キーで OpenAI 互換ゲートウェイ経由の複数のモデルファミリーにアクセスできます。
- **Ollama** - `http://localhost:11434/v1` でローカルモデルを実行できます。
- **LM Studio** - `http://127.0.0.1:1234/v1` でローカルモデルを実行できます。
- **社内ゲートウェイ** - 企業がホストする OpenAI 互換エンドポイント。
- **新規プロバイダー** - OpenCode のディレクトリに反映される前の、OpenAI 互換チャット API を提供するもの。

プロバイダーがすでに OpenCode に存在する場合は、まず組み込みのものを優先してください。カスタム設定が役立つのは、カスタムベース URL、ゲートウェイ、またはデフォルト一覧にないモデルが必要な場合です。

## ステップ 1：認証情報の追加

現在の OpenCode ドキュメントでは、プロバイダー認証情報の登録に `opencode auth login` を使うよう説明されています。カスタムの OpenAI 互換プロバイダーの場合は **Other** を選び、プロバイダー ID を入力して API キーをペーストします。

```bash
opencode auth login
```

設定ファイルでも使う短いプロバイダー ID を選んでください。例：

```text
haimaker
ollama
mygateway
```

OpenCode は認証情報を次の場所に保存します。

```text
~/.local/share/opencode/auth.json
```

必要に応じてこのファイルを直接編集できますが、`opencode auth login` を使えばキーの形式の入力ミスを防げます。

## ステップ 2：プロバイダーの設定

OpenCode の設定ファイルを開くか作成します。環境に応じて、プロジェクト内の `opencode.json` または `~/.config/opencode/` 配下のグローバルファイルになります。

認証時に使ったのと同じプロバイダー ID で `provider` ブロックを追加します。[haimaker.ai](https://haimaker.ai) を例にしたパターンは次のとおりです。

```jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "haimaker": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Haimaker",
      "options": {
        "baseURL": "https://api.haimaker.ai/v1"
      },
      "models": {
        "z-ai/glm-4.6": {
          "name": "GLM 4.6"
        },
        "minimax/minimax-m2.5": {
          "name": "MiniMax M2.5"
        },
        "qwen/qwen3-coder": {
          "name": "Qwen3 Coder"
        }
      }
    }
  }
}
```

各フィールドの役割は次のとおりです。

- **`npm`**：SDK アダプター。OpenAI 互換 API であれば `@ai-sdk/openai-compatible` を使います。OpenCode はアダプターをオンデマンドで読み込みます。
- **`name`**：OpenCode に表示される名前です。
- **`options.baseURL`**：プロバイダー API のベース URL です。末尾は `/v1` にするか、プロバイダーが使うバージョンプレフィックスに合わせてください。
- **`models`**：OpenCode で使えるようにするモデルです。キーは、プロバイダー API が completion リクエストの `model` フィールドで受け付ける値と完全に一致させる必要があります。

カスタムプロバイダーはいくつでも追加でき、それぞれを `provider` の下の個別エントリとして記述します。

## ステップ 3：再起動と確認

OpenCode は再起動するまでプロバイダーの変更を反映しないことがあります。完全に終了して再起動し、次を実行します。

```text
/models
```

プロバイダーの表示名と設定したモデルが表示されます。実際のコードに使う前に、モデルを 1 つ選んで短いプロンプトで動作確認してください。

## 設定例：Haimaker ゲートウェイ

複数のモデルファミリーに対して 1 つの OpenAI 互換エンドポイントを使いたい場合に便利です。

```jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "haimaker": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Haimaker",
      "options": {
        "baseURL": "https://api.haimaker.ai/v1"
      },
      "models": {
        "anthropic/claude-sonnet-4-6": {
          "name": "Claude Sonnet 4.6"
        },
        "openai/gpt-5.4-mini": {
          "name": "GPT-5.4 Mini"
        },
        "minimax/minimax-m2.5": {
          "name": "MiniMax M2.5"
        },
        "qwen/qwen3-coder": {
          "name": "Qwen3 Coder"
        }
      }
    }
  }
}
```

この構成が便利な理由は、OpenCode からは 1 つのプロバイダーとして見え、Haimaker が複数のアップストリームモデルファミリーへのアクセスをまとめて処理してくれることです。OpenCode の設定はコンパクトに保たれ、モデルの切り替えもスムーズになります。

## 設定例：Ollama ローカルプロバイダー

Ollama は `http://localhost:11434/v1` で OpenAI 互換のローカルエンドポイントを公開しています。

```jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3-coder:30b": {
          "name": "Qwen3 Coder 30B"
        },
        "gemma4:e4b": {
          "name": "Gemma 4 E4B"
        }
      }
    }
  }
}
```

OpenCode を起動する前にモデルをプルしておきます。

```bash
ollama pull qwen3-coder:30b
ollama pull gemma4:e4b
```

OpenCode がローカルプロバイダーに認証を要求する場合は、`opencode auth login` を実行し、**Other** を選び、プロバイダー ID に `ollama` を使い、`ollama` のような空でない任意の文字列を入力してください。Ollama はローカル API キーを検証しません。

## よくあるエラーと対処法

#### プロバイダーが /models に表示されない

次の 4 点を確認してください。

1. `opencode auth login` で入力したプロバイダー ID が、設定ファイルのプロバイダーキーと一致していること。
2. 設定ファイルが有効な JSON または JSONC であること。
3. プロバイダー設定を編集したあとに OpenCode を再起動したこと。
4. モデルがプロバイダーの `models` オブジェクトに記載されていること。

#### 最初のリクエストで認証が失敗する

認証情報がないか、誤ったプロバイダー ID に紐付けられています。次を実行してください。

```bash
opencode auth list
```

プロバイダー ID が設定と完全に一致していることを確認してください。キーのフィールドに `Bearer` を含めないでください。

#### モデルは表示されるがリクエストが失敗する

モデル ID がアップストリーム API の期待する形式と一致していない可能性があります。カスタムプロバイダーはモデル ID をそのまま渡します。設定に `qwen/qwen3-coder` と書いてある場合、API は `qwen/qwen3-coder` をそのまま受け付ける必要があります。

Haimaker の場合は、キーとエンドポイントを次のようにテストします。

```bash
curl https://api.haimaker.ai/v1/models \
  -H "Authorization: Bearer your-haimaker-api-key"
```

Ollama の場合は、ローカルモデルを確認します。

```bash
ollama list
```

この出力に表示されるモデル名をそのまま使ってください。

#### ローカルモデルでツールコールが失敗する

ローカルモデルはコンテキスト長の制限やツールコールの形式の影響を受けやすいです。エージェントコーディングが得意なモデル（Qwen3 Coder など）から始め、コンテキストサイズは小さめに抑えましょう。OpenCode のドキュメントでは、ツールコールがうまくいかない場合に Ollama の `num_ctx` を増やすことも推奨されています。

#### 組み込みプロバイダーが動作しなくなった

意図せず設定を必要以上に書き換えてしまった可能性があります。カスタムプロバイダーは `provider` オブジェクト内に配置し、既存のプロバイダーエントリを削除しないでください。迷ったら、設定変更は最小限にしてください。プロバイダー ID を 1 つとモデルを 1 つ追加し、再起動してテストし、問題がなければ追加してください。

## 実践的な構成

ほとんどの OpenCode ユーザーにとって、シンプルな構成は次のとおりです。

1. **Haimaker** - 1 つの API キーによるクラウドモデルの利用とルーティングに。
2. **Ollama** - ローカルでのプライベートな作業に。
3. **プレミアムモデル 1 つ** - 難しいデバッグや複数ファイルのリファクタリング用に。

これにより、プライバシーが重要な場面ではローカルで処理し、日常的な作業には低コストのクラウドモデルを使い、高度な集中力を要するコーディングタスクにはより高性能なモデルを使えます。

<a href="https://app.haimaker.ai/sign-up?utm_source=openclaw_blog&utm_medium=cta&utm_campaign=opencode_custom_provider" class="cta-button">OpenCode で Haimaker を使う</a>

---

*ローカルセットアップについては [OpenCode で Ollama を使う](/ja-jp/blog/ollamaをopencodeで使う方法/) を参照してください。ローカルモデルの比較については [コーディングエージェント向けのおすすめ Ollama モデル](/ja-jp/blog/コーディングエージェント向けおすすめollamaモデル/) を参照してください。*
