|

3ステップでOpenCodeをAPI中継サーバーに接続、400以上のAIモデルの自由な切り替えをアンロック

オープンソースのAIプログラミングアシスタント「OpenCode」を使いたいけれど、公式APIの価格の高さやネットワークの不安定さに悩んでいませんか?そんな時、APIプロキシ(中継)サービスが最適な解決策となります。この記事では、OpenCodeをAPIYIやOpenRouterなどの中継サービスに接続する3つのステップを分かりやすく解説します。これにより、Claude、GPT-4、Geminiなど75種類以上の主要な大規模言語モデルを、より低コストで利用できるようになります。

本記事のメリット: 読み終える頃には、OpenCodeを任意のOpenAI互換APIで動作させるための設定方法をマスターし、自由なモデルの切り替えとコストの最適化を実現できるようになります。

opencode-api-proxy-configuration-guide-ja 图示

OpenCodeとは?なぜAPIプロキシを利用するのか

OpenCodeは、Claude Codeのオープンソース代替として注目されているターミナルベースのAIプログラミングアシスタントです。Go言語で開発されており、洗練されたTUI(テキストユーザインターフェース)、マルチセッション管理、LSP(Language Server Protocol)連携など、プロフェッショナルな機能を備えています。

OpenCodeの主な特徴

機能 説明 メリット
75以上のモデルに対応 OpenAI、Claude、Gemini、Bedrockなどに対応 特定のベンダーに縛られない
ターミナルネイティブ Bubble Teaで構築された美しいTUI 開発者に優しい操作体験
オープンソース・無料 コードは完全公開、サブスクリプション不要 API利用料のみでコスト管理が容易
LSP連携 言語サーバーを自動検出 インテリジェントなコード補完と診断
マルチセッション管理 複数のエージェントを並行実行 複雑なタスクの分解と連携
Vimモード Vimスタイルのエディタを内蔵 ターミナルユーザーがスムーズに移行可能

なぜAPIプロキシ(中継)サービスを使うのか?

公式APIを直接利用する場合、以下のような課題に直面することがあります。

課題 APIプロキシによる解決策
価格が高い プロキシサービスはより安価な料金体系を提供しており、個人開発者に最適
ネットワークが不安定 アクセス経路の最適化により、接続の安定性が向上
支払いや管理が煩雑 決済が一本化され、複数のモデルを一括管理可能
利用制限(クォータ) プロキシ経由でより柔軟な利用枠の確保が可能
登録のハードル 海外の電話番号やクレジットカードが不要

🚀 クイックスタート: プロキシサービスとして「APIYI(apiyi.com)」の利用をおすすめします。OpenAI互換のインターフェースをすぐに利用でき、登録するだけで無料テスト枠がもらえます。わずか5分でOpenCodeの設定が完了します。

OpenCode を API 中継サーバーに接続するための核心的なポイント

設定を始める前に、OpenCode の API 接続の仕組みを理解しておきましょう。

opencode-api-proxy-configuration-guide-ja 图示

設定アーキテクチャの説明

OpenCode は統一された設定管理体系を採用しており、多層的な設定の上書きをサポートしています。

設定レイヤー ファイルの場所 優先順位 利用シーン
リモート設定 .well-known/opencode 最低 チーム統一設定
グローバル設定 ~/.config/opencode/opencode.json 個人デフォルト設定
環境変数 OPENCODE_CONFIG が指すファイル 中高 一時的な上書き
プロジェクト設定 プロジェクトルートの opencode.json プロジェクト固有の設定
インライン設定 OPENCODE_CONFIG_CONTENT 最高 CI/CD シナリオ

API 中継サーバーの接続原理

OpenCode は @ai-sdk/openai-compatible アダプターを介して、あらゆる OpenAI 互換 API をサポートしています。重要な設定項目は以下の通りです。

  • baseURL: API 中継サーバーのインターフェースアドレス
  • apiKey: 中継サーバーが提供する API キー
  • models: 利用可能なモデルリスト

つまり、中継サーバーが標準的な /v1/chat/completions インターフェースを提供していれば、OpenCode に直接接続できることを意味します。

OpenCode クイックスタート設定

ステップ 1: OpenCode のインストール

OpenCode は複数のインストール方法を提供しています。最適なものを選択してください。

ワンクリックインストールスクリプト (推奨):

curl -fsSL https://opencode.ai/install | bash

Homebrew インストール (macOS/Linux):

brew install opencode-ai/tap/opencode

npm インストール:

