opencode.jsonでカスタムプロバイダー (@ai-sdk/openai-compatible) としてUberLLMをOpenCodeに追加し、/connectでキーを保存し、Claude、GLM、Kimi、DeepSeek、またはQwen Coderを市場価格で実行します。
~/.config/opencode/opencode.json`に`npm`の`"@ai-sdk/openai-compatible"`、`baseURL https://api.uberllm.dev/v1`、そして必要なモデルを使って"uberllm"プロバイダーを追加し、`UberLLM key`(`environment variable`または`/connect`)を設定した後、`/models`で`uberllm/<model id>`を選択します。
手順
- あなたのkeys page]でキーを作成し、クレジットを追加します。
~/.config/opencode/opencode.jsonを開く(または作成する)。1つのプロジェクトのみの場合は、代わりにプロジェクトフォルダー内のopencode.jsonを使用します。- プロバイダーを追加します。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"uberllm": {
"npm": "@ai-sdk/openai-compatible",
"name": "UberLLM",
"options": {
"baseURL": "https://api.uberllm.dev/v1",
"apiKey": "{env:UBERLLM_API_KEY}"
},
"models": {
"moonshotai/kimi-k3": { "name": "moonshotai/kimi-k3" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" }
}
}
},
"model": "uberllm/moonshotai/kimi-k3",
"small_model": "uberllm/deepseek/deepseek-v4.1-flash"
}
- OpenCodeにキーを渡します。設定が読み取る変数を設定するか、
export UBERLLM_API_KEY=ull_your_key
またはOpenCode内で/connectを実行し、Otherまでスクロールして、プロバイダーIDとしてuberllmを入力し、キーを貼り付けます。IDはprovider内の名前と完全に一致する必要があります。/connectを使用する場合は、apiKeyの行を削除できます。
opencodeを開始し、/modelsと入力して、UberLLMモデルのいずれかを選択します。
モデルIDに2つのスラッシュがある理由
OpenCodeはモデルを<provider>/<model>と名付け、UberLLMのIDにはすでにスラッシュが含まれています (deepseek/…)。OpenCodeは最初のスラッシュのみで分割するため、uberllm/moonshotai/kimi-k3はプロバイダーuberllm、モデルmoonshotai/kimi-k3を意味します。modelsのキーは、uberllm.dev/models](uberllm.dev/models](/models))にあるUberLLMのIDとまったく同じである必要があります。
OpenCodeにコンテキストサイズを伝える
OpenCodeは、長いセッションをいつ圧縮するかを知るためにコンテキストサイズを使用します。各モデルに、そのモデルページにある数字を使用してlimitを追加します。
"moonshotai/kimi-k3": {
"name": "moonshotai/kimi-k3",
"limit": { "context": 1000000, "output": 64000 }
}
上記の数字は例です。選択したモデルの実際のものをコピーしてください。
正しいパッケージを使う
"npm": "@ai-sdk/openai-compatible"を使い続けてください。そのパッケージは、すべてのUberLLMモデルがテストされるルートである/v1/chat/completionsを呼び出します。
トラブルシューティング
ProviderModelNotFoundError: 選択したモデルがmodelsリストにないか、そこにあるキーが"model"のIDと異なります。正確なUberLLM IDで追加してください。- 401 / 回答なし: OpenCodeを起動したシェルで変数が設定されていない場合、
{env:UBERLLM_API_KEY}が空になります。エクスポートするか、/connectを使用してください。 /connectキーが使用されていません: そこに入力したプロバイダーIDはuberllmではありません。何が保存されているかを確認するには、opencode auth listを実行してください。- 404:
baseURLが/v1で終わっているか、そしてnpmパッケージがopenai互換のものであるか、確認してください。 - 402 クレジット不足: クレジットページ]でクレジットを追加してください。
さらに読む
- 参照ページ: OpenCode ドキュメント
- Kilo Code セットアップ (同じ設定形式)
- UberLLMでのClaude Code
- 最安のClaude API