Dokumentation

Dokumentation

Qwen Code

Qwen Code speichert seine Endpunkte in einer einzigen Datei. Deklarieren Sie Kunavo einmal unter modelProviders, setzen Sie selectedType auf openai, und über die /model-Auswahl wechseln Sie mit einem Schlüssel zwischen Claude und GPT.

Qwen Code liest seine Endpunkte aus modelProviders in ~/.qwen/settings.json — ein Eintrag mit baseUrl und envKey bringt Claude und GPT in die /model-Auswahl.

In ~/.qwen/settings.json übernehmen
{
  "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"
  }
}
Die Base URL behält das Suffix /v1. Die Referenz zu den Modellanbietern erklärt es in einem Satz: Wenn ein Eintrag auf ein gehostetes OpenAI-kompatibles Gateway verweist, muss baseUrl auf den „/v1-Stamm“ der API zeigen und darf nicht den vollständigen /v1/chat/completions-Pfad enthalten, denn „das SDK fügt den Anfragepfad selbst an“. Jedes OPENAI_BASE_URL-Beispiel auf der Authentifizierungsseite endet auf dieselbe Weise. Enthält die Base URL die Route bereits, erhalten Sie einen 404 statt eines Authentifizierungsfehlers.
Diese Konfiguration wurde am unten genannten Datum aus Qwen Codes eigener Dokumentation übernommen. Kunavo hat Qwen Code nicht mit seinem Endpunkt ausgeführt – weder eine Sitzung noch einen gestreamten Durchlauf oder einen Tool-Roundtrip; dasselbe gilt für jeden Client dieser Familie. Eine veröffentlichte Einrichtungsseite ist kein Kompatibilitätstest. Halten Sie die Route, die bei Ihnen funktioniert, verfügbar, während Sie diese Einrichtung ausprobieren.
Kunavo bietet keine Embedding-, Text-to-Speech- oder Speech-to-Text-Modelle an. Eine Kunavo-Route unterstützt daher ausschließlich Chat. Die Live-Voice-Routen von Qwen Code sind davon unabhängig: Laut Dokumentation muss der Host einer realtimeOnly-Route ein DashScope-Endpunkt sein. Deshalb bleibt diese Funktion bei ihrem eigenen Schlüssel, unabhängig davon, wohin Sie das Chat-Modell leiten.
Der Katalog von Kunavo enthält kein Qwen-Textmodell. Das ist keine günstigere Möglichkeit, Qwen zu nutzen, sondern eine Möglichkeit, Claude und GPT in Qwen Code über ein einziges Prepaid-Guthaben auszuführen. Wenn Sie Qwen-Inferenz nutzen möchten, ist Alibaba Cloud Model Studio die Quelle des Anbieters selbst, und in der eigenen Dokumentation von Qwen Code werden OpenRouter und Requesty unter den Drittanbietern in der Liste /auth genannt.
Noch kein Schlüssel? Erstelle ein Kunavo-Konto, erstelle einen Schlüssel (er beginnt mit sk-kn-) und füge ab $10 Guthaben hinzu – Aufrufe werden aus diesem Guthaben bezahlt, fehlgeschlagene Aufrufe werden nicht berechnet. Das Dashboard öffnet anschließend die Qwen Code-Einrichtung.

Schritt für Schritt

  1. Erstellen Sie unter /app/keys einen Schlüssel und kopieren Sie ihn — er wird nur einmal angezeigt.
  2. Öffnen Sie ~/.qwen/settings.json (legen Sie die Datei an, falls sie nicht vorhanden ist) und übernehmen Sie die vier obigen Blöcke. Die Dokumentation empfiehlt, modelProviders in der Datei für den Benutzerbereich zu deklarieren, „um Merge-Konflikte zwischen Projekt- und Benutzereinstellungen zu vermeiden“.
  3. Hinterlegen Sie den Schlüssel nach Möglichkeit an einer sichereren Stelle als env. Qwen Code liest ihn aus process.env[envKey], und die Dokumentation ordnet die Quellen absteigend nach Priorität: zuerst eine Shell-export, dann eine .env-Datei und schließlich der env-Block in settings.json – den sie als Speicherung im Klartext kennzeichnet. Der obige env-Block ist die kleinste funktionierende Konfiguration, aber nicht die beste dauerhafte Lösung.
  4. Führen Sie qwen aus. Wenn security.auth.selectedType auf openai gesetzt ist und model.name mit einem von Ihnen deklarierten id übereinstimmt, ist kein interaktiver Schritt /auth erforderlich – genau das sagt die Dokumentation ausdrücklich nach dem Beispiel mit einer Datei.
  5. Geben Sie ihm eine Aufgabe, bei der eine Datei gelesen und bearbeitet werden muss, statt einer Begrüßung. Qwen Code ist ein Agent: Tool-Aufrufe und Streaming sollten beim ersten Lauf geprüft werden, denn sie würden bei einem Endpunkt, der nur teilweise kompatibel ist, als Erstes fehlschlagen.
  6. Fügen Sie weitere Einträge unter modelProviders.openai hinzu, um Modelle zur Laufzeit mit /model zu wechseln. Änderungen daran werden in einer laufenden Sitzung sofort neu geladen; providerProtocol wird beim Start einmal eingelesen und erfordert einen Neustart.

