-
-
Notifications
You must be signed in to change notification settings - Fork 6
local runtime discovery
MultiVibe can discover a supported model runtime on the same machine and add
it as an openai-compatible account without storing a fabricated API token.
The authenticated dashboard triggers it in the background after the session is
loaded. It can also trigger the operation directly through:
POST /admin/local-runtimes/discoverThe endpoint uses the existing admin authentication boundary. Replaying it is
idempotent: each runtime account keeps a deterministic ID such as
local-runtime-lm-studio or local-runtime-omlx, and a successful probe
updates that account instead of adding a duplicate.
The automatic probes use only documented default loopback endpoints. The
shared 8000 endpoint is classified from the response's official
owned_by value, so a running OMLX instance is never labelled MTPLX (or the
reverse).
| Runtime | Default probe | Runtime signature | Official icon |
|---|---|---|---|
| Ollama |
127.0.0.1/::1:11434/v1/models
|
Port 11434
|
Ollama repository logo |
| LM Studio |
127.0.0.1/::1:1234/v1/models
|
Port 1234
|
LM Studio brand asset |
| OMLX |
127.0.0.1/::1:8000/v1/models
|
Every returned model has owned_by: "omlx"
|
OMLX icon |
| MTPLX |
127.0.0.1/::1:8000/v1/models
|
Every returned model has owned_by: "mtplx"
|
MTPLX app icon |
| Exo |
127.0.0.1/::1:52415/models
|
Every returned model has owned_by: "exo"
|
Exo menu-bar icon |
Official API references:
The other adapter families remain available for explicit manual loopback configuration. They do not have automatic candidates until a stable, officially documented and non-ambiguous probe exists.
The bounded adapter registry also describes Ollama, llama.cpp/llama-server/llama-cpp-python, vLLM, SGLang, LocalAI, Hugging Face TGI and Transformers Serve, Xinference, MLX-LM, MLC LLM, Exo, Jan, GPT4All, KoboldCpp, text-generation-webui, Aphrodite, TabbyAPI, llama-box, mistral.rs, NVIDIA NIM, TensorRT-LLM, Triton, OpenLLM, BentoML, MTPLX, NVIDIA Personal AI Router (PAIR) and a manual OpenAI-compatible adapter. Each entry declares its protocol, health and catalog contract, capabilities, authentication, measurement units and bounded limits. Entries without a reliably identifiable official probe remain manual and have no automatic candidates. MultiVibe does not guess their ports or inspect processes, files, service registries, or the LAN.
Detection remains local until the user selects models. Cloud receives only the selected model identifiers and the metadata allowlist shown before consent.
PAIR is registered as a dedicated, tokenless OpenAI-compatible adapter. It must
be configured explicitly with the loopback endpoint displayed by PAIR. PAIR's
documented default proxies deliberately impersonate the engine they front:
port 11434 exposes an Ollama-compatible surface and port 1234 exposes an
LM Studio/OpenAI-compatible surface. Its model-list response has no stable
PAIR-specific signature. MultiVibe therefore does not guess whether either
port belongs to PAIR and does not add automatic PAIR candidates.
The endpoint connects locally, but PAIR may execute a request on another paired machine on the user's trusted local network. MultiVibe treats this adapter as a personal-cluster execution boundary rather than proof that execution stayed on the machine running Core.
The dashboard exposes PAIR in Add account. The equivalent authenticated admin request is:
POST /admin/accounts
Content-Type: application/json
{"provider":"nvidia-pair","baseUrl":"http://127.0.0.1:11434"}Core probes /v1/models before saving the deterministic account. Only a
literal IPv4 or IPv6 loopback HTTP origin with an explicit port is accepted.
If an automatically discovered Ollama or LM Studio account uses that same
origin, the explicit PAIR identity takes precedence.
Automatic probes are limited to the literal IPv4 and IPv6 loopback candidates
declared by the registry: the two Ollama URLs on port 11434, the two LM
Studio URLs on port 1234, the two OMLX and two MTPLX URLs on port 8000, and
the two Exo URLs on port 52415. No port scan is performed.
The probe has a deadline, a bounded response size, manual redirect handling, and strict JSON/model-ID validation. At least one model ID must be confirmed before an account is persisted.
An upstream request may omit Authorization only when all of these properties
remain true:
- the account carries MultiVibe's explicit discovery metadata;
- its provider is
openai-compatibleand its location islocal; - its token is the empty string;
- its base URL and recorded endpoint use credential-free HTTP on literal
127.0.0.1or::1, on the adapter's declared port (1234for LM Studio,11434for Ollama,8000for OMLX/MTPLX,52415for Exo); - the final request origin matches the discovered endpoint;
- the path is one of the adapter's supported endpoints, with no query or
fragment (
/modelsis reserved for Exo's model catalog; inference uses the supported/v1paths).
Redirects are not followed for classified local-runtime requests. A tokenless remote, DNS, LAN, non-allowlisted port, or ambiguous URL is rejected before a network request. Discovery performs no Cloud enrollment, community routing, or outbound telemetry.
Migrated from docs/local-runtime-discovery.md on 2026-09-07.