Documentazione

Documentazione

Qwen Code

Qwen Code gestisce gli endpoint in un unico file. Dichiara Kunavo una volta sotto modelProviders, imposta selectedType su openai e usa il selettore /model per passare da Claude a GPT con una sola chiave.

Qwen Code legge gli endpoint da modelProviders in ~/.qwen/settings.json — una voce con baseUrl e envKey mette Claude e GPT nel suo selettore /model.

Unisci in ~/.qwen/settings.json
{
  "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"
  }
}
La base URL mantiene il suffisso /v1. La documentazione sui provider di modelli chiarisce il punto in una frase: per indirizzare una voce verso un gateway ospitato compatibile con OpenAI, imposta baseUrl sulla «radice /v1» dell'API, anziché sul percorso completo /v1/chat/completions, perché «l'SDK aggiunge autonomamente il percorso della richiesta». Tutti gli esempi OPENAI_BASE_URL nella pagina di autenticazione terminano allo stesso modo. Se la base URL include già il percorso, si ottiene un 404, non un errore di autenticazione.
Questa configurazione è stata ricavata dalla documentazione ufficiale di Qwen Code nella data indicata qui sotto. Kunavo non ha eseguito Qwen Code sul proprio endpoint: né una sessione, né un turno in streaming, né un ciclo completo di chiamata agli strumenti; lo stesso vale per tutti i client di questa famiglia. Una pagina di configurazione pubblicata non è un test di compatibilità. Tieni a disposizione la route che già funziona mentre provi questa.
Kunavo non offre modelli per embedding, sintesi vocale o riconoscimento vocale, quindi una route Kunavo risponde solo alle richieste di chat. Le route Live Voice di Qwen Code sono un caso a parte: la documentazione richiede che l'host di una route realtimeOnly sia un endpoint DashScope, quindi quella funzionalità continua a usare una chiave dedicata, indipendentemente dall'endpoint a cui indirizzi il modello di chat.
Il catalogo di Kunavo non contiene modelli di testo Qwen. Non è un modo più economico per usare Qwen: è un modo per usare Claude e GPT all’interno di Qwen Code con un unico saldo prepagato. Se vuoi eseguire inferenze con Qwen, Alibaba Cloud Model Studio è la fonte ufficiale e la documentazione di Qwen Code cita OpenRouter e Requesty tra i provider di terze parti nell’elenco /auth.
Non hai ancora una chiave? Crea un account Kunavo, genera una chiave (inizia con sk-kn-) e aggiungi credito da $10: le chiamate vengono pagate con quel saldo e le chiamate non riuscite non vengono addebitate. La dashboard si apre quindi sulla configurazione Qwen Code.

Passo dopo passo

  1. Crea una chiave su /app/keys e copiala: viene mostrata una sola volta.
  2. Apri ~/.qwen/settings.json (crealo se non esiste) e aggiungi i quattro blocchi precedenti. La documentazione consiglia di dichiarare modelProviders nel file a livello utente «per evitare conflitti di unione tra le impostazioni del progetto e quelle utente».
  3. Se possibile, conserva la chiave in un posto più sicuro di env. Qwen Code la legge da process.env[envKey] e la documentazione ordina le fonti dalla più prioritaria alla meno prioritaria: una export della shell, poi un file .env, infine il blocco env in settings.json — che viene indicato come archiviazione in testo semplice. Il blocco env qui sopra è la configurazione minima funzionante, non la soluzione migliore da mantenere.
  4. Esegui qwen. Con security.auth.selectedType impostato su openai e model.name corrispondente a un id che hai dichiarato, non serve alcun passaggio interattivo di /auth: la documentazione lo afferma chiaramente dopo l’esempio con un solo file.
  5. Assegna un’attività che legga e modifichi un file, non un semplice saluto. Qwen Code è un agente: la prima esecuzione dovrebbe verificare le chiamate agli strumenti e lo streaming, che sarebbero i primi a non funzionare con un endpoint solo parzialmente compatibile.
  6. Aggiungi altre voci sotto modelProviders.openai per cambiare modello durante l’esecuzione con /model. Le modifiche vengono caricate automaticamente nella sessione in corso; providerProtocol viene letto una sola volta all’avvio e richiede un riavvio.

