T11-L02 · Run your own AI · Level 2 Power user · 14-minute read, plus 45 minutes of doing
A chat window isn't enough
In a lab, the postdoc from T11-L01 has a model on her laptop that answers with the Wi-Fi off. Now she wants more than a chat window. Every week she files a dozen literature notes into the group's shared table: organism, method, main result, one line of comment. She'd like a chat workspace with a saved prompt for exactly that, on her laptop, using the same local model, with nothing leaving the machine.
In a company, the office manager of a twelve-person installation firm reads about forty supplier messages a week and sorts them: needs action or for information. He's built a small n8n workflow that does the sorting with a cloud model. His boss has asked him to stop sending supplier prices to a cloud service. The model on his laptop could do it, but n8n can't talk to a chat window.
Both of them need the same thing: the model as a local server, an address other programs can call. This book shows you how to switch that on in LM Studio, how to point a tool at it, and how to check that the results are still right after the switch.
You are at Level 2 Power user: you connect tools for your own work, and the result may end up in a shared table or queue. A wrong result that slips through reaches colleagues, so you check before it does.
After this you can
- Start LM Studio's local server and check that it answers on your own computer.
- Connect Open WebUI or n8n, installed through Heidelberg AI Desk, to that server with three settings.
- Re-run a fixed set of examples after any change of model or address, and spot when results got worse.
- Choose between a local model, an EU-hosted provider and a frontier model for one named task.
Before you start
- Book: T11-L01 · Run an AI model on your own laptop, offline. You'll use LM Studio and the model you downloaded there. This book applies the four quadrants from T01-L01.
- Heidelberg AI Desk and Podman Desktop. The short setup is in T11-L03, under Set up Desk and Podman. On a managed laptop, ask IT first: the Desk installers are beta and not fully signed.
- One task you do every week with text you're allowed to process on your laptop.
- About an hour: 14 minutes to read, 45 to do, plus downloads.
Last verified 23 September 2026. LM Studio and Heidelberg AI Desk are free; the Desk is an internal beta. The n8n it installs allows internal business use. LM Studio's server answers only your own computer unless you change that. Details for experts at the end of this book.
The idea in one page
An endpoint is an address a program calls. When LM Studio runs as a server, any program on your computer can send it a request and get the model's answer back. Many tools speak the same request format, called OpenAI-compatible after the company that made it common. Those tools need three settings to use your model instead of a cloud one:
| Setting | For LM Studio | What it means |
|---|---|---|
| Base URL | http://localhost:1234/v1 | Where the server is |
| API key | Any placeholder text | A password-like code that cloud services ask for. LM Studio doesn't check it unless you switch on authentication |
| Model | The identifier LM Studio shows for your model | Which model answers |
Change those three and leave the rest of the tool alone: the prompt, the table, the categories. In the address, localhost is the name a computer uses for itself, and 1234 is the port, the numbered door LM Studio listens at.
Inside a Desk app, localhost means the app itself. Open WebUI and n8n from Heidelberg AI Desk run in containers, sealed boxes that keep each app apart from the rest of your laptop. For them, localhost is their own container, not your laptop. Podman, the program that runs the containers, gives your laptop a name the container can use instead: host.containers.internal. So a Desk app reaches LM Studio at:
http://host.containers.internal:1234/v1
Local stays local if you leave the defaults. LM Studio's server listens only on your own computer, and nothing on the network can reach it. Keep it that way. Serve on Local Network would let every device on the same network use your model. If you ever need it, switch on Require Authentication at the same time.
Compatible doesn't mean identical. Your tool will accept the local model's answers, but they won't be the same answers a cloud model gave. A small model may miss a category, round a number, or add a conclusion that isn't in the text. So you keep a check sheet: five real examples with the answers you know are right. Run them after every change of model, address or prompt. An answer from the tool tells you the connection works, nothing more.
Choose the route per task, not once for everything.
| Route | Pick it when | Check first |
|---|---|---|
| Local (LM Studio on your laptop) | The text must stay on your machine, and a small model passes your check sheet at a speed you can live with | Memory, speed, and whether the check sheet passes |
| EU-hosted provider | You need a bigger model and your organisation has approved a provider with processing in the EU | The contract: where data is processed and logged, and for how long |
| Frontier model (the largest cloud models) | The task needs reasoning a small model can't do, and the data is allowed there | Your organisation's rules for that service and that data |
"EU-hosted" is a claim about where the model runs. Logs, support access and backups may sit elsewhere. Read the provider's terms before you trust the label.
Switch on LM Studio's server
- Open LM Studio and go to the Developer tab. Switch on Start server.
- Load the model you downloaded in T11-L01, for example Gemma 4 E4B.
- To check that the server answers, open this address in your browser:
http://localhost:1234/v1/models. You should see a short list in plain text that includes your model's identifier, the exact name tools use for it. Copy that identifier exactly; tools need it letter for letter. - Leave LM Studio open while tools use it. When you quit LM Studio, the server stops.
Worked example: two tools, one local server
Lab: filing literature notes with Open WebUI
Structure it. "Each week I turn about twelve notes into rows for the group's literature table: organism, method, main result, comment. The notes contain unpublished comments, so they stay on my laptop. Every row must say only what the note says."
Understand it. She tries the plain LM Studio chat first, pasting one note with an instruction. It works, but she retypes the instruction every time and copies the answers one by one. She installs Open WebUI through Heidelberg AI Desk, presses Start, then Open, and creates her account. The first account becomes the admin, which on her own laptop is simply her.
In the Admin Panel, under Settings and Connections, she adds an OpenAI API connection with http://localhost:1234/v1. The model list stays empty. That's the container lesson: localhost is Open WebUI's own container. With http://host.containers.internal:1234/v1, the Gemma model appears.
Then she builds her check sheet: five old notes whose rows are already in the table and were checked by a colleague. Four come out right. In the fifth, the note says "no effect in HeLa cells at 10 µM", and the model writes "no effect" as the main result without the cell line or the concentration. Back to Structure it: "Every row keeps the cell line or organism and every number from the note, unchanged. I check numbers against the note before a row goes into the table."
Choose tools. Down the ladder: the group's table already has fixed columns, so there's nothing to design. A saved prompt in Open WebUI does the repetitive part. The local model is enough, because the task is restructuring text she supplies. Local route.
Build it. She saves the instruction as a prompt in Open WebUI: "Turn this note into one row: Organism or cell line | Method | Main result | Comment. Copy every number and unit exactly. Don't add conclusions. If a field isn't in the note, write 'not stated'." She runs the check sheet again: five out of five. She turns off Wi-Fi and runs it once more, with the same result. Now the weekly notes take ten minutes, and each row still gets a glance at its numbers.
What it taught her: the connection took two minutes once she knew the container name. The check sheet caught the one error that would have reached the group's table.
Company: sorting supplier messages with n8n
Structure it. "About forty supplier messages a week get sorted into needs action or for information*, with the sentence that shows why. Supplier prices must not go to a cloud service. A message that needs action must never land in* for information*."*
Understand it. His existing workflow runs in n8n's cloud version with a cloud model. He installs n8n through Heidelberg AI Desk, presses Start and Open, creates his n8n account and rebuilds the workflow from three nodes, the boxes an n8n workflow is made of. A Manual Trigger starts it when he clicks, for testing. A Basic LLM Chain sends his sorting prompt to a model. An OpenAI Chat Model attached to it says which model.
In the chat model's credential, the saved connection settings, he sets the Base URL to http://host.containers.internal:1234/v1 and types a placeholder into API Key. The model list now shows the models LM Studio offers.
His check sheet is five old messages where he knows the right answer, including the one that went wrong last year: a delivery notice that also said "please confirm the new price by Friday". The local model sorts that one as for information, because most of the message is about the delivery date. That's the costly mistake. Back to Structure it: "Any message that asks for a reply, a confirmation or a decision needs action, even if it's one sentence in a long message."
Choose tools. Down the ladder: a mail rule could catch some keywords, but suppliers phrase requests in too many ways. The sorting stays with the model. He tightens the prompt and adds a second check: if the model's answer doesn't quote a sentence from the message, the workflow puts it in needs action anyway. Local route; an EU-hosted provider stays the fallback if the local model keeps missing requests.
Build it. With the new prompt, the check sheet passes five out of five, with Wi-Fi on and off. He runs a week's real messages alongside his own sorting and they agree. Only then does he connect the workflow to the shared inbox.
What it taught him: the switch from cloud to local took three settings; the check sheet took longer, and it's the part he'll reuse every time he changes the model.
What goes wrong
localhost inside a container. Symptom: the tool says it can't connect, although LM Studio's server is running and your browser reaches it. Fix: in a Desk app, use http://host.containers.internal:1234/v1. localhost there means the app's own container.
A container that still can't reach your laptop. Symptom: even with host.containers.internal, the connection fails. This happens on some Windows setups. Fix: in LM Studio's server settings, switch on Require Authentication, create a token, a password LM Studio generates for you, and paste it into the tool's API key field. Only then switch on Serve on Local Network, and use the address LM Studio shows. Switch both off again when you stop using the tool.
The model name almost right. Symptom: the tool connects, but requests fail or a different model answers. Fix: copy the identifier from http://localhost:1234/v1/models exactly, and load that model in LM Studio before you run the tool.
A new model, no new check. Symptom: you swap in a faster model, the tool keeps working, and a week later someone finds wrong rows in the shared table. Fix: run the check sheet after every change of model, prompt or address. Keep the old settings written down so you can switch back.
Serving your model to the whole network. Symptom: you switched on Serve on Local Network to try something from your phone, and now anyone on the office network can use your model. Fix: switch it off. If you need it, switch on Require Authentication first.
The server stops with the app. Symptom: a workflow that runs on Monday morning fails because LM Studio wasn't open. Fix: start LM Studio and load the model before the workflow runs, or run it by hand. A workflow others depend on belongs in T11-L03.
Do it yourself (45 minutes)
- Structure it (8 min). Pick one weekly task where a tool should call a model and the text must stay on your laptop. Write one sentence: what goes in, what comes out, who uses the result, and which mistake would hurt most.
- Understand it (12 min). Build your check sheet: five real examples from past weeks with the answers you know are right. Include one hard case, like the one that went wrong before. Try one example in LM Studio's chat and note what the model gets wrong.
- Choose tools (5 min). Decide the route (local, EU-hosted or frontier) from the table above, and the tool: Open WebUI for work you do in a chat, n8n for steps that should run the same way every time.
- Build it (20 min). Switch on LM Studio's server and copy the model identifier. Install the tool through Heidelberg AI Desk, press Start and Open, and enter the three settings with
host.containers.internal. Run the check sheet. Fix the prompt until all five pass. Switch off every network connection and run it once more.
Exit check
Delivered artifact: one tool installed through Heidelberg AI Desk that gets its answers from LM Studio, plus your check sheet and three lines.
- The tool (Open WebUI or n8n) answers through LM Studio's local server.
- The check sheet lists five examples, the right answer for each, and the tool's answer.
- Three lines: the base URL and model identifier you used; the task; the one mistake your check sheet is there to catch.
It passes when all five examples come out right with every network connection switched off, and a colleague reading your three lines could connect the same tool on their own laptop.
Rule to remember
Change the model or the address, then run the check sheet again.
Details for experts
Checked on 23 September 2026. You don't need this to follow the book; it's for setting things up or answering a colleague.
| What | Details | What it means for you |
|---|---|---|
| LM Studio server | Version 0.4.25. It speaks the OpenAI-compatible format at http://localhost:1234/v1 by default. The list of models is at /v1/models; tools send their requests to /v1/chat/completions. | If a tool asks for a "chat completions" address, it's the same server; most tools only need the base URL. |
| Starting the server from a terminal | lms server start does the same as the Start server switch. A terminal is the text window where you type commands. | Only for people who prefer typing a command to clicking. This book doesn't need it. |
| Heidelberg AI Desk | A free internal beta. It installs Open WebUI 0.5.20 and n8n 1.77.3, pinned, meaning fixed to the versions its reviewers checked. | If your screens differ from a colleague's Open WebUI or n8n, compare version numbers first. |
| n8n licence | Source-available under the Sustainable Use License: anyone can read the code, and the licence allows internal business use. | Fine for workflows your own team uses. |
| Podman's names for your laptop | Containers can reach the computer they run on as host.containers.internal or host.docker.internal. | If one name fails in a tool, try the other before changing any network setting. |
| Ollama | Version 0.34.3, another local model server with the same kind of API, the request format tools use. Its address is http://localhost:11434/v1. | The same three settings work; only the port changes, from 1234 to 11434. |
If the versions change, the three settings stay the same.
Further reading and tools
Next books
- T11-L03 · Local AI apps your colleagues can rely on: when others depend on what your tool produces.
- T05-L02 · Put AI in the Middle of a Workflow, and Check Every Answer: building workflows around a model's answer.
- T12-L02 · Clean the Copy, Label the Result, Spot the Trap: which text may go to which route.
Tools
- LM Studio: Taught. The local model server.
- Heidelberg AI Desk: Taught. Installs the tools that call it.
- Open WebUI: Taught. The chat workspace in the lab example.
- n8n: Taught. The workflow tool in the company example.
- Ollama: Catalogued. Another local model server; the same three settings with port 11434.
- LiteLLM: Catalogued. One address in front of several models, for when many tools share them.
- IONOS AI Model Hub, Scaleway: Catalogued. EU-hosted providers to compare for the second route.