Volver al blog

Herramientas e integracionesGuía

Conecta Qwen Code a CheapTokens: variables de entorno y settings.json

Apunta Qwen Code a una API compatible con OpenAI con tres variables de entorno o una entrada en settings.json: URL base, id de modelo completo y una clave fuera de git.

Por CheapTokens TeamPublicado el 5 min de lectura

Terminal de Qwen Code con las variables OPENAI_API_KEY, OPENAI_BASE_URL y OPENAI_MODEL
En esta página
  1. Instalar Qwen Code
  2. Ruta 1: tres variables de entorno
  3. Ruta 2: settings.json y una clave fuera de git
  4. Cuánto cuesta una sesión de programación
  5. Otros modelos para probar
  6. Si Qwen Code no se conecta

Qwen Code puede conectarse a un endpoint personalizado compatible con OpenAI, así que conectarlo a CheapTokens requiere tres valores: la URL base https://api.cheaptokens.dev/v1, tu clave de API y un id de modelo completo como deepseek-ai/DeepSeek-V4-Flash-0731. Expórtalos como OPENAI_API_KEY, OPENAI_BASE_URL y OPENAI_MODEL, o colócalos en ~/.qwen/settings.json. Ambas rutas provienen de la documentación de autenticación de Qwen Code (página actualizada por última vez el 22 de octubre de 2026).

Imagina una sesión larga: el agente lee una docena de archivos, edita tres, vuelve a ejecutar las pruebas. Cada paso reenvía el contexto, así que pagas por la entrada una y otra vez. Por eso un modelo barato con saldo por token encaja con un agente de terminal, y por eso la configuración de abajo merece diez minutos.

Instalar Qwen Code#

Qwen Code necesita Node.js 22 o superior. El README del proyecto (github.com/QwenLM/qwen-code) enumera varias rutas de instalación; dos de ellas:

Instalar Qwen Code

npm

bash
npm install -g @qwen-code/qwen-code@latest

Homebrew

bash
brew install qwen-code

Lo inicias con qwen. La documentación también describe /auth → Custom Provider para conectar un proxy o un proveedor no compatible a mano. Las dos rutas de abajo están escritas línea por línea, así que empieza con una de ellas.

Ruta 1: tres variables de entorno#

La forma más rápida. Abre una terminal en tu proyecto y ejecuta:

bash
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.cheaptokens.dev/v1"
export OPENAI_MODEL="deepseek-ai/DeepSeek-V4-Flash-0731"
qwen

La clave es un marcador de posición; pega la tuya desde el panel de CheapTokens. Exportar OPENAI_API_KEY es también lo que le indica a Qwen Code que use autenticación compatible con OpenAI cuando configuras todo mediante variables de entorno. OPENAI_MODEL tiene un alias, QWEN_MODEL.

Un detalle que confunde a la gente: el id del modelo. Usa el id completo de la documentación de CheapTokens. El nombre corto que ves junto a los precios, deepseek-v4-flash-0731, no lo acepta la API, y los ids difieren entre proveedores.

¿Qué hace cada variable? Emparejalas:

Emparejar los pares

Empareja cada variable con su función

  • OPENAI_API_KEYTu clave de CheapTokens; exportarla selecciona la autenticación compatible con OpenAI
  • OPENAI_BASE_URLEl endpoint al que Qwen Code envía las solicitudes
  • OPENAI_MODELEl id del modelo enviado a la API
  • QWEN_MODELUn alias de OPENAI_MODEL

Las exportaciones duran hasta que cierres la terminal. Para conservar la configuración, usa la siguiente ruta.

Ruta 2: settings.json y una clave fuera de git#

Supón que compartes el repositorio con un equipo y nadie quiere una clave en un archivo de configuración. Entonces describe el modelo en ~/.qwen/settings.json y mantén la clave en un archivo aparte.