npm i -g opencode-ai@latest

Go インストール:

go install github.com/opencode-ai/opencode@latest

インストールが成功したか確認します。

opencode --version

ステップ 2: API 中継サーバーキーの設定

OpenCode は 2 つの認証方式をサポートしています。

方法 1: /connect コマンドを使用する (推奨)

OpenCode を起動した後、/connect コマンドを入力します。

opencode
# TUI インターフェースで入力
/connect

Other を選択してカスタムプロバイダーを追加し、API キーを入力します。キーは ~/.local/share/opencode/auth.json に安全に保存されます。

方法 2: 環境変数の設定

~/.zshrc または ~/.bashrc に以下を追加します。

# APIYI 中継サーバーの設定
export OPENAI_API_KEY="sk-your-apiyi-key"
export OPENAI_BASE_URL="https://api.apiyi.com/v1"

設定を反映させます。

source ~/.zshrc

ステップ 3: opencode.json 設定ファイルの作成

これは最も重要なステップです。API 中継サーバーを指定するための設定ファイルを作成します。

グローバル設定 (すべてのプロジェクトに適用):

mkdir -p ~/.config/opencode
touch ~/.config/opencode/opencode.json

プロジェクト設定 (現在のプロジェクトのみ有効):

touch opencode.json  # プロジェクトルートディレクトリにて

最小限の設定例

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI",
      "options": {
        "baseURL": "https://api.apiyi.com/v1",
        "apiKey": "{env:OPENAI_API_KEY}"
      },
      "models": {
        "claude-sonnet-4-20250514": {
          "name": "Claude Sonnet 4"
        },
        "gpt-4o": {
          "name": "GPT-4o"
        }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514"
}

設定の説明: {env:OPENAI_API_KEY} 構文は環境変数を自動的に読み取るため、設定ファイルにキーをハードコードするのを防ぎます。APIYI (apiyi.com) から取得した API キーは OpenAI 形式と互換性があり、そのまま使用できます。

完全な設定例を表示 (複数のプロバイダーを含む)
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI (推荐)",
      "options": {
        "baseURL": "https://api.apiyi.com/v1",
        "apiKey": "{env:APIYI_API_KEY}"
      },
      "models": {
        "claude-sonnet-4-20250514": {
          "name": "Claude Sonnet 4",
          "limit": {
            "context": 200000,
            "output": 65536
          }
        },
        "claude-opus-4-20250514": {
          "name": "Claude Opus 4",
          "limit": {
            "context": 200000,
            "output": 32000
          }
        },
        "gpt-4o": {
          "name": "GPT-4o",
          "limit": {
            "context": 128000,
            "output": 16384
          }
        },
        "gpt-4o-mini": {
          "name": "GPT-4o Mini",
          "limit": {
            "context": 128000,
            "output": 16384
          }
        },
        "gemini-2.5-pro": {
          "name": "Gemini 2.5 Pro",
          "limit": {
            "context": 1000000,
            "output": 65536
          }
        },
        "deepseek-chat": {
          "name": "DeepSeek V3",
          "limit": {
            "context": 64000,
            "output": 8192
          }
        }
      }
    },
    "openrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenRouter",
      "options": {
        "baseURL": "https://openrouter.ai/api/v1",
        "apiKey": "{env:OPENROUTER_API_KEY}",
        "headers": {
          "HTTP-Referer": "https://your-site.com",
          "X-Title": "OpenCode Client"
        }
      },
      "models": {
        "anthropic/claude-sonnet-4": {
          "name": "Claude Sonnet 4 (OpenRouter)"
        },
        "openai/gpt-4o": {
          "name": "GPT-4o (OpenRouter)"
        }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514",
  "small_model": "apiyi/gpt-4o-mini",
  "agent": {
    "coder": {
      "model": "apiyi/claude-sonnet-4-20250514",
      "maxTokens": 8000
    },
    "planner": {
      "model": "apiyi/gpt-4o",
      "maxTokens": 4000
    }
  },
  "tools": {
    "write": true,
    "bash": true,
    "glob": true,
    "grep": true
  }
}

OpenCode がサポートする API プロキシの比較

opencode-api-proxy-configuration-guide-ja 图示

主要 API プロキシの設定パラメータ

プロキシ baseURL 特徴 推奨利用シーン
APIYI https://api.apiyi.com/v1 中国語サポート充実、低価格、高速レスポンス 国内開発者の第一候補
OpenRouter https://openrouter.ai/api/v1 モデルが最も豊富(400種類以上) 複数のモデルを切り替える場合に最適
Together AI https://api.together.xyz/v1 オープンソースモデルが豊富 Llama、Mistral ユーザー
Groq https://api.groq.com/openai/v1 非常に高速、無料枠あり レイテンシに敏感なシーン

