Install LM Studio, open it once, run lms server start and ask http://localhost:1234/v1/models: if it answers with a list, the server works and, with the default settings, only your machine can reach it. Of the 5 runtimes we compare, it ships the most locked down in everything you can configure. It is also the one whose network behaviour nobody outside the company can check.
Both halves matter for the setup. The first tells you what to leave alone; the second tells you what you are taking on trust. This page goes through the install, the server, the checks and the network in that order, with the version LM Studio’s download service was serving on 25 September 2026, 0.4.25-1, and the lms command line as it stood in its public repository on 24 September 2026.
How to install LM Studio on Mac, Windows and Linux
There is one installer per system, plus a script for running it without a window.
| System | What you download | What it needs |
|---|---|---|
| macOS | LM-Studio-0.4.25-1-arm64.dmg |
Apple Silicon and macOS 14.0 or newer; 16 GB of memory recommended, 8 GB for smaller models and modest contexts. Intel Macs are not supported: the download service answers them with an error |
| Windows | LM-Studio-0.4.25-1-x64.exe, or the ARM64 build for Snapdragon X Elite machines |
On x64, a processor with AVX2. 16 GB of RAM and 4 GB of dedicated VRAM recommended |
| Linux | LM-Studio-0.4.25-1-x64.AppImage or LM-Studio-0.4.25-1-arm64.AppImage |
Ubuntu 20.04 or newer. No .deb and no .rpm. LM Studio itself says versions newer than 22 are not well tested |
| Any, without a window | curl -fsSL https://lmstudio.ai/install.sh | bash (Linux, Mac) or irm https://lmstudio.ai/install.ps1 | iex (Windows) |
Installs llmster, LM Studio’s model server as a background service, with no app to download. On Linux and Mac the script puts it in ~/.lmstudio/bin and adds that folder to your PATH |
File names as served by LM Studio’s download service for each system on 25 September 2026; requirements from its system requirements and headless pages, read the same day. The llmster script served that day installs version 0.0.25-1.
One name, two programs. Since July 2026 there is also LM Studio Bionic, a separate application for Windows x64 and macOS ARM64 only. Everything on this page is about LM Studio. If a download link has bionic in it, it is the other one.
Your first model in 3 steps, and GGUF or MLX
Inside the app it takes 3 steps and no terminal: find a model in the Discover tab, load it, and write to it in the Chat tab. The part worth thinking about is the format. LM Studio runs GGUF files through llama.cpp on Mac, Windows and Linux; on Apple Silicon it can also run MLX files through its own MLX engine, which is open source under the MIT licence. From the terminal, lms get --gguf or lms get --mlx narrows the search to one of the two; without either, the results match the engines you have installed.
Check the fit twice. Before you download, the model finder tells you which models fit your machine, using the real published file sizes at Q4_K_M, our quality floor, plus the memory the conversation itself takes. Before you load, lms load --estimate-only <model> prints LM Studio’s own memory estimate and loads nothing. The finder’s sizes are GGUF files; the MLX version of the same model is a different file, so on a Mac read the finder as the reference, not as the exact number.
How to start the LM Studio server: Developer tab or lms server start
In the app, the Developer tab has a Start server control. In a terminal:
lms server start
The lms command comes with the app, but you have to open LM Studio at least once before it works. After that, any lms command starts LM Studio in the background if it is not running.
The port is 1234, until you change it. Without --port, lms server start reuses the last port you used and falls back to 1234 only if there is none. If you once ran --port 3000, you are still on 3000. That behaviour is written in the public code of lms; the server behind it is closed.
To keep the server running without the window, the app has a setting to run the LLM server on login: closing the app then sends it to the system tray and the server keeps going, and LM Studio restores the server’s last state when it starts again. On a Linux machine without a screen, LM Studio documents a systemd unit that runs lms daemon up, loads a model with lms load and then runs lms server start. The unit goes in /etc/systemd/system/lmstudio.service and is checked with:
systemctl status lmstudio
How to check that the LM Studio server is running
3 checks, from the quickest to the most useful:
lms server status
curl http://localhost:1234/v1/models
lms ps
lms server status answers The server is running on port 1234. or The server is not running.; with --json it prints {"running":true,"port":1234}, which is what you want in a script. Behind it, lms asks the server for /lmstudio-greeting and waits 500 milliseconds for an answer that says it is LM Studio. lms status gives the same answer plus the models in memory.
The curl line is the one LM Studio uses in its own setup guide. What it lists depends on one setting: with just-in-time loading on, which is the default, /v1/models can list every model you have downloaded, not only the loaded ones. lms ps is the one that tells you what is actually in memory, with its path and size; lms ls lists what is on disk.
Models unload themselves, sometimes. A model loaded by a request stays for 60 minutes without requests and, by default, loading a second one that way unloads the first. A model you load with lms load has no timer: it stays until you run lms unload, or until the time you give it with --ttl, in seconds:
lms load <model> --ttl 3600
Point an OpenAI client at localhost:1234
Any tool that talks to the OpenAI API can talk to LM Studio if you change the base URL:
http://localhost:1234/v1
The server answers /v1/models, /v1/chat/completions, /v1/responses, /v1/completions and /v1/embeddings. It also speaks the Anthropic format on /v1/messages and has its own REST API under /api/v1. In the model field goes the key LM Studio shows in lms ls, or the name you set with lms load <model> --identifier my-model.
Serving on your network: bind 0.0.0.0, API tokens and CORS
Out of the box the server listens on 127.0.0.1:1234, asks for no password and has CORS switched off. That is the best starting point of the 5 runtimes we compare, and the setup consists mostly of not undoing it.
To let other machines in, the app has a Serve on Local Network setting and the terminal has:
lms server start --bind 0.0.0.0
lms also takes the address from the LMS_SERVER_HOST variable, and with any address other than 127.0.0.1 it warns you: Server will accept connections from the network. From that moment anyone who can reach port 1234 can use your models, because there is still no password. Turn it on first: Developer tab, Server Settings, Require Authentication, then Manage Tokens to create one. Each token has its own permissions, is shown once, and goes in the Authorization: Bearer header. Tokens need LM Studio 0.4.0 or newer.
CORS is the other door. lms server start --cors exists for web apps and some editor extensions, and the command line is blunt about it: CORS is enabled. This means any website you visit can use the LM Studio server. Use it only while you need it. One more setting depends on the token: letting API clients call the MCP servers in your mcp.json is only possible with authentication on, and LM Studio’s own documentation warns that some MCP servers can run code and read your local files.
Where LM Studio keeps models, chats and logs
| What | Where |
|---|---|
| Models | ~/.lmstudio/models/<publisher>/<model>/, changeable in the My Models tab |
| Chats, as plain JSON | ~/.lmstudio/conversations/ on Mac and Linux, %USERPROFILE%\.lmstudio\conversations on Windows |
| Presets from the Hub | ~/.lmstudio/hub (%USERPROFILE%\.lmstudio\hub on Windows) |
The lms command, when llmster installed it |
~/.lmstudio/bin |
Paths as published in LM Studio’s documentation, read on 25 September 2026.
LM Studio says nothing you type into a chat leaves your device, and it declares no encryption at rest for those JSON files: any program that can read your home folder can read every conversation. A GGUF file you downloaded elsewhere goes in with lms import <file.gguf>, still marked experimental.
For logs you do not need a file path. lms log stream shows the exact text going into and out of the model, lms log stream --source server shows the server’s own log, and --stats adds the prediction figures when there are any.
What LM Studio sends out on its own, and what nobody can check
By LM Studio’s own documentation and release notes, 2 connections leave without you asking. One is the check for app updates each time you open it on macOS or Windows; Linux has no built-in updater yet. The other is the check for new versions of its inference engines, which update themselves unless you turn that off in App Settings. Its privacy policy says what the update check carries: app version and build, operating system and your IP address.
Everything else waits for you. Searching in Discover and loading its catalogue stats call huggingface.co. The Hub needs you to sign in, web search needs a sign-in too, the cloud features need a paid plan, and LM Link only runs if you switch it on.
What LM Studio does not publish is a count: how many calls a day that adds up to. Our LM Studio: what it sends home and whether you can audit it sheet leaves its 24-hour strip empty for that reason: the number does not exist, which is not the same as zero. We found no documented switch for the update check.
The objection is fair. LM Studio says the application contains no telemetry, and chatting, documents and the local server work with no connection at all. We are not saying that is false. We are saying it is the vendor’s word: its terms, dated 23 August 2026, describe the code as a trade secret and forbid reverse engineering it, while making the app free for personal and internal business use. And everything on the sheet about the network was read on 0.4.21-2, the version of 25 August, not on 0.4.25-1. If you need a runtime whose calls you can count yourself, How to set up Ollama locally and see what it sends out has the number for Ollama: 30 a day with the app open.
The order that leaves you with a working and closed LM Studio:
- Install it for your system, open it once, and check
lms server status. - Pick the model with the model finder, confirm it with
lms load --estimate-only, and load it. - Test
curl http://localhost:1234/v1/modelsand point your client at/v1. - Before any
--bind 0.0.0.0, switch on Require Authentication and create a token. - Leave
--corsoff unless a web app needs it, and only while it does.
The 5 runtimes are compared on exactly this in 5 local AI runtimes: telemetry, network calls and audit, and if you are on a Mac, the MLX sheet covers Apple’s own framework for the other format LM Studio runs.