Receta · Intermedio · 15 min
Claude Code gratis con Ollama u OpenRouter: qué funciona
Cómo conectar Claude Code a Ollama u OpenRouter con ANTHROPIC_BASE_URL, qué falla con modelos que no son Claude y la opción legal y barata.
Probado con Claude Code 2.1.316 · revisado
El problema
Quieres probar Claude Code sin pagar y en internet lees que «funciona gratis con Ollama». Es verdad a medias: el programa claude se puede conectar a otros servidores, pero entonces el que responde ya no es Claude, sino un modelo abierto que corre en tu PC o en un servicio de terceros. Aquí tienes lo que dice la documentación oficial de cada parte, cómo configurarlo paso a paso y dónde se rompe.
Aviso honesto: la configuración está verificada con la documentación oficial de Claude Code, Ollama y OpenRouter (31-oct-2026); no se probó con Ollama en este equipo.
La solución
1. Entiende qué cambias y qué no
Claude Code habla con la API de Anthropic. Con la variable ANTHROPIC_BASE_URL le dices que mande las peticiones a otro servidor que «hable» el mismo formato (la API Messages, /v1/messages). Hoy lo hacen los dos:
| Ollama | OpenRouter | |
|---|---|---|
| Dónde corre el modelo | En tu PC (o en Ollama Cloud) | En los servidores de los proveedores que OpenRouter elige |
| Compatibilidad con la API de Anthropic | «Un subconjunto» de la API Messages | La llama «Anthropic Skin», compatible con la API Messages |
| Coste | Gratis en local (pagas con tu hardware) | Modelos :free con límite diario; el resto, con créditos |
| ¿Es Claude? | No, nunca | Solo si eliges un modelo de Anthropic (y entonces pagas) |
La documentación de Claude Code es clara: Anthropic «no respalda, mantiene ni audita» pasarelas de terceros y no da soporte a usar Claude Code con modelos que no son Claude a través de ninguna pasarela. Funciona, pero si algo falla, estás por tu cuenta.
2. Opción A: Ollama en tu PC
Instala Ollama desde ollama.com y descarga un modelo que admita herramientas (tools). La guía oficial de Ollama usa qwen3.5 como ejemplo:
ollama pull qwen3.5
Lo más fácil es dejar que Ollama lance Claude Code ya configurado:
ollama launch claude
Si prefieres hacerlo a mano, exporta estas variables (son las de la guía oficial de Ollama) y arranca con el modelo:
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5
ANTHROPIC_AUTH_TOKEN es obligatorio pero Ollama lo ignora; ANTHROPIC_API_KEY vacío evita que Claude Code use una clave de Anthropic que tengas guardada.
Sube el contexto. Ollama asigna por defecto 4k de contexto si tu tarjeta tiene menos de 24 GiB de VRAM, y eso no alcanza para un agente. Su documentación pide al menos 64000 para herramientas de programación:
OLLAMA_CONTEXT_LENGTH=64000 ollama serve
Más contexto gasta más memoria: con 8 GB de RAM y sin tarjeta gráfica potente, un modelo local útil irá muy lento o no cabrá.
Opcional: para que las tareas de fondo (títulos de sesión y similares usan el alias haiku) y los alias sonnet/opus no pidan un modelo que Ollama no tiene, apúntalos al mismo modelo local:
export ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3.5
export ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3.5
export ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3.5
3. Opción B: OpenRouter
Crea una cuenta en openrouter.ai, genera una clave y elige en su catálogo un modelo con el sufijo :free que admita herramientas. Las variables vienen de la guía oficial de OpenRouter para Claude Code:
export OPENROUTER_API_KEY="tu-clave-de-openrouter"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY=""
export ANTHROPIC_DEFAULT_SONNET_MODEL="<modelo>:free"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="<modelo>:free"
claude
Cambia <modelo>:free por el identificador exacto que copies del catálogo. ANTHROPIC_API_KEY tiene que estar vacío a propósito: según OpenRouter, así Claude Code no intenta autenticarse directamente con Anthropic.
Límites de los modelos gratis según OpenRouter: 20 peticiones por minuto y 50 al día si has comprado menos de 10 créditos; 1000 al día si has comprado 10 o más. Claude Code hace varias peticiones por tarea (cada lectura, edición o comando es un turno), así que 50 se acaban rápido.
4. Guarda la configuración sin filtrar la clave
Para no exportar todo en cada terminal, pon las variables en el bloque env de ~/.claude/settings.json (para todos tus proyectos) o de .claude/settings.local.json (solo un proyecto):
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "tu-clave-de-openrouter",
"ANTHROPIC_API_KEY": ""
}
}
Nunca la pongas en .claude/settings.json del proyecto: ese archivo se sube al repositorio y lo ve todo el que lo clone. Si creas settings.local.json a mano, añádelo antes a .gitignore.
5. Vuelve a Claude cuando quieras
Quita las variables y Claude Code vuelve a tu sesión de claude.ai, que sigue guardada:
unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_API_KEY
unset ANTHROPIC_DEFAULT_HAIKU_MODEL ANTHROPIC_DEFAULT_SONNET_MODEL ANTHROPIC_DEFAULT_OPUS_MODEL
Si las pusiste en un settings.json, bórralas también de ahí.
Compruébalo
Antes de abrir Claude Code, prueba el servidor con una petición mínima (es la prueba de la documentación de Claude Code, con tu URL):
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "qwen3.5", "max_tokens": 16, "messages": [{"role": "user", "content": "hola"}]}'
Cambia qwen3.5 por tu modelo de OpenRouter si usas esa opción. Una respuesta JSON con un campo "content" y el código 200 al final indica que funciona; un 401 es una clave mal puesta.
Después abre claude desde la misma terminal y escribe /status. Debes ver algo así (ejemplo de OpenRouter):
Auth token: ANTHROPIC_AUTH_TOKEN
Anthropic base URL: https://openrouter.ai/api
Si la línea Anthropic base URL no aparece, la variable no llegó a la sesión: abre una terminal nueva y vuelve a lanzar claude.
Por qué funciona
Claude Code envía cada turno como una petición a $ANTHROPIC_BASE_URL/v1/messages, con la credencial de ANTHROPIC_AUTH_TOKEN en la cabecera Authorization: Bearer. Ollama y OpenRouter aceptan ese mismo formato y traducen la petición a su modelo. Las piezas de Claude Code (herramientas, permisos, CLAUDE.md, hooks) siguen siendo las mismas; lo que cambia es el «cerebro» que decide.
Por eso no todo encaja. Según la tabla de compatibilidad de Ollama, no admite el conteo de tokens (/v1/messages/count_tokens), el caché de prompts (cache_control), los PDF ni tool_choice; su guía para Claude Code avisa de que «la búsqueda web alojada y los controles avanzados de herramientas no están del todo soportados». OpenRouter, por su parte, advierte en su guía que Claude Code «está optimizado para modelos de Anthropic y puede no funcionar bien con otros proveedores».
Fuentes oficiales de Claude Code: Otras pasarelas LLM, Conectar a una pasarela y Variables de entorno.
Errores típicos
- Responde sin sentido u olvida lo que hacía → el contexto de Ollama se quedó en 4k → arranca con
OLLAMA_CONTEXT_LENGTH=64000 ollama servey comprueba la columna CONTEXT conollama ps. - No edita archivos ni ejecuta comandos, solo «habla» → el modelo no admite herramientas (tools) → elige otro que las admita; sin herramientas no hay agente.
401en la prueba concurlo en Claude Code → la clave está en la variable equivocada o mal copiada → para Ollama y OpenRouter va enANTHROPIC_AUTH_TOKEN, conANTHROPIC_API_KEY="".400conExtra inputs are not permittedo campos desconocidos → el servidor rechaza funciones en beta que manda Claude Code →export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.- Sigue usando tu plan de Claude o te pide iniciar sesión → solo pusiste
ANTHROPIC_BASE_URL, sin credencial → añadeANTHROPIC_AUTH_TOKEN; la URL sola no reemplaza tu login. - OpenRouter deja de responder a media tarde → llegaste al límite diario de los modelos
:free(50 sin créditos comprados) → espera al día siguiente o compra créditos. - Peticiones que caducan con un modelo local lento → el PC tarda más que el tiempo de espera → sube
API_TIMEOUT_MS(por defecto 600000, 10 minutos).
Preguntas frecuentes
¿Entonces Claude Code es gratis con Ollama?
El programa sí, y el modelo local también, pero ya no estás usando Claude. Obtienes la interfaz y las herramientas de Claude Code con un modelo abierto, normalmente bastante menos capaz en tareas largas de programación.
¿Puedo usar Claude (el modelo de Anthropic) gratis por OpenRouter?
No. OpenRouter también ofrece los modelos de Anthropic, pero se pagan con créditos al precio por token. Lo gratis de OpenRouter son modelos de otros fabricantes con el sufijo :free y límite diario.
¿Mi código sale de mi PC?
Con Ollama en local (http://localhost:11434), las peticiones al modelo no salen de tu equipo; Claude Code sí puede seguir enviando tráfico no esencial (actualizaciones, telemetría), que se apaga con CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1. Con OpenRouter tu código viaja a OpenRouter y al proveedor del modelo; OpenRouter dice que no guarda prompts salvo que lo actives, y que no enruta a proveedores que registran o entrenan con datos a menos que lo permitas en su pestaña de privacidad.
¿Cuál es la opción legal más barata para usar Claude de verdad?
Claude Code funciona con una suscripción Pro, Max o Ultra (el plan gratuito de claude.ai no aparece entre las cuentas admitidas) o con una clave de la Claude Console pagando por uso. Con la clave de API pagas solo lo que usas: elige un modelo pequeño (/model haiku) y mira el gasto de la sesión con /usage. Compara con el precio de los planes en claude.com/pricing.
¿Es mejor ollama launch claude o configurarlo a mano?
ollama launch claude pone las variables por ti y deja elegir el modelo; es lo más rápido para probar. A mano tienes control total y lo puedes guardar en settings.json, pero recuerda quitar las variables para volver a Claude.