Claude Code con DeepSeek Flash o Pro: configuración, pruebas y precios
Guía completa para conectar Claude Code a DeepSeek, elegir Flash o Pro, introducir la clave de forma segura, validar la ruta, resolver errores y comparar precios vigentes.
Índice

Claude Code puede conectarse directamente al endpoint compatible con Anthropic de DeepSeek, sin añadir un proxy. Para la mayoría de tareas conviene empezar con el perfil oficial actual deepseek-flash[1m]; reserva deepseek-v4-pro para el hilo principal cuando una refactorización difícil, una decisión de arquitectura o una depuración larga justifiquen el coste adicional.
Hay dos trampas importantes. El ejemplo actual de DeepSeek fuerza Flash incluso para Opus y, por tanto, sustituye el mapeo automático. Además, un nombre de modelo no admitido vuelve silenciosamente a deepseek-flash. Una respuesta normal demuestra que la conexión funciona, no que Pro haya procesado la solicitud.
Elige el perfil antes de tocar la configuración
A fecha de 27 de septiembre de 2026, la guía de Claude Code de DeepSeek propone un perfil económico basado por completo en Flash. La guía de compatibilidad Anthropic indica que los nombres que empiezan por claude-opus se asignan a deepseek-v4-pro, mientras claude-sonnet y claude-haiku se asignan a deepseek-flash.
| Perfil | Modelo principal / Opus | Sonnet | Haiku y subagentes | Cuándo usarlo |
|---|---|---|---|---|
| Predeterminado oficial, prioridad a velocidad | deepseek-flash[1m] | deepseek-flash[1m] | deepseek-flash | Código diario, lectura de repositorios y muchas tareas pequeñas |
| Pro en el hilo principal | deepseek-v4-pro | deepseek-flash[1m] | deepseek-flash | Arquitectura, refactorizaciones complejas y diagnósticos críticos |
| Mapeo automático de nombres Claude | claude-opus* → deepseek-v4-pro | claude-sonnet* → deepseek-flash | claude-haiku* → deepseek-flash | Solo cuando sabes qué nombre Claude envía el cliente |
Las variables explícitas tienen prioridad sobre el mapeo. Si defines ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m], seleccionar Opus seguirá enviando la petición a Flash.
1. Instala Claude Code y comprueba primero el CLI
Necesitas Node.js 18 o posterior; en Windows también Git for Windows. Comprueba la versión antes de configurar el proveedor para no confundir un problema local con un fallo del endpoint.
npm install -g @anthropic-ai/claude-code
claude --version
IFS= read -rs ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
export CLAUDE_CODE_EFFORT_LEVEL="max"
export CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"
IFS= read -rs ANTHROPIC_AUTH_TOKEN espera a que pegues la API Key sin mostrarla. Pulsa Enter y la línea siguiente la exportará al proceso actual. No escribas una clave real en un comando, script, historial del shell ni repositorio.
En PowerShell puedes leerla como secreto y exponerla solo al proceso actual:
npm install -g @anthropic-ai/claude-code
claude --version
$secure = Read-Host -AsSecureString
$ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
try {
$env:ANTHROPIC_AUTH_TOKEN = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr)
} finally {
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ptr)
}
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
$env:CLAUDE_CODE_EFFORT_LEVEL="max"
$env:CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"
Las variables afectan a Claude Code iniciado desde esa terminal. Valida primero la sesión temporal; después guarda únicamente los valores no secretos en un perfil protegido y conserva la clave en un almacén de secretos adecuado.
2. Pon Pro solo en el hilo que necesita más razonamiento
La página actual de modelos y precios identifica Pro como deepseek-v4-pro, versión DeepSeek-V4-Pro-0813. La página de integración actual solo muestra el sufijo [1m] con Flash, no un ejemplo deepseek-v4-pro[1m]. Por eso es más prudente usar el ID exacto de la tabla, sin inventar un sufijo.
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
La sesión principal y la ruta Opus usarán Pro; Sonnet, Haiku y los subagentes seguirán en Flash. Las búsquedas del repositorio, lecturas de archivos y pequeñas tareas delegadas pueden generar muchos turnos, así que mantenerlas en Flash evita multiplicar el gasto de Pro sin beneficio claro.
Qué significa [1m] y cuáles son sus límites
La documentación actual de DeepSeek no define [1m] en una frase independiente. Sí muestra el sufijo en el Flash principal y en las sustituciones de Opus/Sonnet, deja Haiku y CLAUDE_CODE_SUBAGENT_MODEL como deepseek-flash, y publica una longitud de contexto de 1M en la tabla de modelos. Leído en conjunto, lo prudente es tratar [1m] como la notación de Claude Code para pedir la ruta de contexto de un millón de tokens solo en los modelos donde la guía la muestra; no es otro modelo, otra tarifa ni un millón de tokens de salida.
Ten presentes estos límites:
- la salida máxima indicada es 384K, no 1M;
CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432deja margen antes del techo del contexto;- la facturación usa los ID
deepseek-flashydeepseek-v4-pro; no añadas el sufijo a un modelo para el que la integración actual no lo muestra.
3. Haz una prueba pequeña antes de lanzar un trabajo largo
Inicia Claude Code dentro de un proyecto desechable o de bajo riesgo:
test -n "${ANTHROPIC_AUTH_TOKEN:-}"
test "$ANTHROPIC_BASE_URL" = "https://api.deepseek.com/anthropic"
claude --version
cd /path/to/your/project
claude
Pide una tarea observable y de solo lectura: «Lee package.json o pyproject.toml, enumera los scripts disponibles y no modifiques archivos». La señal de éxito es una respuesta normal y una lectura de archivo completada, sin errores 401, 402, 429, de conexión o de modelo. Es una interacción síncrona: no existe un job ID que consultar y el resultado aparece en la sesión.
Si Claude Code falla, separa el endpoint del cliente con el patrón oficial del SDK de Anthropic y guarda la respuesta:
python3 -m pip install anthropic
python3 - <<'PY'
import os
from pathlib import Path
import anthropic
client = anthropic.Anthropic(
base_url=os.environ["ANTHROPIC_BASE_URL"],
api_key=os.environ["ANTHROPIC_AUTH_TOKEN"],
)
message = client.messages.create(
model="deepseek-flash",
max_tokens=200,
messages=[{"role": "user", "content": "Reply with: endpoint OK"}],
)
text = "\n".join(block.text for block in message.content if block.type == "text")
Path("deepseek-smoke.txt").write_text(text, encoding="utf-8")
print("saved deepseek-smoke.txt")
PY
Si se crea deepseek-smoke.txt pero Claude Code sigue fallando, revisa variables en conflicto, archivos de configuración y procesos antiguos. Si tampoco funciona el SDK, comprueba primero Base URL, clave, saldo y estado del proveedor.
DeepSeek afirma que los nombres no admitidos caen en deepseek-flash. La comprobación con el SDK demuestra el transporte, y la tarea de solo lectura de Claude Code añade una llamada básica a herramientas; ninguna demuestra la identidad del modelo. Antes de medir Pro o estimar su gasto, revisa los datos de solicitudes, uso o facturación que exponga el proveedor. Si no muestran el modelo, no tomes una respuesta correcta como prueba de que se usó Pro.
Herramientas, thinking y búsqueda web tienen límites documentados
La compatibilidad con Anthropic Messages cubre las estructuras principales, pero no convierte a DeepSeek en un equivalente completo de Claude. Los puntos más relevantes de la tabla de compatibilidad son:
| Capacidad | Estado actual | Consecuencia práctica |
|---|---|---|
tools, tool_use, tool_result | Campos principales admitidos | Existe la base de protocolo para herramientas locales de archivos y comandos |
tool_choice | Admitido; disable_parallel_tool_use se ignora | No dependas de ese indicador para forzar ejecución estrictamente serial |
| Web Search en Claude Code | Admitido de forma nativa | Resumir resultados crea llamadas LLM y consumo de tokens adicionales |
cache_control de Anthropic | Se ignora | No deduzcas un cache hit real de esas directivas |
| Thinking | Admitido; budget_tokens se ignora y effort funciona | El ejemplo usa CLAUDE_CODE_EFFORT_LEVEL=max; el presupuesto de Claude no controla aquí el gasto |
Bloques de entrada document y search_result | No admitidos | Prueba primero los procesos que dependan de esos bloques |
code_execution_tool_result y mcp_tool_use | No admitidos | La ejecución de código del servidor y los bloques MCP específicos de Anthropic no son equivalentes |
tool_result.is_error | Se ignora | Un middleware no debe transmitir el fallo únicamente con ese campo |
La guía de DeepSeek indica que su API proporciona Web Search a Claude Code. Cuando el modelo decide buscar, otras llamadas resumen el material recuperado. Incluye esas llamadas, el contexto largo, los reintentos y los bucles de herramientas en cualquier cálculo de coste.
Resuelve los fallos según el síntoma
| Síntoma | Revisa primero | Corrección y nueva prueba |
|---|---|---|
| 401 / authentication failure | Clave incorrecta, espacios o variable ausente en esta terminal | Vuelve a introducirla de forma oculta, reinicia Claude Code y repite la lectura |
| 402 / insufficient balance | Saldo de DeepSeek | Recarga y repite la misma solicitud corta |
| 400 / 422 | Campos, ID de modelo o middleware que reescribe el cuerpo | Restaura las variables oficiales; un cliente propio con Thinking + tools debe devolver todo reasoning_content |
| 429 | Velocidad y sesiones paralelas | Reduce concurrencia y reintenta con espera progresiva |
| 500 / 503 | Error o sobrecarga del proveedor | Espera, reintenta y anota la hora si persiste |
| Responde, pero no parece Pro | Error tipográfico o fallback de nombre no admitido | Usa deepseek-v4-pro exacto y confirma modelo/tarifa en el panel |
| La configuración no cambia | Proceso viejo u otra capa de ajustes | Cierra Claude Code, abre una terminal nueva, define las variables y vuelve a iniciar |
| Web Search no se activa | El modelo puede considerar que no hace falta | Pide información web actual de forma explícita; no buscar no implica fallo de conexión |
La documentación de errores de DeepSeek separa las causas de 401, 402, 429, 500 y 503. Cambia un solo valor cada vez y repite la misma prueba corta para saber qué corrección surtió efecto.
Precios de DeepSeek y BetterToken verificados el 27-09-2026
Todos los importes son USD por 1 millón de tokens. DeepSeek aplica franjas peak y off-peak; BetterToken publica un precio de catálogo sin la misma división horaria. Antes de una ejecución grande, revisa de nuevo la tarifa oficial de DeepSeek y la única página de precios de BetterToken.
Precios oficiales de DeepSeek
| ID / versión actual | Franja | Entrada sin caché | Entrada con caché | Salida |
|---|---|---|---|---|
deepseek-flash / DeepSeek-V4.1-Flash | Off-peak | $0.15 | $0.003 | $0.60 |
deepseek-flash / DeepSeek-V4.1-Flash | Peak | $0.30 | $0.006 | $1.20 |
deepseek-v4-pro / DeepSeek-V4-Pro-0813 | Off-peak | $0.66 | $0.022 | $1.98 |
deepseek-v4-pro / DeepSeek-V4-Pro-0813 | Peak | $1.32 | $0.044 | $3.96 |
Peak corresponde a 01:00–04:00 y 06:00–10:00 UTC de lunes a viernes, salvo festivos oficiales chinos; el resto es off-peak. El registro de cambios del 10 de septiembre confirma que deepseek-flash llama ahora a V4.1 Flash y que los nombres antiguos deepseek-v4-flash se redirigen temporalmente a ella.
Catálogo público de BetterToken
| ID de BetterToken / correspondencia actual | Tipos de endpoint | Entrada | Caché | Salida |
|---|---|---|---|---|
deepseek-flash / Flash más reciente, ahora V4.1 Flash | Anthropic, OpenAI | $0.132 | $0.00264 | $0.528 |
deepseek-pro / Pro más reciente, ahora V4-Pro-0813 | OpenAI | $0.5808 | $0.01936 | $1.7424 |
deepseek-v4-pro-0813 / V4-Pro-0813 | Anthropic, OpenAI | $0.5896 | $0.0176 | $1.7644 |
deepseek-pro es algo más barato, pero el catálogo solo le asigna el endpoint OpenAI. Un nombre o precio parecido no lo hace válido para Anthropic Messages. Para Pro mediante BetterToken, el ID que debe validarse es deepseek-v4-pro-0813, que sí declara soporte Anthropic.
Ejemplo con 1 millón de tokens de entrada sin caché y 200.000 de salida, sin búsqueda web ni reintentos:
- Flash: unos $0.27 en DeepSeek off-peak, $0.54 en peak y $0.2376 con la tarifa de catálogo de BetterToken.
- Pro: unos $1.056 en DeepSeek off-peak, $2.112 en peak y $0.9425 con el ID Pro compatible con Anthropic de BetterToken.
Son cifras del catálogo del 27 de septiembre de 2026, no una promesa de que BetterToken sea siempre más barato. El contexto, las herramientas, las búsquedas, los reintentos y futuros cambios de precio alteran la factura.
Evalúa la ruta de BetterToken sin inventar el mapping
El catálogo público de BetterToken marca deepseek-flash y deepseek-v4-pro-0813 como compatibles con Anthropic, mientras que deepseek-pro solo admite OpenAI. Eso permite comparar precios e identificar ID candidatos, pero no confirma por sí solo un mapping de Claude Code.
La guía actual de BetterToken para Claude Code documenta https://bettertoken.ai sin /v1, la autenticación, el reinicio y mappings para Claude, Kimi y GLM. No ofrece un perfil específico de DeepSeek. Además, para el provider Claude indica que no se deben definir manualmente ANTHROPIC_MODEL ni ANTHROPIC_DEFAULT_*_MODEL. No deduzcas ni guardes un mapping de DeepSeek solo a partir del catálogo de precios.
Si el Setup actual de BetterToken o una documentación posterior muestra un perfil DeepSeek, usa el ID exacto que aparezca y repite la tarea de solo lectura y el SDK smoke test anteriores. Para Pro, considera únicamente deepseek-v4-pro-0813, que declara Anthropic; no lo sustituyas por deepseek-pro, limitado a OpenAI. Hasta que el mapping específico esté documentado o confirmado en tu cuenta, el endpoint directo de DeepSeek es la configuración conocida.
Para evaluar esa ruta, consulta primero los precios actuales y después crea una cuenta y una API Key.
Qué ruta elegir
- Desarrollo habitual: endpoint directo de DeepSeek con
deepseek-flash[1m]; coincide con el ejemplo oficial y mantiene bajo el coste de las iteraciones. - Trabajo complejo y valioso: hilo principal y Opus en
deepseek-v4-pro; Sonnet, Haiku y subagentes en Flash. Descarta un fallback antes de ampliar el uso. - Un solo saldo o varios proveedores: evalúa BetterToken solo cuando el Setup actual muestre un perfil DeepSeek. Usa
supported_endpoint_typescomo filtro inicial y confirma después el mapping, el ID exacto y el precio del día. - Bloques exclusivos de Anthropic o paridad de comportamiento: usa un modelo Claude. La compatibilidad de transporte no garantiza comportamiento ni herramientas idénticas.
Antes de usarlo en un repositorio importante, cierra el circuito: versión visible, clave no mostrada, Base URL exacta, tarea de lectura correcta e identidad del modelo confirmada con los datos disponibles o marcada expresamente como no confirmada. Así podrás diagnosticar con rapidez cualquier cambio posterior de alias, mapeo o precio.