オープンコード
opencode は、環境変数ではなくマージされた JSON 構成レイヤーからプロバイダーを読み取るため、挿入する ANTHROPIC_BASE_URL スタイルのスロットはありません。 ocx opencode はそのギャップを橋渡しします。プロキシが実行されていることを確認し、表示されているカタログからプロバイダー ブロックを構築し、OpenCode のインライン ランタイム層 (OPENCODE_CONFIG_CONTENT) を通じてそれを挿入します。
クイックスタート
Section titled “クイックスタート”ocx opencodeこれにより、プロキシが確実に実行され、そのプロセスに挿入された生成された provider.opencodex ブロックのみを使用してオープンコードが起動されます。追加の引数は ocx opencode run "hello" を通過します。
ルーティングされたモデルは、ピッカーの opencodex プロバイダーの下に表示されます。
opencodex/kiro/glm-5opencodex/gpt-5.6-sol # native slugs stay unprefixedあなた自身の設定は決して変更されません
Section titled “あなた自身の設定は決して変更されません”ランチャーは、~/.config/opencode/opencode.json、プロジェクト opencode.json / opencode.jsonc、またはその他のディスク上の構成レイヤーをコピーしたり書き換えたりしません。既存のプロバイダー、エージェント、キーバインド、MCP エントリ、および相対的な {file:…} 参照は元のファイルから解決され続けますが、provider.opencodex オーバーライドを検出するためにグローバルまたはプロジェクト設定を読み取ることがあります。
この起動の場合のみ、opencodex は、OpenCode のインライン ランタイム層を介して、生成された provider.opencodex ブロックを追加します。そのレイヤーは、グローバル/カスタム/プロジェクト設定の後にマージされ、子プロセスの競合するキーのみをオーバーライドします。
| レイヤー | ocx opencode での動作 |
|---|---|
| グローバル / カスタム / プロジェクト構成 | 書き込んだとおりにディスク上に残ります |
インライン ランタイム (OPENCODE_CONFIG_CONTENT) |
生成された provider.opencodex ブロックのみを受信します。 |
相対 {file:…} パス |
最初に定義した設定ファイルに対して引き続き解決します。 |
グローバルまたはプロジェクト設定でも provider.opencodex が定義されている場合、ランチャーは情報メモを出力します。ocx opencode のランタイム層がその起動に対してそれをオーバーライドします。
ブロックを独自の設定に入れる
Section titled “ブロックを独自の設定に入れる”ocx opencode は 1 回の起動に対してのみプロバイダー ブロックを挿入します。これは、プレーン opencode はまだプロキシについて何も知らないことを意味します。プレーンな opencode から、またはランチャーを経由しないエディター拡張機能からルーティングされたモデルを利用できるようにしたい場合、ocx export は同じプロバイダー ブロックを出力して、独自の設定にマージします。
ocx export --client opencodeプロキシが実行されている必要があります。このコマンドは、構成、正規の宛先 (~/.config/opencode/opencode.json、またはそれが設定されている場合は XDG_CONFIG_HOME の下)、マージ警告、および env エクスポート行を出力します。そのファイルには決して触れません。上記のセクションはそのままであり、ブロックを設定に移動するのは明示的な行為です。
ランチャーのランタイム ブロックとは異なり、マージされたブロックは静的なスナップショットであり、カタログに従いません。プロバイダーを追加するか、モデルの可視性を変更した後、ocx export を再実行します。
マージしたら、オープンコードを起動する前にアドミッション キーをエクスポートします。プロキシがループバック上にある場合を除き、何も必要ありません。
export OPENCODEX_OPENCODE_API_KEY=<your key>アドミッションキーがディスクに書き込まれません
Section titled “アドミッションキーがディスクに書き込まれません”プロキシが API キーを必要とする場合、インライン ランタイム設定にはシークレットではなくオープンコードの {env:…} 参照が含まれます。ループバック バインドでは、その参照を apiKey として使用します。非ループバック バインドは x-opencodex-api-key を介してのみ送信するため、プロキシ アドミッションはアップストリームの Authorization ヘッダーから分離されたままになります。
ループバックの例:
"options": { "baseURL": "http://127.0.0.1:10100/v1", "apiKey": "{env:OPENCODEX_OPENCODE_API_KEY}"}非ループバックの例:
"options": { "baseURL": "http://192.168.1.10:10100/v1", "headers": { "x-opencodex-api-key": "{env:OPENCODEX_OPENCODE_API_KEY}" }}実際の値は、子プロセス環境を介してのみ渡されます。 OPENCODEX_API_AUTH_TOKEN が優先され、次に強化されたサービス トークン ファイル、次に設定された API キーが優先されます。これは、非ループバック バインドに必要なものです。
ループバック バインド (127.0.0.1、デフォルト) は何も認証しないため、{env:…} 参照は不活性であり、変数を設定しないままにすることができます。 hostname がループバックを超えて設定されている場合にのみ問題になります。 リモートアクセスを参照してください。このアドミッション キーは opencodex 独自のものであり、プロバイダー で構成されたアップストリーム プロバイダー キーとは無関係です。
元に戻す必要はありません。生成された設定ファイルは ~/.opencodex の下に書き込まれません。プレーンな opencode を実行すると、以前と同じように独自の設定が読み取られます。
モデルの制限
Section titled “モデルの制限”limit.context は、カタログが権限のあるコンテキスト ウィンドウを報告する場合にのみ書き込まれます。そうでない場合、limit ブロック全体が省略され、opencode は独自のデフォルトを保持します。
opencode のスキーマは、output のない context を含む limit ブロックを拒否し、カタログにはモデルごとに権限のある出力フィールドがないため、32000 の output バジェットが一緒に出力され、コンテキスト ウィンドウに固定されるため、コンテキストの小さいモデルには output > context が与えられません。この数値はスキーマを満たすために存在します。これは、特定のモデルの真の最大値について主張するものではありません。
opencodex プロバイダー ブロックは起動のたびに再生成されるため、内部で行われたモデルごとの調整は存続しません。代わりに、独自のプロバイダー キーの下にカスタム エントリを保持します。
opencode が PATH にインストールされている必要があります。
npm install -g opencode-ai
