Documentação

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.

Mescle em ~/.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"
  }
}
A URL base mantém o /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.
Esta configuração foi consultada na documentação do próprio Qwen Code na data indicada abaixo. O Kunavo não executou o Qwen Code contra seu endpoint: nenhuma sessão, turno transmitido em streaming ou interação de ida e volta com ferramentas. O mesmo vale para todos os clientes desta família. Uma página de configuração publicada não é um teste de compatibilidade. Mantenha disponível a rota que já funciona enquanto experimenta esta.
O Kunavo não oferece modelos de incorporação, conversão de texto em fala nem de fala em texto; por isso, uma rota do Kunavo atende apenas a conversas. As rotas Live Voice do Qwen Code são outra questão: a documentação exige que o host de uma rota realtimeOnly seja um endpoint DashScope. Portanto, esse recurso continua usando sua própria chave, independentemente de onde você direcionar o modelo de conversa.
O catálogo da Kunavo não contém nenhum modelo de texto Qwen. Esta não é uma forma mais barata de executar o Qwen — é uma forma de executar Claude e GPT dentro do Qwen Code usando um único saldo pré-pago. Se você quer inferência do Qwen, o Alibaba Cloud Model Studio é a fonte oficial, e a própria documentação do Qwen Code cita OpenRouter e Requesty entre os provedores de terceiros na lista /auth.
Ainda não tem uma chave? Crie uma conta na Kunavo, gere uma chave (ela começa com 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

  1. Crie uma chave em /app/keys e copie-a — ela é exibida uma única vez.
  2. Abra ~/.qwen/settings.json (crie-o se não existir) e mescle os quatro blocos acima. A documentação recomenda declarar modelProviders no arquivo do escopo do usuário “para evitar conflitos de mesclagem entre as configurações do projeto e do usuário”.
  3. Se possível, guarde a chave em um lugar mais seguro que env. O Qwen Code a lê de process.env[envKey], e a documentação classifica as fontes da mais prioritária à menos prioritária: um export do shell, depois um arquivo .env, e por fim o bloco env em settings.json — que é identificado como armazenamento em texto simples. O bloco env acima é o mínimo necessário para funcionar, não a melhor opção para manter.
  4. Execute qwen. Com security.auth.selectedType definido como openai e model.name correspondendo a um id que você declarou, não é necessário passar pela etapa interativa /auth — a documentação diz isso explicitamente após o exemplo de arquivo único.
  5. 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.
  6. Adicione mais entradas em modelProviders.openai para 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.

Esta é a versão resumida. O guia completo — escolha do modelo, custo de uma sessão real e modos de falha — está em o guia de preços do Qwen Code.

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 modeloEntrada / saída da KunavoOnde se encaixa em Qwen Code
claude-sonnet-5$1.40 / $7.00o modelo de trabalho padrão — defina-o como model.name
claude-opus-5$3.50 / $17.50um plano cujo custo de errar seria alto
claude-haiku-4-5$0.70 / $3.50turnos econômicos: triagem, resumos e o ciclo que funciona o dia todo
gpt-5-6-sol$2.00 / $12.00uma segunda opinião de outra família, com a mesma chave e o mesmo baseUrl
gpt-5-6-terra$0.70 / $4.20leitura de contexto longo, ainda usando a chave do protocolo openai
A cobrança é por token, usando um saldo pré-pago e sem tarifa mensal — consulte billing. Em contextos repetidos — que representam a maior parte do que um editor ou cliente de chat envia — o cache de prompt altera a conta mais do que a escolha do modelo.

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.

  1. Uma entrada modelProviders tem prioridade sobre os argumentos da CLI. A ordem documentada, da mais prioritária à menos prioritária, é: substituições feitas por /auth na sessão em andamento, depois o envKey do provedor de modelos selecionado, depois argumentos da CLI como --openai-api-key, em seguida variáveis de ambiente e, por fim, security.auth.apiKey nas configurações. A maioria das pessoas espera que o argumento prevaleça. Não prevalece — por isso --openai-base-url pode parecer ser ignorado.
  2. security.auth.apiKey e security.auth.baseUrl foram descontinuados. A referência informa isso e recomenda migrar para modelProviders. Se um tutorial antigo orienta você a editar essas duas chaves, ele está indicando uma configuração que está sendo descontinuada.
  3. wireApi escolhe 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/responses e 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.