ドキュメント
Qwen Code
Qwen Codeではエンドポイントを1つのファイルで管理します。modelProvidersの下にKunavoを一度登録し、selectedTypeをopenaiに設定すると、/modelピッカーでClaudeとGPTを1つのキーから切り替えられます。
Qwen Codeは~/.qwen/settings.jsonのmodelProvidersからエンドポイントを読み取ります — baseUrlとenvKeyを含む1つのエントリで、/modelピッカーにClaudeとGPTを追加できます。
{
"modelProviders": {
"openai": [
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5 (Kunavo)",
"baseUrl": "https://api.kunavo.com/v1",
"description": "Kunavo, OpenAI-compatible",
"envKey": "KUNAVO_API_KEY"
}
]
},
"env": {
"KUNAVO_API_KEY": "sk-kn-..."
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "claude-sonnet-5"
}
}/v1が必要です。モデルプロバイダーのリファレンスでは、ホスト型のOpenAI互換ゲートウェイにエントリーを向ける場合、baseUrlを完全な/v1/chat/completionsパスではなくAPIの「/v1ルート」に設定するよう、1文で明示されています。「リクエストパスはSDK自体が追加します」。認証ページにあるOPENAI_BASE_URLの例はすべて同じ形式で終わっています。base URLにリクエストのルートがすでに含まれていると、認証エラーではなく404が発生します。realtimeOnlyルートのホストはDashScopeのエンドポイントである必要があります。その機能を使う場合は、チャットモデルの接続先にかかわらず、専用のキーを使用します。/authの一覧にあるサードパーティプロバイダーとしてOpenRouterとRequestyが挙げられています。sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、Qwen Code設定が表示されます。手順
/app/keysでキーを作成してコピーします。キーは一度だけ表示されます。~/.qwen/settings.jsonを開き(存在しない場合は作成し)、上記の4つのブロックを統合します。ドキュメントでは、プロジェクト設定とユーザー設定の間でマージ競合を避けるため、ユーザースコープのファイルでmodelProvidersを宣言するよう推奨しています。- 可能であれば、キーは
envより安全な場所に保管してください。Qwen Codeはprocess.env[envKey]からキーを読み取り、ドキュメントでは認証情報の取得元を優先度の高い順に、シェルのexport、.envファイル、settings.json内のenvブロックとしています。最後の方法については、平文での保存と明記されています。上記のenvブロックは最小限の動作設定であり、保管方法として最適な設定ではありません。 qwenを実行します。security.auth.selectedTypeがopenaiに設定され、model.nameが登録したidと一致していれば、対話形式の/auth手順は不要です。1ファイルの例に続けて、ドキュメントにもそのように明記されています。- 挨拶ではなく、ファイルを読み取って編集するタスクを与えてください。Qwen Codeはエージェントです。初回実行ではツール呼び出しとストリーミングを試すのが適切で、部分的にしか対応していないエンドポイントであれば、最初に問題が起きるのもこの部分です。
modelProviders.openaiの下にエントリーを追加すると、実行中に/modelでモデルを切り替えられます。これらの変更は実行中のセッションにホットリロードされます。providerProtocolは起動時に一度だけ読み込まれるため、変更を反映するには再起動が必要です。
Qwen Codeの認証ページ、オプション4:API Key(柔軟な設定)で2026年9月21日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。
クライアントをデバッグする前に確認すること
1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベースURLとキーがQwen Codeで機能します。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."フィールドに入力するモデルID
すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。
| モデル ID | Kunavo 入力 / 出力 | Qwen Codeでの位置付け |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | デフォルトの作業モデル — model. |
claude-opus-5 | $3.50 / $17.50 | 間違えるとコストがかさむ計画 |
claude-haiku-4-5 | $0.70 / $3.50 | 低コストのターン:トリアージ、要約、終日実行するループ |
gpt-5-6-sol | $2.00 / $12.00 | 同じキーと同じbaseUrlを使い、別のファミリーからセカンドオピニオンを得る |
gpt-5-6-terra | $0.70 / $4.20 | openai protocol keyを使った長文コンテキストの読み取り |
ドキュメントを読めばわかる、誤解されがちな3つの点
上記にリンクした認証ページとモデルプロバイダーのリファレンスに記載されている内容です。読まずに推測すると、どれもデバッグに実際の時間を費やすことになります。
modelProvidersのエントリーはCLIフラグより優先されます。ドキュメントに記載された優先順位を高い順に示すと、実行中のセッションで/authを通じて行った上書き、選択したモデルプロバイダーのenvKey、--openai-api-keyなどのCLI引数、環境変数、設定内のsecurity.auth.apiKeyです。多くの人はフラグが優先されると思いますが、実際はそうではありません。そのため、--openai-base-urlが無視されたように見えることがあります。security.auth.apiKeyとsecurity.auth.baseUrlは非推奨です。リファレンスにはその旨が記載され、modelProvidersへの移行が推奨されています。古いチュートリアルに従ってこの2つのキーを編集すると、廃止に向かっている経路を使うことになります。wireApiがリクエスト形式を選択し、不一致は検出されません。省略すると、上記の設定例で使われているChat Completionsになります。"wireApi": "responses"を設定するには、エンドポイントが実際にResponsesに対応している必要があります。ドキュメントには、リクエスト失敗時にエンドポイントの検出も自動フォールバックも行われないと明記されています。Kunavoは/v1/responsesと/v1/chat/completionsの両方に応答しますが、このページではどちらの組み合わせもテストしていないため、まずはデフォルト設定を使ってください。
無料枠について調べている方へ
現在も広く見られるQwen Codeの情報の多くは、1日の無料利用枠があるQwen OAuthログインについて説明しています。このオプションはすでに終了しています。ドキュメントによると、無料枠は2026年4月15日に終了しており、/authダイアログでQwen OAuthを選択することはできません。現在、同ダイアログに記載されているのは、Alibaba ModelStudio(サブメニューにCoding Plan、Token Plan、Standard API Keyがあります)、Third-party Providers、そして「ローカルサーバー、プロキシ、または未対応のプロバイダー」に接続するものとして説明されているCustom Providerの3つです。Kunavoはこの3つ目に該当します。また、ModelStudioのサブメニュー項目は、1つの請求に対する3種類の支払い方法ではありません。それぞれ異なるホストとキーを使うため、Token PlanのホストにCoding Planのキーを指定しても動作しません。
よくある質問
Qwen CodeをカスタムAPIエンドポイントに接続するにはどうすればよいですか?
エンドポイントは、~/.qwen/settings.jsonのmodelProvidersの下に定義します。OpenAI互換のホストには"openai"キーを使い、モデルエントリーにid、baseUrl、APIキーを保持する環境変数名を指定するenvKeyを設定します。次に、security.auth.selectedTypeを"openai"に、model.nameをそのidに設定します。qwenを実行すると、対話形式の/auth手順なしでその接続先から起動します。環境変数を使う場合はOPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODELを設定しますが、シェルをまたいで設定が保持され、複数のエンドポイントを同時に登録できるため、ドキュメントでは設定ファイルの使用が推奨されています。
Qwen CodeのbaseUrlの末尾に/v1を付ける必要がありますか?
OpenAI互換のエンドポイントでは必要です。Qwen Codeのモデルプロバイダーリファレンスでは、baseUrlにはhttps://gateway.example.com/v1のようにAPIの/v1ルートを設定し、完全な/v1/chat/completionsパスは指定しないよう案内されています。SDKがリクエストパスを付加するためです。Kunavoの場合、値はhttps://api.kunavo.com/v1です。末尾にリクエストのルートを残すと、認証エラーではなく404になります。この問題は通常、このような形で現れます。
Qwen Codeの無料枠は現在も利用できますか?
いいえ。Qwen Codeの公式ドキュメントでは、Qwen OAuthの無料枠は2026年4月15日に終了したと記載されており、/authダイアログでQwen OAuthを選択することもできません。また、ドキュメントによると、Qwen OAuthのモデルはハードコードされており、modelProvidersで上書きできないため、以前の接続先を別の場所に単純に切り替えることはできません。現在利用できるのは、Alibaba ModelStudio、組み込みのサードパーティープロバイダー、または自分で設定するカスタムエンドポイントです。
Qwen CodeでQwen以外のClaudeやGPTモデルを実行できますか?
はい。Qwen Codeのプロトコル表では、openaiプロバイダーキーは任意のOpenAI互換エンドポイントを受け付けます。また、modelProvidersエントリーのモデルidは、設定したbaseUrlにそのまま渡されるため、クライアント内ではなく、そのエンドポイントで解決されます。したがって、エンドポイントが提供していればClaudeやGPTのidも使えます。KunavoはOpenAI互換のインターフェースでClaudeとGPTのidを提供しています。この設定はテスト実行ではなく、ベンダーのドキュメントに基づいて公開されています。
Qwen Codeが--openai-base-urlを無視するのはなぜですか?
modelProvidersのエントリーが優先されるためです。ドキュメントに記載された認証情報の優先順位では、実行中のセッションで/authを通じて入力した上書きが最優先で、選択したモデルプロバイダーのbaseUrlとenvKeyがその次、CLI引数は環境変数と設定より上の3番目です。プロバイダーエントリーを選択している場合、そのbaseUrlがフラグより優先されます。そのエントリーを編集してください(modelProvidersの変更は実行中のセッションにホットリロードされます)。フラグを反映させたい場合は、エントリーを削除してください。