Running Models YourselfLesson 29 of 82

Contents

Running Models Yourself

Lesson 29 of 82. Sign in to keep your place.

Module 4 · Getting it running

Interfaces: what each one is for

6 min read

Four things people call “the app”. They do different jobs, and none of them changes how good the model is. Pick by who is using it.

Open WebUI: for more than one person

Self-hosted, runs in Docker, points at any OpenAI-compatible backend. It has user accounts and roles, conversation history per user, document upload with retrieval, web search, model switching, and a plugin system for custom pipelines.

Bash
docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  -e OPENAI_API_BASE_URL=http://host.docker.internal:8080/v1 \
  -e OPENAI_API_KEY=local \
  ghcr.io/open-webui/open-webui:main

Choose it when a team needs something ChatGPT-shaped and you need to know who used what. It is the only one here designed for multiple users.

LM Studio: for one person getting started

A desktop application for macOS, Windows and Linux. Its real strength is discovery: it browses Hugging Face, shows you every quant of a model, and tells you which ones fit your machine: the arithmetic from lesson 2, done for you. Every llama.cpp setting has a slider, and it runs a local server on demand.

Free, but not open source. Choose it when you are one person on one machine trying models quickly, or when you are helping someone non-technical get started. Nothing else has an onboarding this good.

SillyTavern: for control over the prompt

Marketed for character chat and roleplay, which puts people off. Look past that: it is the most complete prompt-construction and sampler interface that exists. Every knob from lesson 7 is exposed, including DRY and XTC, along with exact control over what goes into the context in which order, per-character templates, and conditional injected text.

It connects to llama.cpp, Ollama, TabbyAPI, vLLM and hosted APIs alike. Choose it when you need to see and control the literal prompt string, whatever your actual use case.

The plain API: for anything you will automate

Everything above is a client of this. It is the only interface you can script, test, version-control and put in CI.

Bash
curl http://localhost:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"local","messages":[{"role":"user","content":"One sentence on tides."}],"temperature":0.7}'

Or the OpenAI SDK in any language with base_url pointed at your server. Because every engine speaks this dialect, code written against a local server runs unchanged against a hosted one, which makes the comparison in lesson 1 trivial to perform.

The thing to hold on to

Swapping interfaces does not change speed and does not change quality. People reinstall front-ends hoping for better answers, and get the same model back.

What interfaces do change is what gets sent: the system prompt, the context length, sampler defaults, retrieved documents, and background calls the UI makes on its own (conversation titles, tag generation). When the same model behaves differently in two apps, that difference is in the request, and every one of these tools will show you the request if you look.

Every lesson here is open. Your progress is recorded once you pass the Open Model Ecosystem exam.

Check your understanding

The same model, served by the same local llama.cpp instance, gives clearly worse answers through Open WebUI than through LM Studio. What is the right first move?

Pick the one you would defend. Your answer stays private.

Next lesson · 9 minInstalling the right build for your hardware

Stuck on something?Ask Tri, your AI tutor

How to cite: Addaly (2026) ‘Interfaces: what each one is for’, in Running Models Yourself. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/running-models-yourself/interfaces (Accessed: 31 October 2026).