json
{
  "modelProviders": {
    "openai": [
      {
        "id": "deepseek-ai/DeepSeek-V4-Flash-0731",
        "name": "DeepSeek-V4-Flash (CheapTokens)",
        "baseUrl": "https://api.cheaptokens.dev/v1",
        "description": "DeepSeek-V4-Flash through CheapTokens",
        "envKey": "CHEAPTOKENS_API_KEY"
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731" }
}

Cuatro campos son los importantes:

  • id es el id del modelo enviado a la API, así que debe ser el id completo.
  • model.name debe coincidir con uno de los valores de id, de lo contrario Qwen Code no tiene nada que seleccionar.
  • security.auth.selectedType establecido en "openai" elige la ruta compatible con OpenAI.
  • envKey nombra la variable que contiene la clave. Es opcional y por defecto es OPENAI_API_KEY.

La clave en sí va en .qwen/.env, que la documentación recomienda para secretos, y ese archivo se mantiene fuera de git:

bash
CHEAPTOKENS_API_KEY=sk-your-api-key

Hay una razón para preferir eso al bloque env en settings.json: los valores de env tienen la prioridad más baja, y un archivo con una clave dentro es fácil de commitear por accidente. Más sobre mantener las claves seguras en guardar una clave de API de forma segura.

Variables de entorno y sus equivalentes en settings.json: clave, URL base, id de modelo
Dónde va cada uno de los tres valores: variables de entorno a la izquierda, settings.json a la derecha

Tras el lanzamiento, /model muestra los modelos configurados y te permite cambiar. Para empezar con uno específico, ejecuta qwen --model "deepseek-ai/DeepSeek-V4-Flash-0731".

Cuánto cuesta una sesión de programación#

Los agentes de terminal consumen mucha entrada: cada paso lleva los archivos y el historial que ha reunido hasta el momento. Toma una tarea de 40 pasos y supón 30.000 tokens de entrada y 1.000 tokens de salida por paso. Eso son 40 × 30.000 = 1.200.000 tokens de entrada y 40 × 1.000 = 40.000 tokens de salida. Aquí está la tarea completa con precios en vivo:

Modelo Por solicitud 40 solicitudes OpenRouter, 40 solicitudes
GLM-5.3-Flash $0.00064 $0.0256 $0.0526
DeepSeek-V4-Flash $0.00055 $0.022 $0.0633
MiniMax-M2.7 $0.0017 $0.066 $0.408

30.000 tokens de entrada y 1000 tokens de salida por solicitud. Los precios por 1M de tokens son actuales y cambian junto con nuestras tarifas; la columna de OpenRouter muestra precios de referencia para la misma carga de trabajo.

Contando entrada y salida juntas, CheapTokens es más barato que OpenRouter para cada modelo de la tabla. Para este tipo de bucle, DeepSeek-V4-Flash encaja bien: un contexto de 380K, hasta 32.768 tokens de salida en una respuesta, un precio a cualquier hora y un saldo para todos los modelos. Tus propias cifras variarán, así que mueve los controles:

Calculadora de costos

Tu propio día con un agente de terminal

Tokens de entrada por solicitud: 25.000 · Tokens de salida por solicitud: 800 · Solicitudes por día: 120

ModeloPor díaPor mes
GLM-5.3-Flash$0.0638$1.92
DeepSeek-V4-Flash$0.0546$1.64
MiniMax-M2.7$0.164$4.93

Los precios están en la página de precios. Si sigues el uso en otro agente, cuánto cuesta Cline recorre la misma aritmética.

Otros modelos para probar#

Cambiar es cambiar el id, nada más. Tómalo de la página de modelos o de GET /v1/models:

  • zai-org/GLM-5.3-Flash: contexto de 390K, hasta 8.192 tokens de salida por respuesta y un precio total más bajo que OpenRouter.
  • MiniMaxAI/MiniMax-M2.7: contexto de 180K, hasta 8.192 tokens de salida por respuesta y un precio total más bajo que OpenRouter.

Cambia OPENAI_MODEL, o añade una segunda entrada a modelProviders.openai y alterna entre ellas con /model.

Si Qwen Code no se conecta#

  • No se elige el tipo de autenticación. Solo con variables de entorno, OPENAI_API_KEY debe estar exportada. Con settings.json, comprueba que selectedType sea "openai".
  • Modelo no encontrado. model.name debe ser igual a un id carácter por carácter, y el id debe ser el id completo de la pasarela.
  • 401. La clave falta o es incorrecta. Si usas envKey, asegúrate de que esa variable realmente exista en .qwen/.env o en tu shell.
  • 404. Comprueba que la URL base termine en /v1 y que el id no tenga errores tipográficos. El recorrido completo está en API 401 o 404: clave, URL base o id de modelo incorrectos.
  • Una variable parece ignorada. Los valores en env dentro de settings.json tienen la prioridad más baja, así que una variable establecida en otro lugar gana.

La configuración para otros agentes de terminal sigue el mismo patrón, por ejemplo OpenCode y Aider. Todo lo demás, desde las claves hasta la primera solicitud, está en la documentación de CheapTokens.