Home / Library / Articles / Runners
Comparison
The local model runner feature matrix
Four apps do the same core job: load a language model on your machine and serve it over a local API. They differ in how much they hand you the controls. Here's Ollama, llama.cpp, koboldcpp, and LM Studio side by side, then a plain read on who each one is for.
At a glance
| Feature | LM Studio | Ollama | llama.cpp | koboldcpp |
|---|---|---|---|---|
| Interface | Desktop GUI | Command line | Command line | Launcher + web UI |
| Install | Installer | Installer / one-liner | Homebrew, binary, or build | Single executable |
| Built-in model browser | Yes | CLI pull from library | No (manual / -hf) | No (manual GGUF) |
| Default port | 1234 | 11434 | 8080 | 5001 |
| OpenAI-compatible API | Yes | Yes | Yes | Yes |
| Browser access (CORS) | Toggle in settings | OLLAMA_ORIGINS | On by default | On by default |
| GPU acceleration | Yes | Yes | Yes | Yes |
| Platforms | mac · win · linux | mac · win · linux | mac · win · linux | win · linux · mac |
| Best for | Easiest first start | Fast terminal workflow | Maximum control | Roleplay community |
All four connect to mi·do·na the same way: pick the runner (or Generic
OpenAI) in the connection panel and point it at its /v1
endpoint. Only the port changes.
How to read this
Under the hood these are closer than they look. llama.cpp is the inference engine, and the others are, to varying degrees, wrappers around it or around the same techniques. So raw speed and model support are broadly similar on the same hardware. What actually differs is the experience: how you find and load a model, how much you configure, and how much is done for you.
If you've never done this before - LM Studio. It's a real desktop app with a searchable model browser that flags which quantizations your machine can handle. You click instead of type. Nothing else here is as forgiving on day one.
If you live in a terminal - Ollama. One command pulls a model, and the server
is already running in the background. The workflow is tight and scriptable, and
the defaults are sensible. The one gotcha for a browser app like mi·do·na is
setting OLLAMA_ORIGINS so requests are allowed.
If you want the knobs - llama.cpp. You manage the GGUF file and the server flags yourself, which is exactly the point. It's the reference implementation, it moves fast, and permissive CORS is on by default so the browser reaches it without extra setup.
If you're here for roleplay - koboldcpp. A single-file executable with a simple launcher and a long history in the interactive-fiction community. It bundles its own web UI, serves an OpenAI-compatible endpoint, and turns CORS on by default.
The short answer
Start with LM Studio if you want the gentlest on-ramp. Move to Ollama once you're comfortable at the command line. Reach for llama.cpp when you want full control, and koboldcpp if the roleplay tooling and presets appeal. There is no wrong pick: whichever you choose, mi·do·na talks to it the same way.
Ports and defaults reflect each project's current documentation as of July 2026. Check the official docs if a release has moved since.
You bring the model. mi·do·na brings the story.
Any of these runners plugs straight into mi·do·na, right in your browser. Nothing you write ever leaves your machine.