Las herramientas de programación agrícola son potentes, pero normalmente tienen un costo. Hasta hace poco, utilizar Claude Code implicaba enviar cada solicitud a través de la API de Anthropic y pagar por cada token utilizado.
Eso ya no es estrictamente necesario.
Recientemente, Ollama incorporó compatibilidad para ejecutar Claude Code de manera local utilizando modelos de código abierto. Es una excelente opción para usuarios de Windows, Linux y computadoras Mac con procesadores Intel. Sin embargo, en Apple Silicon —las Mac con procesadores de la serie M— Ollama ofrece beneficios limitados porque no es compatible con modelos MLX.
En Apple Silicon, los modelos MLX son considerablemente más rápidos y eficientes que los modelos GGUF. Esto significa que Ollama no puede aprovechar por completo las capacidades de hardware de los chips M1, M2 o M3.
Para resolver este problema, podemos utilizar LiteLLM con una configuración mínima para hacer que Claude Code sea compatible con LM Studio. Esto nos permite ejecutar modelos MLX de alto rendimiento localmente en Apple Silicon.
En este artículo, mostraré cómo ejecutar Claude Code localmente en macOS utilizando:
- LM Studio para la inferencia local de modelos LLM.
- Qwen3-Coder-30B, un potente modelo de código abierto especializado en programación.
- LiteLLM como puente entre los protocolos de Anthropic y OpenAI.
- Cero uso de servicios en la nube y cero costos de API.
Esta configuración funciona de manera confiable en macOS con Apple Silicon, se ejecuta completamente sin conexión a Internet y no requiere Docker.
Si utiliza Windows o Linux, puede ejecutar Claude Code localmente con Ollama sin necesidad de configurar un proxy de LiteLLM. Para esas plataformas, puedes consultar la documentación oficial:
Claude Code - Ollama
Claude Code es la herramienta de programación ágil de Anthropic, capaz de leer, modificar y ejecutar código dentro de nuestro directorio de trabajo. Abrir…
docs.ollama.com
Qué vamos a construir
Claude Code espera comunicarse mediante la API de Mensajes de Anthropic, mientras que la mayoría de los entornos locales de ejecución de modelos LLM ofrecen una API compatible con OpenAI.
La idea principal consiste en incorporar una capa ligera de traducción para que Claude Code pueda trabajar con un modelo local.
La arquitectura final tendrá estructura esta:
Pulsa Enter o haz clic para ver la imagen en tamaño completo.
Imagen de Manjunath Janardhan. Generada con Google Nano Banana Pro.
Una vez completada esta configuración, Claude Code se comportará exactamente igual que cuando utiliza la nube de Anthropic, con la diferencia de que todo se ejecutará directamente en nuestra computadora.
Requisitos previos
- macOS, preferiblemente con Apple Silicon.
- Python 3.10 o una versión posterior.
- Node.js, necesario para Claude Code.
- LM Studio instalado.
- Memoria RAM suficiente para ejecutar un modelo de 30.000 millones de parámetros.
Paso 1: configurar LM Studio
Estudio Abre LM.
Descarga y carga el siguiente modelo:
Nombre del modelo:
qwen/qwen3-codificador-30b
Activa el servidor local.
Confirme que el servidor se está ejecutando en la siguiente dirección:
http://localhost:1234/v1
Pulsa Enter o haz clic para ver la imagen en tamaño completo.
Imagen de Manjunath Janardhan. Servidor local de LM Studio ejecutando el modelo Qwen Coder 30B.
Este punto final proporciona una API de finalización de chat compatible con OpenAI, que será utilizada por LiteLLM.
Paso 2: crear un entorno virtual de Python
Cree un entorno limpio para LiteLLM:
Intento
mkdir ~/litellm
cd ~/litellm
python3 -m venv venv
source venv/bin/activate
Instale LiteLLM con compatibilidad para proxy:
Intento
pip install "litellm[proxy]"
Paso 3: configurar LiteLLM
Crea un archivo llamado config.yaml:
YAML
model_list:
- model_name: qwen3-coder
litellm_params:
model: openai/qwen/qwen3-coder-30b
api_base: http://localhost:1234/v1
api_key: lmstudio
# Claude Code starts with this default model internally
- model_name: claude-haiku-4-5-20251001
litellm_params:
model: openai/qwen/qwen3-coder-30b
api_base: http://localhost:1234/v1
api_key: lmstudio
litellm_settings:
drop_params: true
¿Por qué es importante esta configuración?
Alias del modelo
Claude Code no gestiona de manera confiable los nombres de modelos que contienen barras inclinadas.
Por este motivo, exponemos un alias limpio, qwen3-coder, y lo vinculamos internamente con el identificador exacto del modelo utilizado por LM Studio.
Asignación del modelo predeterminado de Claude
Claude Code se inicia internamente con el modelo:
claude-haiku-4-5-20251001
Asignar este nombre al modelo local nos evita errores durante el inicio.
drop_params: true
Claude Code envía parámetros específicos de Anthropic que los modelos locales no admiten.
LiteLLM elimina estos parámetros de forma segura antes de enviar la solicitud al modelo local.
Paso 4: iniciar el proxy de LiteLLM
Desde el mismo directorio, ejecuta:
Intento
litellm --config config.yaml --port 4000
Deberías ver una salida similar a la siguiente:
Pulsa Enter o haz clic para ver la imagen en tamaño completo.
Imagen de Manjunath Janardhan. LiteLLM ejecutándose localmente.
Paso 5: verificar la configuración
Antes de utilizar Claude Code, compruebe que LiteLLM pueda comunicarse correctamente con LM Studio:
Intento
curl http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer test" \
-d '{
"model": "qwen3-coder",
"messages": [
{"role": "user", "content": "Say hello"}
]
}'
Deberías recibir una respuesta válida de Qwen3-Coder-30B.
JSON
{"id":"chatcmpl-kchd8jwscaafs1wi0uyqsq","created":1769012041,
"model":"qwen/qwen3-coder-30b","object":"chat.completion",
"system_fingerprint":"qwen/qwen3-coder-30b",
"choices":[{"finish_reason":"stop","index":0,
"message":{"content":"Hello! It's nice to meet you!","role":"assistant"}}],
"usage":{"completion_tokens":10,"prompt_tokens":10,"total_tokens":20}}%
manjunm4@Mac medium %
Paso 6: instalar y ejecutar Claude Code
Instala Claude Código:
Intento
npm install -g @anthropic-ai/claude-code
También puedes instalarlo en macOS o Linux utilizando:
Intento
curl -fsSL https://claude.ai/install.sh | bash
En Windows:
PowerShell
irm https://claude.ai/install.ps1 | iex
Configure Claude Code para que utilice LiteLLM:
Intento
export ANTHROPIC_AUTH_TOKEN=litellm
export ANTHROPIC_BASE_URL=http://localhost:4000
Ejecuta Claude Code con el modelo local:
Intento
claude --model qwen3-coder
Pulsa Enter o haz clic para ver la imagen en tamaño completo.
Imagen de Manjunath Janardhan. La interfaz de línea de comandos de Claude ejecutando un modelo local.
Ahora deberías ver que Claude Code se inicia normalmente y responde a tus instrucciones.
Qué puedes hacer con esta configuración
Con esta configuración, Claude Code puede:
- Leer y modificar bases de código compuestas por múltiples archivos.
- Ejecutar pruebas y comandos del sistema.
- Realizar refactorizaciones.
- Implementar nuevas funcionalidades.
- Depurar compilaciones que presenten errores.
Todo esto sin enviar un solo token a la nube.
Notas sobre el rendimiento
Los modelos locales son más lentos que los modelos Claude alojados en la nube y dependen completamente de los recursos de nuestra computadora.
En mi caso, utilizando una Mac con procesador M4 Pro y 64 GB de memoria unificada, el rendimiento es bueno. Para obtener un mejor rendimiento en equipos con menos recursos, podemos probar modelos más pequeños.
Qwen3-Coder-30B ofrece un rendimiento especialmente bueno en:
- Refactorización de código.
- Generación de pruebas.
- Cambios a escala de repositorio.
Reflexiones finales
El flujo de trabajo agéntico de Claude Code no está vinculado obligatoriamente a la nube de Anthropic. Únicamente necesita una implementación compatible con el contrato de la API de Mensajes de Anthropic.
Al combinar LM Studio, LiteLLM y un potente modelo de programación de código abierto, podemos ejecutar toda la experiencia localmente, de manera privada y sin costos de API.
Esta configuración reduce la barrera de entrada a la programación agrícola y hace que sea una opción práctica para nuestro desarrollo de software cotidiano.
Gracias por leer Código en Casa.
Si esto te a ayudado y te sumo algo Dale un 👏 , compártelo con tu red o dejame un comentario para saber tu opinión.