On this page
Setup guide · 5 September 2026

Use local models in your browser

Connect LM Studio on a paired home computer, select the model in MaiaChat, and chat through your browser. The computer that has the model does the inference; the browser is your chat interface.

Short answer: pair the computer, start LM Studio's local API, connect LM Studio / LM Link in Settings, then choose the discovered model in Chat. Start with Tools off and Autopilot off so the first smoke test is easy to inspect.

What you need

This setup keeps the model on your home computer while MaiaChat gives you a browser-based conversation.

  • A capable home computer. Leave enough memory for the model and its context window alongside your normal applications.
  • LM Studio. Install it, have a suitable chat model available, and start its local API.
  • A paired MaiaChat bridge. Node.js must be installed on the computer that will run the bridge.
  • A reachable computer. You need an internet connection, and the home computer must stay awake and online during a conversation.

Keep LM Studio's API on localhost. Do not port-forward an unauthenticated model server, and do not paste a local runtime token into a chat message. If a runtime needs a token, configure it on the paired computer.

Pair a computer you control

Pairing is account-scoped. MaiaChat generates the private command in the dialog; keep that command private and never publish it.

  1. 1
    Sign in and open Chat. Use /chat; an account is required for pairing.
  2. 2
    In Chat, open Device access, then choose Pair a computer you control.
  3. 3
    Choose Download bridge. Put the downloaded bridge in the folder where you will run it.
  4. 4
    Open a terminal in that folder and run the freshly generated private command shown by the pairing dialog. The exact command is unique to your account and expires; this guide intentionally does not reproduce one.
  5. 5
    For a sign-in service, run node maia-device-bridge.mjs install once after pairing. For temporary foreground use, run node maia-device-bridge.mjs run and keep the terminal open.
  6. 6
    Review the permission prompts. Enable Device Access and the global Apps approval, then enable only the capabilities you actually need.

Important permission boundary: Apps is a broad executable capability, not an inference-only security sandbox. An allowed app can reach files and networks beyond this toggle, so review every approval and keep the bridge account appropriately scoped.

For browser chat inference alone, you do not need shell, Files, Screen, or Browser permission. Those are separate capabilities for separate workflows.

Connect LM Studio and choose a model

Once the bridge is paired, connect the model route from the account that will use it.

  1. 1
    On the home computer, start LM Studio's Developer API. See the official LM Studio server documentation for the current start control.
  2. 2
    In Settings, find LM Studio / LM Link. Choose Connect LM Studio, or choose Refresh models after the connection already exists.
  3. 3
    If you use LM Link, read the official LM Link documentation. Remote models appear through LM Studio's local API; LM Studio remains responsible for the remote-device membership and network behavior.
  4. 4
    Return to Chat and choose the discovered model from the model selector. For the initial smoke test, use Chat mode, Tools off, and Autopilot off. Send a short prompt and confirm the response returns the chat to its idle state.

A model being listed is not proof that it supports tools, background execution, or every prompt size. Treat text generation, tool execution, and reconnection as separate checks.

Privacy and availability

“Local model” describes where inference runs, not an offline-only or end-to-end-encrypted conversation.

Inference takes place on the selected home computer, but hosted MaiaChat participates in routing the prompt and response. MaiaChat conversation storage and the service operator remain part of the trust boundary. Review your application privacy and data controls before sending sensitive material.

The home computer must remain awake and reachable, and the bridge and model server must keep running. A sleeping computer, a stopped bridge, changed local authentication, or insufficient memory can interrupt a request.

A separate-network mobile travel journey is still pending. Do not treat a successful local or hosted smoke test as proof that every mobile network, reconnect, or off-network travel scenario works.

Provider status

Dated observations from 5 September 2026. These are bounded test notes, not a claim that every model, tool, or network behaves identically.

LM Studio

Observed: Qwen 27B answered in local MaiaChat and in hosted MaiaChat through the paired computer.

Still to verify: Separate-network and mobile travel, tools, reconnect acceptance, and an updated bridge's cached catalogue.

oMLX · MLX-LM · Unsloth Studio

Observed: Paired-runtime adapters exist.

Still to verify: A complete live connection, model selection, response, and tool journey for each runtime.

Local Ollama

Observed: A small bounded direct runtime request answered.

Still to verify: Both MaiaChat UI journeys; a native paired-home Ollama route is not established by that test.

Ollama Cloud · Gemini API

Observed: Connection options exist.

Still to verify: Current-key validation and local/hosted chat and tool acceptance. Ollama Cloud is a cloud service with its own key and quota, not local Ollama.

OpenRouter

Observed: Hosted chat and text-only Autopilot responses completed.

Still to verify: Local UI and bounded tool/recovery acceptance.

Codex subscription

Observed: Hosted connection and text chat completed.

Still to verify: Generic MaiaChat tools; separate ChatGPT routes are not proved by that test.

Unsloth Studio: only models currently loaded in Studio appear in Chat. Load the model in Studio before refreshing the connection; a model downloaded on disk is not automatically ready for inference.

LM Studio capacity: a hosted calculator request did not fit when the selected model had a loaded 4096-token context; the prompt plus the reserved response exceeded that loaded context. Increase the loaded context in LM Studio, or reduce the conversation and enabled tools, then retry. This is a capacity example, not a promise that every model shares the same limit.

Tool support needs its own evidence. The tested text paths do not by themselves prove generic MaiaChat calculator tools, tool-schema compatibility, or a successful action result.

Troubleshooting

Work from the route you actually selected. A server-local status is not the same thing as a paired home computer.

  • “Not running” in the server-local check. That check describes the machine hosting MaiaChat, not your paired home computer. Use the paired LM Studio connection above it.
  • The model is missing. Start or load it, then use Refresh models. An embedding-only model is not a chat choice; older bridge metadata may need a bridge update and fresh discovery.
  • Authentication is required. Check the local runtime token configuration and the device approval shown by MaiaChat. Do not disable authentication or publish the local API to work around the error.
  • The model cannot load. Choose a smaller model or free memory safely on the inference computer. Do not unload a model another application is using.
  • Chat works but Autopilot fails. Paired-model background execution is not yet accepted. Its authorization is separate from foreground device permission; use Chat for the currently verified local-model path.
  • A tool action never happens. Text generation is not proof of tool support. Check tool-schema support, execution permission, and the returned tool result separately.
  • The context is too small. Increase the loaded context in LM Studio, or reduce the conversation and enabled tools. The 4096-token example above counts both the prompt and reserved response.

Before recording a model comparison

Keep the comparison reproducible and separate observed output from an assistant's claim about an action.

  • Record the route. Note the exact model, runtime, connection route, and whether it is local, paired, or hosted.
  • Record limits. Capture model size, context limit, prompt, and output limit.
  • Hold conditions steady. Compare the same task under the same prompt, permissions, device, and network conditions.
  • Show action evidence. Distinguish loading time from response time, and show a tool result or existing file when the task requires an action.