OpenCode の接続
難易度 ⌨️ 中級(JSON 設定ファイル) | インターフェース形式 OpenAI 互換 | base_url
https://byesu.com/v1
OpenCode は GitHub で最もスターを集めているオープンソース AI コーディングエージェントの 1 つです。ターミナルファーストのアシスタント(デスクトップアプリと IDE 拡張もあります)で、意図的にプロバイダー非依存に設計されており、特定のモデルベンダーにロックインされることがありません。この設計思想は、OpenAI 互換と Anthropic ネイティブのエンドポイントを備えた AI API ゲートウェイである byesu と自然に噛み合います。opencode.json に byesu をカスタムプロバイダーとして一度宣言すれば、キー 1 つで Claude Opus 4.8、Claude Sonnet 5、GPT-5.6、Grok 4.5 が OpenCode のモデルピッカーに並びます。サブスクリプション不要の従量課金です。
始める前に
コンソール → トークン で、使う予定のモデルをカバーするグループのトークンを作成してください(グループの選び方 を参照)。以下の sk-xxxx はあなた自身のキーに置き換えてください。
前提条件
① OpenCode のインストール — 公式のどの方法でも構いません。
curl -fsSL https://opencode.ai/install | bashnpm install -g opencode-aibrew install anomalyco/tap/opencodeインストールしたら動作を確認します。
opencode --version② byesu のトークン — コンソールで、使いたいモデルに合ったグループで作成してください(あとで出てくる「no available channel」エラーはこれが原因です)。
ステップ 1:byesu をカスタムプロバイダーとして追加する
OpenCode は 2 つの場所から opencode.json を読み込みます。
- グローバル:
~/.config/opencode/opencode.json— すべてのプロジェクトに適用されます。プロバイダーのブロックを置くのにおすすめの場所です。 - プロジェクト:プロジェクトルートの
opencode.json— そのプロジェクトに限りグローバルの設定を上書きします。
どちらかのファイルを次の内容で作成(または追記)します。
{
"$schema": "https://opencode.ai/config.json",
"model": "byesu/claude-opus-4-8",
"small_model": "byesu/claude-sonnet-5",
"provider": {
"byesu": {
"npm": "@ai-sdk/openai-compatible",
"name": "byesu",
"options": {
"baseURL": "https://byesu.com/v1",
"apiKey": "sk-your-token"
},
"models": {
"claude-opus-4-8": { "name": "Claude Opus 4.8" },
"claude-sonnet-5": { "name": "Claude Sonnet 5" },
"gpt-5.6-terra": { "name": "GPT-5.6 Terra" },
"grok-4.5": { "name": "Grok 4.5" }
}
}
}
}各部分の意味は次のとおりです。
| フィールド | 意味 |
|---|---|
provider.byesu | ここで選んだキーがプロバイダー ID になります。以降のモデル参照はすべて byesu/<モデルID> の形式です |
npm | このプロバイダー用に OpenCode が読み込む AI SDK アダプター。byesu のエンドポイントは /v1/chat/completions を話すため、@ai-sdk/openai-compatible を指定します |
options.baseURL | https://byesu.com/v1 — 末尾は /v1 で、/chat/completions を付けないでください |
options.apiKey | あなたの sk- トークン。OpenCode が Bearer ヘッダーとして自動送信します |
models | 各キーはコンソールに記載されているとおりのモデル ID です。name はピッカーに表示されるラベルにすぎません |
model / small_model | デフォルトモデルと、軽量な補助モデル(セッションタイトルや要約に使用)。どちらも プロバイダーID/モデルID の形式です |
間違えやすい 3 つのポイント
npmは必ず@ai-sdk/openai-compatibleにしてください。@ai-sdk/openaiパッケージは OpenAI の/v1/responsesAPI を対象としており、このエンドポイントには適合しません。modelsの下のモデルキーはコンソールの名前と完全に一致させる必要があります(claude-opus-4-8であって、claude-opus-4.8ではありません)。- 設定内の他のすべての箇所では、モデル名にプロバイダープレフィックスを付けます:
byesu/claude-opus-4-8であって、素の名前は使いません。
必要に応じて、各モデルエントリは
limitオブジェクト({ "context": ..., "output": ... })も受け付けます。設定すると OpenCode のコンテキストメーターが正確になりますが、なくてもすべて動作します。
ステップ 2(任意):キーをファイルに書かない
opencode.json にキーを平文で書かずに済ませる、きれいな方法が 2 つあります。
環境変数の展開。 OpenCode は設定内の {env:VAR} プレースホルダーを展開します。
"options": {
"baseURL": "https://byesu.com/v1",
"apiKey": "{env:BYESU_API_KEY}"
}# ~/.zshrc または ~/.bashrc に追記し、ターミナルを開き直す
export BYESU_API_KEY="sk-your-token"/connect コマンド。 opencode を起動して /connect と入力し、Other を選んで、プロバイダー ID に byesu を入力してキーを貼り付けます。OpenCode が資格情報を独自のストアに保存するので、設定ファイルから apiKey を完全に削除できます。
WARNING
/connect で入力するプロバイダー ID は、opencode.json の provider の下のキー(ここでは byesu)と一致している必要があります。一致していないと、保存した資格情報は使われません。
ステップ 3:起動して確認する
任意のプロジェクトディレクトリに入って起動します。
opencode/models と入力すると、byesu の 4 つのエントリがピッカーに表示されるはずです。1 つ選んで、簡単な質問をしてみてください(例:「現在のディレクトリのファイルを一覧表示して」)。正常に答えが返ってくれば接続完了です ✅
モデルの切り替え、Plan と Build
/models でセッション中いつでもモデルを切り替えられます。Tab キーで Build エージェント(フルのツールアクセス)と Plan エージェント(ファイル編集の前に確認する分析モード)を切り替えられ、各エージェントに別々の byesu モデルを固定できます。
{
"agent": {
"plan": { "model": "byesu/claude-sonnet-5" }
}
}よくある使い分け:Build のデフォルトに Opus 4.8、Plan エージェントと small_model の役割に Sonnet 5、という組み合わせです。
うまくいかないときは?
- 401 / invalid token → キーが間違っているか、
/connectのプロバイダー ID が設定内のproviderキーと一致していません(詳細) - No available channel → トークンのグループが選択したモデルをカバーしていません。適切なグループでトークンを作成してください(グループの選び方、詳細)
- Model not found →
modelsの下のキーがコンソールのモデル名と完全に一致していないか、参照にbyesu/プレフィックスが付いていません(詳細) - 残高不足 → コンソールで USDT、Alipay、WeChat Pay を使ってチャージしてください(詳細)
- その他は よくあるエラーと解決方法 を参照してください
FAQ
OpenCode に OpenAI 互換のカスタムプロバイダーを追加するにはどうすればよいですか?
opencode.json の provider キーの下に宣言します。npm に @ai-sdk/openai-compatible、options.baseURL に https://byesu.com/v1、options.apiKey にあなたの sk- トークンを設定し、models の下にモデル ID を列挙します。以降はすべてのモデルを byesu/<モデルID> の形式で参照します。
OpenCode のカスタムプロバイダーにはどの npm パッケージを使えばよいですか?
@ai-sdk/openai-compatible です。これは /v1/chat/completions を話すプロバイダー向けのアダプターで、byesu の OpenAI 互換エンドポイントがまさにこの形式です。@ai-sdk/openai は OpenAI の /v1/responses API を対象としているため適合しません。
API キーを opencode.json に書かずに済ませることはできますか?
はい、2 つの方法があります。環境変数の展開を使う方法("apiKey": "{env:BYESU_API_KEY}" と、シェルのプロファイルでの export)と、OpenCode 内で /connect を実行して、設定ファイルのキーと一致するプロバイダー ID の下にキーを保存する方法です。
OpenCode が「no available channel」エラーを返すのはなぜですか?
選択したモデルをカバーしていないグループでトークンを作成したことが原因です。byesu コンソールで適切なグループのトークンを作成し(グループの選び方 を参照)、新しいキーに差し替えてから再試行してください。
OpenCode の Plan エージェントと Build エージェントで別々のモデルを使えますか?
使えます。セッション中に Tab キーで Build と Plan を切り替えられ、各エージェントは opencode.json で独自の model 指定を受け付けます。たとえば agent.plan.model を byesu/claude-sonnet-5 に設定し、Build は byesu/claude-opus-4-8 のままにできます。
byesu 経由の OpenCode の利用はどのように課金されますか?
トークン単位の従量課金で、公式定価に対する倍率は透明に公開されており、サブスクリプションはありません。コンソールには各モデルの横に実際の請求価格がリアルタイム表示され、USDT、Alipay、WeChat Pay でチャージできます。
