Documentação
Qwen Code
O Qwen Code mantém os endpoints em um único arquivo. Declare o Kunavo uma vez em modelProviders, defina selectedType como openai, e o seletor /model alternará entre Claude e GPT com uma única chave.
O Qwen Code lê seus endpoints de modelProviders em ~/.qwen/settings.json — uma entrada com baseUrl e envKey coloca Claude e GPT no seletor /model.
{
"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. A referência de provedores de modelos esclarece isso em uma frase: ao direcionar uma entrada para um gateway hospedado compatível com OpenAI, defina baseUrl como a “raiz /v1” da API, em vez do caminho /v1/chat/completions completo, pois “o SDK acrescenta o caminho da solicitação por conta própria”. Todos os exemplos de OPENAI_BASE_URL na página de autenticação terminam da mesma forma. Uma URL base que já inclua a rota resulta em 404, não em um erro de autenticação.realtimeOnly seja um endpoint DashScope. Portanto, esse recurso continua usando sua própria chave, independentemente de onde você direcionar o modelo de conversa./auth.sk-kn-) e adicione crédito a partir de $10 — as chamadas são pagas com esse saldo, e chamadas malsucedidas não são cobradas. O painel então abre na configuração de Qwen Code.Passo a passo
- Crie uma chave em
/app/keyse copie-a — ela é exibida uma única vez. - Abra
~/.qwen/settings.json(crie-o se não existir) e mescle os quatro blocos acima. A documentação recomenda declararmodelProvidersno arquivo do escopo do usuário “para evitar conflitos de mesclagem entre as configurações do projeto e do usuário”. - Se possível, guarde a chave em um lugar mais seguro que
env. O Qwen Code a lê deprocess.env[envKey], e a documentação classifica as fontes da mais prioritária à menos prioritária: umexportdo shell, depois um arquivo.env, e por fim o blocoenvemsettings.json— que é identificado como armazenamento em texto simples. O blocoenvacima é o mínimo necessário para funcionar, não a melhor opção para manter. - Execute
qwen. Comsecurity.auth.selectedTypedefinido comoopenaiemodel.namecorrespondendo a umidque você declarou, não é necessário passar pela etapa interativa/auth— a documentação diz isso explicitamente após o exemplo de arquivo único. - Dê a ele uma tarefa que leia e edite um arquivo, não uma saudação. O Qwen Code é um agente: chamadas de ferramentas e streaming são o que uma primeira execução deve exercitar e são os primeiros recursos a falhar em um endpoint que só seja parcialmente compatível.
- Adicione mais entradas em
modelProviders.openaipara alternar modelos durante a execução com/model. Essas edições são recarregadas automaticamente em uma sessão em andamento;providerProtocolé lido uma vez na inicialização e exige uma reinicialização.
Verificado em Página de autenticação do Qwen Code, opção 4: Chave de API (flexível) em 21 de setembro de 2026. As configurações de terceiros podem mudar; se o nome de um campo aqui já não corresponder ao que você vê, aquela página é a autoridade, não esta.
Verifique antes de depurar o cliente
Uma solicitação determina se a falha está no endpoint, na chave ou no arquivo de configuração. Se isto retornar JSON, a mesma URL base e a mesma chave funcionarão em 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-..."Qual ID de modelo inserir no campo
Todo modelo de texto pode ser acessado como um ID de modelo — a lista atual está em GET /v1/models, e o catálogo com preços está na página de modelos. As tarifas são em USD por 1 milhão de tokens, entrada / saída.
| ID do modelo | Entrada / saída da Kunavo | Onde se encaixa em Qwen Code |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | o modelo de trabalho padrão — defina-o como model.name |
claude-opus-5 | $3.50 / $17.50 | um plano cujo custo de errar seria alto |
claude-haiku-4-5 | $0.70 / $3.50 | turnos econômicos: triagem, resumos e o ciclo que funciona o dia todo |
gpt-5-6-sol | $2.00 / $12.00 | uma segunda opinião de outra família, com a mesma chave e o mesmo baseUrl |
gpt-5-6-terra | $0.70 / $4.20 | leitura de contexto longo, ainda usando a chave do protocolo openai |
Três pontos que a documentação esclarece e muita gente supõe errado
Essas informações vêm da página de autenticação e da referência de provedores de modelos citadas acima. Supor em vez de consultar cada uma delas gera um custo real de depuração.
- Uma entrada
modelProviderstem prioridade sobre os argumentos da CLI. A ordem documentada, da mais prioritária à menos prioritária, é: substituições feitas por/authna sessão em andamento, depois oenvKeydo provedor de modelos selecionado, depois argumentos da CLI como--openai-api-key, em seguida variáveis de ambiente e, por fim,security.auth.apiKeynas configurações. A maioria das pessoas espera que o argumento prevaleça. Não prevalece — por isso--openai-base-urlpode parecer ser ignorado. security.auth.apiKeyesecurity.auth.baseUrlforam descontinuados. A referência informa isso e recomenda migrar paramodelProviders. Se um tutorial antigo orienta você a editar essas duas chaves, ele está indicando uma configuração que está sendo descontinuada.wireApiescolhe o formato da solicitação, e nada detecta uma incompatibilidade. Se você não o especificar, será usado Chat Completions, como no bloco acima. Definir"wireApi": "responses"exige um endpoint realmente compatível com Responses, e a documentação afirma claramente que não há detecção de endpoint nem fallback automático quando uma solicitação falha. A Kunavo também responde em/v1/responsese em/v1/chat/completions, mas esta página não testou nenhuma das duas combinações, então comece com o padrão.
Se você chegou aqui procurando o plano gratuito
Boa parte do que ainda se escreve sobre o Qwen Code descreve um login OAuth do Qwen com uma cota diária gratuita. Essa opção não está mais disponível: a documentação registra que o plano gratuito foi descontinuado em 15 de abril de 2026 e informa que o Qwen OAuth não é mais uma opção selecionável na janela /auth. As três opções listadas agora são Alibaba ModelStudio — com Coding Plan, Token Plan e Standard API Key no submenu —, Third-party Providers e Custom Provider, descrito como uma forma de conectar “um servidor local, proxy ou provedor sem suporte”. A Kunavo é a terceira dessas opções. Observe também que as opções do submenu ModelStudio não são três formas de pagar uma única fatura: cada uma tem seu próprio host e sua própria chave, e uma chave Coding Plan não funcionará em um host Token Plan.
Perguntas frequentes
Como configuro o Qwen Code para usar um endpoint de API personalizado?
Declare o endpoint em ~/.qwen/settings.json, na seção modelProviders. Use a chave "openai" para qualquer host compatível com OpenAI, atribua um id, um baseUrl e um envKey à entrada do modelo, indicando o nome da variável de ambiente que contém sua chave de API, e depois defina security.auth.selectedType como "openai" e model.name como esse id. Execute qwen e ele começará a usar essa rota sem precisar passar pela etapa interativa /auth. A alternativa com variáveis de ambiente usa OPENAI_API_KEY, OPENAI_BASE_URL e OPENAI_MODEL, mas a documentação recomenda o arquivo de configurações porque ele continua disponível entre sessões do shell e aceita vários endpoints ao mesmo tempo.
O baseUrl do Qwen Code precisa terminar em /v1?
Sim, para um endpoint compatível com OpenAI. A referência de provedores de modelos do Qwen Code diz para definir baseUrl como a raiz /v1 da API, por exemplo, https://gateway.example.com/v1, em vez do caminho completo /v1/chat/completions, porque o SDK acrescenta o caminho da solicitação. Para a Kunavo, o valor é https://api.kunavo.com/v1. Deixar o caminho completo no final resulta em um erro 404, e não em uma falha de autenticação — esse é o sintoma mais comum.
O plano gratuito do Qwen Code ainda está disponível?
Não. A documentação do próprio Qwen Code registra que o plano gratuito do Qwen OAuth foi descontinuado em 15 de abril de 2026, e o Qwen OAuth não é mais uma opção selecionável na janela /auth. A documentação também observa que os modelos Qwen OAuth são definidos no código e não podem ser substituídos por modelProviders, então não basta redirecionar a configuração antiga para outro lugar. As opções restantes são Alibaba ModelStudio, um provedor de terceiros integrado ou um endpoint personalizado que você configura por conta própria.
O Qwen Code pode executar modelos Claude ou GPT em vez de Qwen?
Sim. A tabela de protocolos do Qwen Code indica que a chave de provedor openai aceita qualquer endpoint compatível com OpenAI, e o id do modelo em uma entrada modelProviders é passado diretamente para o baseUrl configurado. Portanto, ele é resolvido nesse endpoint, e não dentro do cliente. Assim, um id Claude ou GPT funciona desde que o endpoint o disponibilize. A Kunavo disponibiliza ids Claude e GPT por meio de sua interface compatível com OpenAI e publicou esta configuração com base na documentação do fornecedor, não em uma execução de teste.
Por que o Qwen Code está ignorando --openai-base-url?
Porque uma entrada modelProviders tem prioridade sobre ele. A precedência documentada das credenciais coloca primeiro as substituições feitas por /auth na sessão em andamento, em segundo lugar baseUrl e envKey do provedor de modelos selecionado, depois os argumentos da CLI, em seguida as variáveis de ambiente e, por fim, as configurações. Se uma entrada de provedor estiver selecionada, o baseUrl dela prevalece sobre o argumento. Edite essa entrada — alterações em modelProviders são recarregadas automaticamente na sessão em andamento — ou remova-a se quiser que o argumento tenha efeito.