Verificato rispetto a Pagina di autenticazione di Qwen Code, opzione 4: API Key (flessibile) il 21 settembre 2026. Le impostazioni di terze parti cambiano; se il nome di un campo qui non corrisponde più a quello visualizzato, fa fede quella pagina, non questa.

Questa è la versione breve. La guida completa, con scelta del modello, costo di una sessione reale e modalità di errore, è in la guida ai prezzi di Qwen Code.

Verifica prima di eseguire il debug del client

Una sola richiesta stabilisce se il problema riguarda l'endpoint, la chiave o il file di configurazione. Se restituisce JSON, lo stesso base URL e la stessa chiave funzionano 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-..."

Quale model id inserire nel campo

Ogni modello di testo è raggiungibile come model id: l'elenco aggiornato è GET /v1/models e il catalogo con i prezzi è nella pagina dei modelli. Le tariffe sono in USD per 1M di token, input / output.

ID del modelloKunavo ingresso / uscitaDove si inserisce in Qwen Code
claude-sonnet-5$1.40 / $7.00il modello di lavoro predefinito: impostalo come model.name
claude-opus-5$3.50 / $17.50un piano che sarebbe costoso sbagliare
claude-haiku-4-5$0.70 / $3.50turni economici: smistamento, riepiloghi e il ciclo che gira tutto il giorno
gpt-5-6-sol$2.00 / $12.00un secondo parere da un'altra famiglia, con la stessa chiave e lo stesso baseUrl
gpt-5-6-terra$0.70 / $4.20lettura con contesto lungo, sempre tramite la chiave del protocollo openai
La fatturazione è per token, usando un saldo prepagato senza canone mensile: vedi billing. In presenza di contesto ripetuto, che costituisce la maggior parte di ciò che invia un editor o un client di chat, prompt caching incide sulla spesa più della scelta del modello.

Tre cose chiarite dalla documentazione che molti presumono erroneamente

Queste informazioni provengono dalla pagina di autenticazione e dal riferimento ai provider di modelli citati sopra. Darle per scontate invece di leggerle fa perdere tempo prezioso nel debugging.

  1. Una voce modelProviders ha la precedenza sui flag della CLI. L’ordine documentato, dal più prioritario, è: le modifiche apportate tramite /auth nella sessione in corso, poi envKey del provider di modelli selezionato, quindi gli argomenti della CLI come --openai-api-key, poi le variabili d’ambiente e infine security.auth.apiKey nelle impostazioni. Molti si aspettano che prevalga il flag. Non è così: per questo --openai-base-url può sembrare ignorato.
  2. security.auth.apiKey e security.auth.baseUrl sono deprecati. Il riferimento lo specifica e consiglia di migrare a modelProviders. Se una vecchia guida ti fa modificare queste due chiavi, ti sta indirizzando verso un percorso destinato a essere dismesso.
  3. wireApi determina il formato della richiesta e non viene rilevata alcuna incompatibilità. Se lo ometti, viene usato Chat Completions, come nel blocco qui sopra. Impostare "wireApi": "responses" richiede un endpoint effettivamente compatibile con Responses; la documentazione dichiara chiaramente che, in caso di errore della richiesta, non viene rilevato l’endpoint né viene eseguito alcun fallback automatico. Kunavo risponde sia a /v1/responses sia a /v1/chat/completions, ma questa pagina non ha testato nessuna delle due combinazioni, quindi inizia con l’impostazione predefinita.

Se sei arrivato qui cercando il piano gratuito