APIYI 設定の詳細

APIYI は、国内の開発者向けに最適化された AI API プロキシプラットフォームで、以下の機能を提供します:

  • 統一された OpenAI 互換インターフェース
  • Claude、GPT、Gemini、DeepSeek などの主要モデルをサポート
  • 従量課金制(月額料金なし)
  • 無料テストクレジット
  • 中国語カスタマーサポート
{
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI",
      "options": {
        "baseURL": "https://api.apiyi.com/v1"
      },
      "models": {
        "claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
        "claude-opus-4-20250514": { "name": "Claude Opus 4" },
        "gpt-4o": { "name": "GPT-4o" },
        "gpt-4o-mini": { "name": "GPT-4o Mini" },
        "gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
        "deepseek-chat": { "name": "DeepSeek V3" }
      }
    }
  }
}

OpenRouter 設定の詳細

OpenRouter は 400 以上の AI モデルを集約しており、頻繁にモデルを切り替える必要があるシーンに適しています:

{
  "provider": {
    "openrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenRouter",
      "options": {
        "baseURL": "https://openrouter.ai/api/v1",
        "apiKey": "{env:OPENROUTER_API_KEY}",
        "headers": {
          "HTTP-Referer": "https://your-app.com",
          "X-Title": "My OpenCode App"
        }
      },
      "models": {
        "anthropic/claude-sonnet-4": {
          "name": "Claude Sonnet 4"
        },
        "google/gemini-2.5-pro": {
          "name": "Gemini 2.5 Pro"
        },
        "meta-llama/llama-3.1-405b": {
          "name": "Llama 3.1 405B"
        }
      }
    }
  }
}

💡 選択のアドバイス: 主に Claude や GPT シリーズのモデルを使用する場合は、低価格でレスポンスが速い APIYI (apiyi.com) をおすすめします。オープンソースモデルやマイナーなモデルが必要な場合は、OpenRouter の方がカバー範囲が広いです。

OpenCode 応用設定テクニック

エージェント(Agent)モデル割り当て戦略

OpenCode には Coder と Planner の 2 つのエージェントが内蔵されており、それぞれに異なる大規模言語モデルを割り当てることができます。

{
  "agent": {
    "coder": {
      "model": "apiyi/claude-sonnet-4-20250514",
      "maxTokens": 8000,
      "description": "主要なコーディングタスク用。高性能モデルを使用"
    },
    "planner": {
      "model": "apiyi/gpt-4o-mini",
      "maxTokens": 4000,
      "description": "計画・分析用。軽量モデルを使用してコストを削減"
    }
  }
}

マルチプロバイダー(Provider)の切り替え

複数のプロバイダーを設定した後は、OpenCode 内で /models コマンドを使用して、いつでも切り替えることができます。

# OpenCode を起動
opencode

# TUI 内でモデルを切り替え
/models
# apiyi/claude-sonnet-4-20250514 または他のモデルを選択

環境変数のベストプラクティス

API キーは .env ファイルで管理することをお勧めします。

# .env ファイル
APIYI_API_KEY=sk-your-apiyi-key
OPENROUTER_API_KEY=sk-or-your-openrouter-key

その後、opencode.json で以下のように参照します。

{
  "provider": {
    "apiyi": {
      "options": {
        "apiKey": "{env:APIYI_API_KEY}"
      }
    }
  }
}

トークン制限の設定

モデルのコンテキストと出力の制限を指定することで、制限超過エラーを回避します。

{
  "models": {
    "claude-sonnet-4-20250514": {
      "name": "Claude Sonnet 4",
      "limit": {
        "context": 200000,
        "output": 65536
      }
    }
  }
}

OpenCode よくある質問とトラブルシューティング

設定プロセスで発生する可能性のある問題とその解決策をまとめました。

Q1: 設定後に “Route /api/messages not found” エラーが表示されます。

これは通常、baseURL の設定が正しくないことが原因です。以下の点を確認してください。

  1. baseURL が /v1/chat/completions ではなく、/v1 で終わっていることを確認してください。
  2. 利用しているプロキシが標準的な OpenAI インフェース形式をサポートしているか確認してください。
  3. API キーが有効であることを確認してください。

正しい形式:

"baseURL": "https://api.apiyi.com/v1"

