Intermédiaire 11 minLM Studio

Transformer LM Studio en serveur API OpenAI (2026)

Réponse directe

Dans LM Studio, ouvrez l'onglet Developer et activez l'interrupteur Start server : le serveur écoute sur le port 1234 et expose des endpoints compatibles OpenAI (/v1/chat/completions, /v1/responses, /v1/embeddings, /v1/models). Tout client OpenAI fonctionne en changeant simplement l'adresse de base. Par défaut, il n'exige aucune authentification et n'écoute que sur localhost : les jetons d'API et l'accès réseau se règlent dans Server Settings.

LM Studio n'est pas qu'une interface de chat : son serveur local remplace l'API d'OpenAI pour vos scripts, vos éditeurs de code et vos agents, sans envoyer une ligne de texte à l'extérieur. Ce guide couvre l'activation, chaque réglage du serveur, l'accès depuis le réseau avec authentification, le chargement à la demande des modèles et les limites réelles d'un poste unique, en tenant compte des changements de la version 0.4.

Par Mohamed Meguedmi·Màj 2026-09-30·Testé sur Windows, macOS, Linux

#Ce que vous obtenez

À la fin de ce guide, vous disposez d'une adresse http://localhost:1234/v1 que n'importe quel SDK OpenAI (Python, JavaScript, C#), LangChain ou un outil de code comme Cline ou Continue peut utiliser à la place de l'API d'OpenAI. Le serveur propose aussi une API native sous /api/v1 (chat à état, chargement et téléchargement de modèles) et des endpoints compatibles Anthropic. Tout reste sur votre machine : le modèle, les requêtes et les réponses ne quittent pas votre poste, tant que vous ne l'exposez pas vous-même sur le réseau.

#1. Démarrer le serveur

Le kit IA Locale

Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.

  • Espace en ligne à vie
  • PDF + fichiers
  • Mises à jour à vie
  1. 01
    Ouvrez l'onglet Developer
    Dans LM Studio, l'onglet Developer regroupe le serveur, ses journaux et ses réglages. Le modèle à servir doit être téléchargé au préalable.
  2. 02
    Activez Start server
    Basculez l'interrupteur Start server : le serveur démarre sur le port indiqué dans Server Settings, 1234 dans les exemples de la documentation.
  3. 03
    Ou démarrez en ligne de commande
    Depuis un terminal, la commande lms server start lance le même serveur, sans ouvrir l'interface.
  4. 04
    Vérifiez la liste des modèles
    Interrogez /v1/models pour confirmer que le serveur répond et voir les identifiants de modèles à utiliser dans vos requêtes.
Démarrer le serveur depuis le terminal
lms server start

#2. Les réglages du serveur, un par un

Les réglages se trouvent dans Developer, Server Settings. Ils déterminent qui peut appeler le serveur et ce que les clients peuvent lui faire faire. La plupart des problèmes d'intégration viennent d'un de ces interrupteurs, le plus souvent celui du réseau ou de CORS.

Server Settings de LM Studio (documentation officielle)
RéglageRôleRecommandation
Server PortPort d'écoute du serveur (1234 dans la documentation)Changez-le si le port est déjà pris
Require AuthenticationExige un jeton d'API valide dans l'en-tête AuthorizationActivez-le dès que le serveur sort de localhost
Serve on Local NetworkRend le serveur accessible aux autres appareils du réseau localDésactivé par défaut ; à combiner avec l'authentification
Allow per-request MCPsAutorise les clients à utiliser des serveurs MCP distants éphémèresLaissez désactivé sauf besoin précis
Allow calling servers from mcp.jsonAutorise les clients à utiliser les serveurs MCP définis dans LM StudioExige l'authentification ; risqué si un MCP accède à vos fichiers
Enable CORSAutorise les applications web d'autres originesSeulement pour une application web ou certaines extensions
Just in Time Model LoadingCharge les modèles à la demande, au moment de la requêtePratique avec des outils tiers ; voir la section dédiée
Auto Unload Unused JIT ModelsDécharge les modèles JIT devenus inutilisésLibère la mémoire
Only Keep Last JIT Loaded ModelNe garde que le dernier modèle chargé à la demandeUtile sur une carte à VRAM limitée
!
Un réglage qui expose vos fichiers
L'option qui autorise l'appel des serveurs de mcp.json donne aux clients de l'API l'accès aux outils que vous y avez définis. La documentation la déconseille sans authentification et exige d'ailleurs que Require Authentication soit activée. Ne l'activez que si vous connaissez la portée de chaque serveur MCP déclaré.

#3. Tester avec curl

Un premier appel de contrôle suffit pour valider le serveur. Dans les requêtes, le champ model doit contenir l'identifiant du modèle tel qu'il apparaît dans LM Studio, et non un nom générique comme local-model : la documentation le rappelle dans son exemple curl.

Liste des modèles
curl http://localhost:1234/v1/models
Complétion de chat
curl http://localhost:1234/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "IDENTIFIANT-DU-MODELE",
    "messages": [
      {"role":"system","content":"Tu es concis."},
      {"role":"user","content":"Capitale du Portugal ?"}
    ],
    "temperature": 0.2
  }'

