Transformar LM Studio en un servidor de la API de OpenAI (2026)
En LM Studio, abre la pestaña Developer y activa el interruptor Start server: el servidor escucha en el puerto 1234 y expone endpoints compatibles con OpenAI (/v1/chat/completions, /v1/responses, /v1/embeddings, /v1/models). Cualquier cliente OpenAI funciona simplemente cambiando la dirección base. Por defecto, no requiere autenticación y solo escucha en localhost: los tokens de API y el acceso de red se configuran en Server Settings.
LM Studio no es solo una interfaz de chat: su servidor local reemplaza la API de OpenAI para tus scripts, editores de código y agentes, sin enviar una línea de texto al exterior. Esta guía cubre la activación, cada ajuste del servidor, el acceso desde la red con autenticación, la carga de modelos bajo demanda y las limitaciones reales de un único equipo, teniendo en cuenta los cambios de la versión 0.4.
#Lo que obtienes
Al final de esta guía, dispondrás de una dirección http://localhost:1234/v1 que cualquier SDK de OpenAI (Python, JavaScript, C#), LangChain o una herramienta de código como Cline o Continue puede usar en lugar de la API de OpenAI. El servidor también ofrece una API nativa en /api/v1 (chat con estado, carga y descarga de modelos) y endpoints compatibles con Anthropic. Todo permanece en tu máquina: el modelo, las peticiones y las respuestas no salen de tu equipo, siempre que no lo expongas tú mismo en la red.
#1. Iniciar el servidor
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
- 01Abre la pestaña DeveloperEn LM Studio, la pestaña Developer agrupa el servidor, sus registros y sus ajustes. El modelo a servir debe descargarse previamente.
- 02Activa Start serverActiva el interruptor Start server: el servidor se inicia en el puerto indicado en Server Settings, 1234 en los ejemplos de la documentación.
- 03O inicia desde la línea de comandosDesde un terminal, el comando lms server start arranca el mismo servidor, sin abrir la interfaz.
- 04Verifica la lista de modelosConsulta /v1/models para confirmar que el servidor responde y ver los identificadores de modelos que debes usar en tus solicitudes.
#2. Los ajustes del servidor, uno por uno
Los ajustes se encuentran en Developer, Server Settings. Determinan quién puede llamar al servidor y qué pueden hacer que ejecute los clientes. La mayoría de los problemas de integración provienen de uno de estos interruptores, casi siempre del de red o del de CORS.
| Ajuste | Rol | Recomendación |
|---|---|---|
| Server Port | Puerto de escucha del servidor (1234 en la documentación) | Cámbialo si el puerto ya está en uso |
| Require Authentication | Requiere un token de API válido en el encabezado Authorization | Actívalo en cuanto el servidor deje de estar limitado a localhost. |
| Serve on Local Network | Hace accesible el servidor a otros dispositivos de la red local | Deshabilitado por defecto; combinar con autenticación |
| Allow per-request MCPs | Permite a los clientes usar servidores MCP remotos efímeros | Déjalo desactivado salvo que tengas una necesidad concreta. |
| Allow calling servers from mcp.json | Permite a los clientes usar los servidores MCP definidos en LM Studio | Requiere autenticación; arriesgado si un MCP accede a tus archivos |
| Enable CORS | Permite aplicaciones web de otros orígenes | Solo para una aplicación web o algunas extensiones |
| Just in Time Model Loading | Carga los modelos a demanda, en el momento de la solicitud | Práctico con herramientas externas; ver la sección dedicada |
| Auto Unload Unused JIT Models | Descarga de la memoria los modelos JIT que han dejado de utilizarse | Libera la memoria |
| Only Keep Last JIT Loaded Model | Solo conserva el último modelo cargado bajo demanda | Útil en tarjetas con VRAM limitada |
#3. Probar con curl
Una primera llamada de comprobación basta para validar el servidor. En las peticiones, el campo model debe contener el identificador del modelo tal como aparece en LM Studio, y no un nombre genérico como local-model: la documentación lo recuerda en su ejemplo curl.
La respuesta es un JSON en formato OpenAI: choices[0].message.content contiene el texto. Si el campo model es incorrecto, o si la carga bajo demanda está desactivada y el modelo no está cargado, la solicitud falla: verifica primero el identificador devuelto por /v1/models.
#4. Llamar desde Python
Se utiliza el SDK openai cambiando únicamente la dirección base: es la modificación que muestra la documentación de LM Studio. El SDK requiere una clave; mientras la autenticación esté desactivada, LM Studio no la controla, y si activas la autenticación, la clave se convierte en tu token de API.
El streaming funciona como en OpenAI: no hay cambios del lado del cliente para mostrar los tokens en directo. Para los agentes y editores, LM Studio también implementa el endpoint /v1/responses, presentado más abajo.
#¿Qué API elegir: OpenAI, Anthropic o nativa?
LM Studio expone tres familias de endpoints. Los endpoints compatibles con OpenAI cubren modelos, respuestas, chat, embeddings y completaciones. Los endpoints compatibles con Anthropic aceptan el formato de mensajes de Anthropic. Desde la versión 0.4.0, la API nativa /api/v1 añade funciones propias de LM Studio: chat con estado, carga y retirada de modelos de la memoria, descarga de modelos y ajuste del contexto por solicitud.
| Necesidad | Endpoint | Nota |
|---|---|---|
| Reemplazar la API de OpenAI en una herramienta existente | /v1/chat/completions | Compatibilidad con streaming y herramientas personalizadas |
| Agente o cliente de tipo Codex | /v1/responses | Chat con estado y MCP disponibles |
| Embeddings para un RAG | /v1/embeddings | Modelo de embeddings cargado previamente |
| Clientes que usan el formato Anthropic | Endpoints compatibles con Anthropic | Mismo servidor, otro formato de mensajes |
| Cargar un modelo, retirarlo de la memoria y descargarlo | /api/v1/models/* | API nativa, recomendada por LM Studio desde 0.4.0 |
| Fijar el contexto en la solicitud | /api/v1/chat | Único punto de entrada que acepta el contexto por solicitud |
#6. Varios modelos: carga bajo demanda y TTL
Con la carga bajo demanda (JIT, por Just in Time), la primera llamada a un modelo lo carga en memoria, y /v1/models enumera todos los modelos descargados, no solo los cargados. Sin JIT, /v1/models solo devuelve los modelos ya cargados y debes cargar el modelo antes de llamarlo. Este modo es ideal cuando una herramienta como Zed, Cline o Continue elige por sí misma su modelo.
- TTL por defecto
- Un modelo cargado bajo demanda se libera de la memoria después de 60 minutos sin solicitudes.
- TTL por solicitud
- Agrega un campo ttl (en segundos) en la solicitud; 300 corresponde a 5 minutos.
- TTL para lms load
- Los modelos cargados con lms load no tienen TTL por defecto: usa la opción --ttl.
- Auto-Evict
- Activado por defecto: solo un modelo cargado a demanda permanece en memoria a la vez. Desactívalo para mantener varios.
#7. Exponer el servidor en red, con autenticación
Para que otro equipo de la red acceda a tu servidor, activa Serve on Local Network en Server Settings o inicia el servidor con la dirección de escucha 0.0.0.0. El servidor deja entonces de escuchar únicamente en localhost: la documentación advierte que vincularlo a cualquier dirección distinta de 127.0.0.1 lo expone más allá de la máquina y recomienda activar la autenticación.
A diferencia de una creencia común, LM Studio sabe autenticar las solicitudes. Por defecto, no requiere autenticación; al activar el interruptor en Server Settings, solo acepta solicitudes con un token de API válido, creado en Manage Tokens con permisos seleccionados. El token solo se muestra al crearlo: cópialo inmediatamente. Esta función requiere LM Studio 0.4.0 o una versión más reciente.
Para acceder desde Internet, no expongas el puerto: utiliza una VPN o un proxy inverso con TLS. El principio es el mismo que el de un servidor Ollama, detallado en la guía de seguridad. Una alternativa más sencilla para usar un modelo de otra máquina es LM Link, que sirve un modelo de un dispositivo remoto como si estuviera cargado localmente.
#Sin interfaz gráfica: llmster y arranque automático
Desde la versión 0.4.0, el núcleo de LM Studio está disponible como un demonio autónomo, llmster, diseñado para funcionar sin interfaz en un servidor Linux, una máquina con GPU o un ordenador local. Se instala con una línea de comandos, se inicia con lms daemon up y luego el servidor se pone en marcha con lms server start. En un equipo con interfaz, también puedes marcar, en los ajustes de la aplicación, la opción que inicia el servidor al iniciar sesión: al cerrar la aplicación, esta se minimiza en la bandeja del sistema y el servidor sigue funcionando.
#9. Rendimiento: lo que realmente importa
- Transferencia de cómputo a la GPU
- Carga tantas capas como sea posible en la VRAM. Un modelo que necesita trasladar parte de sus datos a la RAM del sistema pierde la mayor parte de su velocidad de generación.
- Context Length
- Elige el contexto que necesitas, no el máximo: el caché de contexto ocupa VRAM y aumenta con la longitud.
- Max Concurrent Predictions
- Número de solicitudes procesadas simultáneamente por un modelo; más allá de eso, esperan en cola.
- Unified KV Cache
- Activado por defecto: los recursos no se comparten en partes fijas entre solicitudes, lo que permite tamaños de solicitud variables.
La guía sobre Flash Attention y la dedicada a la ventana de contexto detallan los efectos sobre la memoria. Para un alto rendimiento de procesamiento con múltiples usuarios, un servidor dedicado sigue siendo más adecuado: la guía sobre vLLM muestra cómo desplegarlo.
#Límites y alternativas: lo que ha cambiado
Varias limitaciones que se citan a menudo ya no son ciertas, y corregir esa información cambia la elección de la herramienta. La tabla contrasta lo que todavía se lee con lo que indica la documentación actual.
| Idea errónea | Realidad |
|---|---|
| Sin autenticación | Tokens de API disponibles desde la 0.4.0, desactivados por defecto |
| Las consultas se ejecutan secuencialmente | La versión 0.4.0 procesa solicitudes paralelas al mismo modelo (procesamiento continuo por lotes), hasta el límite de Max Concurrent Predictions; las siguientes esperan |
| Licencia comercial obligatoria para el trabajo | Gratuito en casa y en el trabajo desde julio de 2025, según la declaración de LM Studio |
| Imposible sin interfaz gráfica | llmster funciona en modo demonio, sin interfaz gráfica |
| Un solo equipo, sin compartir | Serve on Local Network y LM Link permiten dar servicio a otros dispositivos |
Siguen existiendo limitaciones reales: LM Studio está diseñado para un equipo, no para un clúster; el batching continuo no sustituye a un servidor pensado para decenas de usuarios, como vLLM; y las actualizaciones de la aplicación pueden cambiar su comportamiento, lo que obliga a mantener una versión fija en una máquina que presta un servicio. Para elegir entre LM Studio y sus competidores, compáralos antes de comprometerte.
- Desplegar vLLM en producción
- Ollama vs LM Studio vs Jan vs GPT4All
- LM Studio en Linux
- Conectar Cline a un modelo local
- Fuente: documentación LM Studio, servidor de API local
- Fuente: documentación LM Studio, configuración del servidor
- Fuente: documentación LM Studio, autenticación
- Fuente: documentación LM Studio, compatibilidad con OpenAI
- Fuente: anuncio de LM Studio 0.4.0
¿Cómo activar el servidor API en LM Studio?+
¿Cómo hacer que el servidor LM Studio sea accesible desde otro PC?+
¿Tiene LM Studio autenticación para su API?+
¿LM Studio procesa varias solicitudes en paralelo?+
¿Qué identificador poner en el campo model?+
¿Es LM Studio gratuito para uso empresarial?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.