誤った形式:

"baseURL": "https://api.apiyi.com/v1/chat/completions"

APIYI(apiyi.com)から取得したインターフェースアドレスは検証済みのため、そのまま使用可能です。

Q2: “ProviderModelNotFoundError” でモデルが見つからないと表示されます。

これは、設定されたモデル ID がプロバイダーで定義されているものと一致しないために発生します。解決方法は以下の通りです。

  1. model フィールドの形式が provider-id/model-id になっているか確認します。
  2. models オブジェクト内でそのモデルが定義されているか確認します。

例:

{
  "provider": {
    "apiyi": {
      "models": {
        "claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514"
}
Q3: 設定が成功したか確認するにはどうすればよいですか?

以下のコマンドを使用して確認してください。

# 設定済みの認証情報を表示
opencode auth list

# 利用可能なモデルを確認
opencode
/models

# 簡単な対話をテスト
opencode -p "こんにちは、日本語で返信してください"

正常な応答が返ってくれば、設定は成功です。APIYI(apiyi.com)プラットフォームのコンソールから API の呼び出しログを確認することもでき、問題の特定に役立ちます。

Q4: 設定ファイルはどこに置くのが最適ですか?

使用シーンに合わせて選択してください。

シーン 推奨場所 説明
ユーザー全体のデフォルト ~/.config/opencode/opencode.json すべてのプロジェクトで共有
特定のプロジェクト設定 プロジェクトのルートディレクトリ opencode.json Git にコミット可能(キーは含まない)
CI/CD 環境 環境変数 OPENCODE_CONFIG_CONTENT 設定を動的に注入
Q5: OpenCode で異なる API プロキシを切り替えるには?

複数のプロバイダーを設定した後、/models コマンドで切り替えます。

opencode
/models
# 異なるプロバイダー配下のモデルを選択するだけで切り替え可能

また、設定ファイルでデフォルトモデルを指定することもできます。

{
  "model": "apiyi/claude-sonnet-4-20250514"
}

OpenCode vs Claude Code:API連携方式の比較

比較項目 OpenCode Claude Code
対応モデル 75以上のモデル、自由に構成可能 Claudeシリーズのみ
API中継サービス 任意のOpenAI互換インターフェースをサポート カスタムインターフェース非対応
価格 フリーウェア + API従量課金 月額$17-100のサブスクリプション + API
設定方法 JSON設定ファイル + 環境変数 内蔵設定、変更不可
オープンソース度 完全オープンソース クローズドソース
パフォーマンス 選択したモデルに依存 Claudeネイティブ最適化、SWE-bench 80.9%

🎯 テクニカルアドバイス: OpenCodeの最大の利点はモデルの柔軟性です。APIYI(apiyi.com)のような中継サービスと組み合わせることで、同じ設定のままClaude、GPT-4、Geminiなど多様なモデルを切り替えて使用でき、コストパフォーマンスが最も優れた構成を見つけることができます。

参考文献・リソース

以下は、OpenCodeを設定する際に役立つリソースです:

リソース リンク 説明
OpenCode公式サイト opencode.ai/docs 完全な設定リファレンス
OpenCode GitHubリポジトリ github.com/opencode-ai/opencode ソースコードとIssue
OpenCodeプロバイダー設定 opencode.ai/docs/providers プロバイダーの詳細説明
OpenRouterドキュメント openrouter.ai/docs OpenRouter連携ガイド

まとめ

本記事で紹介した3ステップの構成方法を通じて、以下の内容を習得できたはずです:

  1. OpenCodeのインストール: ワンクリックスクリプトやパッケージマネージャーを使用して素早くインストール
  2. APIキーの設定: /connect コマンドまたは環境変数を使用して認証を設定
  3. 設定ファイルの作成: opencode.json を記述し、プロキシサーバーとモデルを指定

OpenCodeはオープンソースのターミナルAIプログラミングアシスタントとして、APIプロキシと組み合わせて使用することで、コストを抑えつつモデルの柔軟性を保ちながら、Claude Codeに匹敵する体験を得ることができます。

APIYI (apiyi.com) を通じてAPIキーを迅速に取得し、テストを開始することをお勧めします。プラットフォームでは無料枠を提供しており、Claude、GPT、Geminiなどの主要なモデルをサポートしています。統一されたインターフェース形式により、設定がより簡単になります。


📝 著者: APIYI 技術チーム | APIYI apiyi.com – AI APIの呼び出しをよりシンプルに

類似投稿