Abgeglichen mit Authentifizierungsseite von Qwen Code, Option 4: API-Schlüssel (flexibel) am 21. September 2026. Einstellungen von Drittanbietern können sich ändern; wenn ein Feldname hier nicht mehr mit deiner Ansicht übereinstimmt, ist diese Seite maßgeblich, nicht diese hier.

Dies ist die Kurzfassung. Die vollständige Anleitung – Modellauswahl, Kosten einer tatsächlichen Sitzung und Fehlerszenarien – findest du in die Preisübersicht von Qwen Code.

Vor dem Debugging des Clients prüfen

Eine Anfrage klärt, ob der Fehler am Endpunkt, am Schlüssel oder an der Konfigurationsdatei liegt. Wenn diese Anfrage JSON zurückgibt, funktionieren dieselbe Basis-URL und derselbe Schlüssel in 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-..."

Welche Modell-ID in das Feld gehört

Jedes Textmodell ist über eine Modell-ID erreichbar – die aktuelle Liste findest du unter GET /v1/models, den Katalog mit Preisen auf der Modellseite. Die Tarife sind USD pro 1 Mio. Token, Eingabe / Ausgabe.

Modell-IDKunavo: Ein- und AusgabeWo es in Qwen Code hineinpasst
claude-sonnet-5$1.40 / $7.00das standardmäßig verwendete Modell – legen Sie es als model.name fest
claude-opus-5$3.50 / $17.50ein Plan, bei dem ein Fehler teuer wäre
claude-haiku-4-5$0.70 / $3.50günstige Durchläufe: Triage, Zusammenfassungen und der Ablauf, der den ganzen Tag läuft
gpt-5-6-sol$2.00 / $12.00eine zweite Meinung aus einer anderen Modellfamilie, mit demselben Schlüssel und derselben baseUrl
gpt-5-6-terra$0.70 / $4.20Lesen langer Kontexte, weiterhin über den openai-Protokollschlüssel
Die Abrechnung erfolgt pro Token aus einem vorausbezahlten Guthaben ohne Monatsgebühr – siehe Abrechnung. Bei wiederholtem Kontext – dem Großteil dessen, was ein Editor oder Chat-Client sendet – verändert Prompt-Caching die Rechnung stärker als die Modellwahl.

Drei Punkte, die in der Dokumentation geklärt werden und bei denen viele falsch liegen

Diese Angaben stammen von der oben verlinkten Authentifizierungsseite und der Referenz zu den Modellanbietern. Jede davon kostet echte Zeit bei der Fehlersuche, wenn man sie nur annimmt, statt nachzulesen.

  1. Ein Eintrag unter modelProviders hat Vorrang vor den CLI-Flags. Die dokumentierte Reihenfolge, absteigend nach Priorität: zuerst die in der laufenden Sitzung über /auth vorgenommenen Überschreibungen, dann die envKey des ausgewählten Modellanbieters, danach CLI-Argumente wie --openai-api-key, anschließend Umgebungsvariablen und zuletzt security.auth.apiKey in den Einstellungen. Die meisten erwarten, dass das Flag Vorrang hat. Das ist nicht der Fall – deshalb kann es so aussehen, als würde --openai-base-url ignoriert.
  2. security.auth.apiKey und security.auth.baseUrl sind veraltet. Die Referenz bestätigt das und empfiehlt die Migration zu modelProviders. Wenn ein älteres Tutorial Sie auffordert, diese beiden Schlüssel zu bearbeiten, führt es Sie über einen Weg, der ausläuft.
  3. wireApi legt das Anforderungsformat fest; eine Abweichung wird nicht erkannt. Ohne diese Angabe wird Chat Completions verwendet, wie im obigen Block. Für "wireApi": "responses" ist ein tatsächlich Responses-kompatibler Endpunkt erforderlich, und laut Dokumentation gibt es weder eine Erkennung des Endpunkts noch einen automatischen Fallback, wenn eine Anfrage fehlschlägt. Kunavo unterstützt sowohl /v1/responses als auch /v1/chat/completions, aber keine der beiden Kombinationen wurde auf dieser Seite getestet. Beginnen Sie daher mit der Standardeinstellung.

Wenn Sie wegen des kostenlosen Tarifs hier sind