La réponse est un JSON au format OpenAI : choices[0].message.content contient le texte. Si le champ model est faux, ou si le chargement à la demande est désactivé et que le modèle n'est pas chargé, la requête échoue : vérifiez d'abord l'identifiant renvoyé par /v1/models.

#4. Appeler depuis Python

Le SDK openai s'utilise en changeant uniquement l'adresse de base : c'est la modification que montre la documentation de LM Studio. Le SDK exige une clé ; tant que l'authentification est désactivée, LM Studio ne la contrôle pas, et si vous activez l'authentification, la clé devient votre jeton d'API.

Via le SDK openai
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",  # ignorée sans authentification ; votre jeton sinon
)

resp = client.chat.completions.create(
    model="IDENTIFIANT-DU-MODELE",
    messages=[
        {"role": "system", "content": "Réponds en 1 phrase."},
        {"role": "user",   "content": "Qu'est-ce qu'un LLM ?"},
    ],
    temperature=0.3,
    stream=True,
)

for chunk in resp:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)

Le streaming fonctionne comme chez OpenAI : aucun changement côté client pour afficher les tokens en direct. Pour les agents et les éditeurs, LM Studio implémente aussi l'endpoint /v1/responses, présenté plus bas.

#Quelle API choisir : OpenAI, Anthropic ou native

LM Studio expose trois familles d'endpoints. Les endpoints compatibles OpenAI couvrent les modèles, les réponses, le chat, les embeddings et les complétions. Des endpoints compatibles Anthropic acceptent le format des messages d'Anthropic. Depuis la version 0.4.0, l'API native /api/v1 ajoute des fonctions propres à LM Studio : chat à état, chargement, déchargement et téléchargement de modèles, et réglage du contexte par requête.