Gran parte delle informazioni ancora disponibili su Qwen Code descrive un accesso OAuth a Qwen con una quota giornaliera gratuita. Questa opzione non è più disponibile: la documentazione registra l’interruzione del piano gratuito il 15 aprile 2026 e afferma che Qwen OAuth non è più selezionabile nella finestra /auth. Ora sono elencate tre opzioni: Alibaba ModelStudio, con Coding Plan, Token Plan e Standard API Key nel sottomenu; Third-party Providers; e Custom Provider, descritto come un modo per connettere «un server locale, un proxy o un provider non supportato». Kunavo è il terzo. Nota inoltre che le voci del sottomenu ModelStudio non sono tre modi per pagare un’unica fattura: ciascuna ha il proprio host e la propria chiave, e una chiave Coding Plan non funziona con un host Token Plan.

Domande frequenti

Come si configura un endpoint API personalizzato in Qwen Code?

Dichiara l’endpoint in ~/.qwen/settings.json sotto modelProviders. Usa la chiave "openai" per qualsiasi host compatibile con OpenAI, assegna alla voce del modello un id, un baseUrl e un envKey che indichi la variabile d’ambiente contenente la chiave API, quindi imposta security.auth.selectedType su "openai" e model.name su quell’id. Esegui qwen e verrà avviato usando quel percorso senza il passaggio interattivo /auth. Il percorso equivalente tramite variabili d’ambiente usa OPENAI_API_KEY, OPENAI_BASE_URL e OPENAI_MODEL, ma la documentazione consiglia il file delle impostazioni perché persiste tra le shell e supporta più endpoint contemporaneamente.

Il baseUrl di Qwen Code deve terminare con /v1?

Sì, per un endpoint compatibile con OpenAI. Il riferimento ai provider di modelli di Qwen Code indica di impostare baseUrl sulla radice API /v1, per esempio https://gateway.example.com/v1, invece di usare il percorso completo /v1/chat/completions, perché l’SDK aggiunge autonomamente il percorso della richiesta. Per Kunavo, il valore è https://api.kunavo.com/v1. Se lasci il percorso completo, otterrai un 404 anziché un errore di autenticazione: è il sintomo più comune in questo caso.

Il piano gratuito di Qwen Code è ancora disponibile?

No. La documentazione di Qwen Code registra l’interruzione del piano gratuito Qwen OAuth il 15 aprile 2026 e Qwen OAuth non è più selezionabile nella finestra /auth. La documentazione precisa inoltre che i modelli Qwen OAuth sono codificati in modo fisso e non possono essere sovrascritti tramite modelProviders, quindi il vecchio percorso non può essere semplicemente reindirizzato altrove. Restano Alibaba ModelStudio, un provider di terze parti integrato oppure un endpoint personalizzato configurato autonomamente.

Qwen Code può usare modelli Claude o GPT invece di Qwen?

Sì. La tabella dei protocolli di Qwen Code indica che la chiave del provider openai accetta qualsiasi endpoint compatibile con OpenAI; inoltre, l’id del modello in una voce modelProviders viene inoltrato direttamente al baseUrl configurato e viene quindi risolto presso quell’endpoint, non all’interno del client. Di conseguenza, un id Claude o GPT funziona se l’endpoint lo offre. Kunavo offre id Claude e GPT tramite la propria interfaccia compatibile con OpenAI e ha pubblicato questa configurazione sulla base della documentazione del fornitore, non di una prova eseguita.

Perché Qwen Code ignora --openai-base-url?

Perché una voce modelProviders ha la precedenza. L’ordine documentato delle credenziali mette al primo posto le modifiche inserite tramite /auth nella sessione in corso, al secondo baseUrl ed envKey del provider di modelli selezionato e al terzo gli argomenti della CLI, prima delle variabili d’ambiente e delle impostazioni. Se è selezionata una voce provider, prevale il suo baseUrl, non il flag. Modifica quella voce — le modifiche a modelProviders vengono caricate automaticamente nella sessione in corso — oppure rimuovila se intendevi usare il flag.