Ein Großteil der Informationen über Qwen Code beschreibt weiterhin eine Qwen-OAuth-Anmeldung mit einem kostenlosen Tageskontingent. Diese Option gibt es nicht mehr: Laut Dokumentation wurde der kostenlose Tarif am 15. April 2026 eingestellt, und Qwen OAuth ist im Dialogfeld /auth nicht mehr als Option auswählbar. Aktuell werden dort drei Optionen aufgeführt: Alibaba ModelStudio – mit Coding Plan, Token Plan und Standard API Key im Untermenü –, Drittanbieter und Benutzerdefinierter Anbieter, beschrieben als Verbindung mit „einem lokalen Server, Proxy oder nicht unterstützten Anbieter“. Kunavo ist die dritte dieser Optionen. Beachten Sie außerdem, dass die Elemente im ModelStudio-Untermenü keine drei Zahlungsmöglichkeiten für dieselbe Rechnung sind: Jedes hat seinen eigenen Host und Schlüssel, und ein Coding-Plan-Schlüssel funktioniert nicht mit einem Token-Plan-Host.

Häufig gestellte Fragen

Wie richte ich Qwen Code auf einen benutzerdefinierten API-Endpunkt aus?

Deklarieren Sie den Endpunkt unter modelProviders in ~/.qwen/settings.json. Verwenden Sie den Schlüssel "openai" für jeden OpenAI-kompatiblen Host, geben Sie dem Modelleinstieg eine id, eine baseUrl und einen envKey, der die Umgebungsvariable mit Ihrem API-Schlüssel benennt, und setzen Sie dann security.auth.selectedType auf "openai" sowie model.name auf diese id. Führen Sie qwen aus; es startet über diese Route, ohne dass ein interaktiver /auth-Schritt nötig ist. Alternativ können Sie die Umgebungsvariablen OPENAI_API_KEY, OPENAI_BASE_URL und OPENAI_MODEL verwenden. Die Dokumentation empfiehlt jedoch die Einstellungsdatei, weil sie Shells überdauert und mehrere Endpunkte gleichzeitig unterstützt.

Muss Qwen Code bei baseUrl am Ende /v1 enthalten?

Ja, bei einem OpenAI-kompatiblen Endpunkt. In der Referenz zu den Modellanbietern von Qwen Code wird empfohlen, baseUrl auf die /v1-Wurzel der API zu setzen, zum Beispiel https://gateway.example.com/v1, und nicht auf den vollständigen Pfad /v1/chat/completions, da das SDK den Anfragepfad selbst anhängt. Für Kunavo lautet der Wert https://api.kunavo.com/v1. Wenn Sie den Pfad am Ende stehen lassen, erhalten Sie einen 404- statt eines Authentifizierungsfehlers – so äußert sich dieses Problem üblicherweise.

Ist der kostenlose Qwen-Code-Tarif noch verfügbar?

Nein. In der eigenen Dokumentation von Qwen Code ist vermerkt, dass der kostenlose Qwen-OAuth-Tarif am 15. April 2026 eingestellt wurde. Qwen OAuth ist außerdem im Dialogfeld /auth nicht mehr als Option auswählbar. In der Dokumentation steht auch, dass Qwen-OAuth-Modelle fest codiert sind und nicht über modelProviders überschrieben werden können. Daher lässt sich der alte Weg nicht einfach auf einen anderen Endpunkt umleiten. Verfügbar sind weiterhin Alibaba ModelStudio, ein integrierter Drittanbieter oder ein selbst konfigurierter benutzerdefinierter Endpunkt.

Kann Qwen Code anstelle von Qwen auch Claude- oder GPT-Modelle ausführen?

Ja. In der Protokolltabelle von Qwen Code ist der Anbieterschlüssel openai für jeden OpenAI-kompatiblen Endpunkt vorgesehen. Die Modell-ID in einem modelProviders-Eintrag wird direkt an die konfigurierte baseUrl weitergegeben und daher an diesem Endpunkt aufgelöst, nicht im Client. Eine Claude- oder GPT-ID funktioniert also, sofern der Endpunkt sie bereitstellt. Kunavo stellt Claude- und GPT-IDs über seine OpenAI-kompatible Schnittstelle bereit. Diese Konfiguration wurde anhand der Dokumentation des Anbieters veröffentlicht, nicht aufgrund eines Testlaufs.

Warum ignoriert Qwen Code --openai-base-url?

Weil ein modelProviders-Eintrag Vorrang hat. Laut dokumentierter Rangfolge der Anmeldedaten stehen zuerst Überschreibungen, die über /auth in der laufenden Sitzung eingegeben wurden, an zweiter Stelle baseUrl und envKey des ausgewählten Modellanbieters und an dritter Stelle CLI-Argumente; danach folgen Umgebungsvariablen und Einstellungen. Wenn ein Anbietereintrag ausgewählt ist, hat dessen baseUrl Vorrang vor dem Flag. Bearbeiten Sie entweder diesen Eintrag – Änderungen an modelProviders werden in einer laufenden Sitzung sofort neu geladen – oder entfernen Sie ihn, wenn das Flag greifen soll.