Endpoints selon le besoin
BesoinEndpointRemarque
Remplacer l'API OpenAI dans un outil existant/v1/chat/completionsStreaming et outils personnalisés pris en charge
Agent ou client de type Codex/v1/responsesChat à état et MCP disponibles
Embeddings pour un RAG/v1/embeddingsModèle d'embeddings chargé au préalable
Clients qui parlent le format AnthropicEndpoints compatibles AnthropicMême serveur, autre format de messages
Charger, décharger, télécharger un modèle/api/v1/models/*API native, recommandée par LM Studio depuis 0.4.0
Fixer le contexte dans la requête/api/v1/chatSeul endpoint qui accepte le contexte par requête

#6. Plusieurs modèles : chargement à la demande et TTL

Avec le chargement à la demande (JIT, pour Just in Time), le premier appel à un modèle le charge en mémoire, et /v1/models liste tous les modèles téléchargés, pas seulement ceux qui sont chargés. Sans JIT, /v1/models ne renvoie que les modèles déjà chargés, et vous devez charger le modèle avant de l'appeler. Ce mode est idéal quand un outil comme Zed, Cline ou Continue choisit lui-même son modèle.

TTL par défaut
Un modèle chargé à la demande est déchargé après 60 minutes sans requête.
TTL par requête
Ajoutez un champ ttl (en secondes) dans la requête ; 300 correspond à 5 minutes.
TTL pour lms load
Les modèles chargés avec lms load n'ont pas de TTL par défaut : utilisez l'option --ttl.
Auto-Evict
Activé par défaut : un seul modèle chargé à la demande reste en mémoire à la fois. Désactivez-le pour en garder plusieurs.
!
Deux modèles, deux fois les poids
Auto-Evict décharge le précédent avant d'en charger un nouveau. Si vous le désactivez, les poids s'additionnent : un modèle de 8 milliards de paramètres en Q4 (environ 5 Go) et un de 9 milliards (environ 6 Go) occupent ensemble plus de 10 Go avant même le contexte. Surveillez la VRAM.

#7. Exposer le serveur sur le réseau, avec authentification

Pour qu'un autre poste du réseau appelle votre serveur, activez Serve on Local Network dans Server Settings, ou démarrez avec l'adresse d'écoute 0.0.0.0. Le serveur cesse alors d'écouter sur localhost seul : la documentation avertit que tout bind autre que 127.0.0.1 l'expose au-delà de la machine, et recommande d'activer l'authentification.

Écouter sur toutes les interfaces IPv4
lms server start --bind 0.0.0.0
Client distant
curl http://192.168.1.42:1234/v1/models

Contrairement à une idée répandue, LM Studio sait authentifier les requêtes. Par défaut, il n'exige aucune authentification ; en activant l'interrupteur dans Server Settings, il n'accepte plus que les requêtes portant un jeton d'API valide, créé dans Manage Tokens avec des permissions choisies. Le jeton n'est affiché qu'à la création : copiez-le immédiatement. Cette fonction demande LM Studio 0.4.0 ou une version plus récente.

Appel avec jeton d'API
curl http://192.168.1.42:1234/v1/models \
  -H "Authorization: Bearer $LM_API_TOKEN"

Pour un accès depuis Internet, ne publiez pas le port : passez par un VPN ou un reverse proxy avec TLS. Le principe est identique à celui d'un serveur Ollama, détaillé dans le guide de sécurisation. Une alternative plus simple pour utiliser un modèle d'une autre machine est LM Link, qui sert un modèle d'un appareil distant comme s'il était chargé localement.

#Sans interface graphique : llmster et démarrage automatique

Depuis la version 0.4.0, le cœur de LM Studio existe sous forme de démon autonome, llmster, conçu pour tourner sans interface sur un serveur Linux, une machine de GPU ou un poste local. Il s'installe avec une ligne de commande, se lance avec lms daemon up, puis le serveur démarre avec lms server start. Sur un poste avec interface, vous pouvez aussi cocher, dans les réglages de l'application, l'option qui lance le serveur à l'ouverture de session : fermer l'application la réduit alors dans la barre système et le serveur continue.

Installer et démarrer llmster (Linux et Mac)
curl -fsSL https://lmstudio.ai/install.sh | bash
lms daemon up
lms server start

#9. Performance : ce qui compte vraiment

GPU offload
Chargez le plus de couches possible dans la VRAM. Un modèle qui déborde vers la mémoire centrale perd l'essentiel de son débit.
Context Length
Choisissez le contexte dont vous avez besoin, pas le maximum : le cache du contexte occupe de la VRAM et augmente avec la longueur.
Max Concurrent Predictions
Nombre de requêtes traitées en même temps par un modèle ; au-delà, elles attendent en file.
Unified KV Cache
Activé par défaut : les ressources ne sont pas partagées à parts fixes entre requêtes, ce qui permet des tailles de requêtes variables.

Le guide sur Flash Attention et celui sur la fenêtre de contexte détaillent les effets sur la mémoire. Pour du débit multi-utilisateurs important, un serveur dédié reste plus adapté : le guide sur vLLM montre le déploiement.

#Limites et alternatives : ce qui a changé

Plusieurs limites souvent citées ne sont plus vraies, et les corriger change le choix de l'outil. Le tableau confronte ce que l'on lit encore à ce que la documentation actuelle indique.

Idées reçues et réalité (documentation LM Studio, 2026)
Idée reçueRéalité
Pas d'authentificationJetons d'API disponibles depuis la 0.4.0, désactivés par défaut
Les requêtes s'exécutent en séquenceLa 0.4.0 traite des requêtes parallèles au même modèle (batching continu), jusqu'à Max Concurrent Predictions ; les suivantes attendent
Licence commerciale obligatoire au travailGratuit à la maison et au travail depuis juillet 2025, d'après l'annonce de LM Studio
Impossible sans interface graphiquellmster fonctionne en démon, sans GUI
Un seul poste, pas de partageServe on Local Network et LM Link permettent de servir d'autres appareils

Restent de vraies limites : LM Studio est fait pour un poste, pas pour un cluster ; le batching continu ne remplace pas un serveur pensé pour des dizaines d'utilisateurs, comme vLLM ; et les mises à jour de l'application peuvent changer un comportement, ce qui impose de figer la version sur une machine qui sert un service. Pour choisir entre LM Studio et ses concurrents, comparez-les avant de vous engager.

FAQ
Comment activer le serveur API dans LM Studio ?+
Ouvrez l'onglet Developer et basculez l'interrupteur Start server, ou lancez la commande lms server start dans un terminal. Le serveur écoute sur le port réglé dans Server Settings, 1234 dans la documentation. Testez-le avec curl http://localhost:1234/v1/models, qui renvoie les modèles disponibles ; si la liste est vide, chargez d'abord un modèle ou activez le chargement à la demande dans Server Settings.
Comment rendre le serveur LM Studio accessible depuis un autre PC ?+
Activez Serve on Local Network dans Server Settings, ou démarrez avec lms server start --bind 0.0.0.0. Le serveur écoute alors au-delà de localhost : activez aussi l'authentification par jeton d'API, car la documentation recommande cette précaution pour tout bind autre que 127.0.0.1. Depuis un autre poste, utilisez l'adresse IP de la machine et le même port, par exemple http://192.168.1.42:1234/v1.
LM Studio a-t-il une authentification pour son API ?+
Oui, depuis la version 0.4.0 : les jetons d'API se créent dans Manage Tokens et s'activent avec Require Authentication dans Server Settings. Par défaut, aucune authentification n'est exigée. Une fois activée, toutes les requêtes REST et celles des SDK doivent porter un jeton valide dans l'en-tête Authorization.
LM Studio traite-t-il plusieurs requêtes en parallèle ?+
Oui depuis la version 0.4.0, qui introduit les requêtes parallèles au même modèle avec batching continu. Le réglage Max Concurrent Predictions fixe le nombre de requêtes simultanées ; au-delà, les requêtes attendent. Pour un usage multi-utilisateurs intensif, avec des dizaines de requêtes simultanées, un serveur conçu pour cela comme vLLM reste plus adapté.
Quel identifiant mettre dans le champ model ?+
L'identifiant du modèle tel qu'il apparaît dans LM Studio, et non un nom générique. La requête /v1/models les liste. Avec le chargement à la demande activé, elle renvoie tous les modèles téléchargés ; sans lui, seulement ceux déjà chargés en mémoire. Copiez l'identifiant exact dans votre client, car une faute de frappe fait échouer la requête.
LM Studio est-il gratuit pour un usage en entreprise ?+
Oui : depuis le 8 juillet 2025, LM Studio est gratuit à la maison comme au travail, sans licence commerciale à demander, d'après l'annonce de l'éditeur. Des offres commerciales existent pour des besoins supplémentaires. Vérifiez les conditions d'utilisation en vigueur avant un déploiement, surtout si vous prévoyez d'utiliser les offres commerciales de l'éditeur.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.