A Model's Details
A program in a sandbox asks a model's details in one shape, whatever
runs the model. The local model route answers GET /_link/model/show?name=<name> itself: outside the sandbox it asks the
runtime in that runtime's own way, and answers with Link's fields alone.
Ask
From a sandbox, at the local model's address its program was given:
curl "$LNK_LOCAL_MODEL_11434/_link/model/show?name=qwen3:8b"The name is the model's, as its runtime names it: letters, digits and
-_.:/, at most 256 characters, each part between two / more than
dots.
What it answers
The answer is JSON, link_model_contract::show::Shown, each field left
out where the runtime doesn't say it.
Its fields
name is the model, as it was asked for; family its family or
architecture (llama, qwen3); parameters its size in parameters,
as its runtime writes it (8.0B); and quantization how its weights
are quantized (Q4_K_M). context and trained are the window its
runtime runs it with and the one it was trained for, each in tokens,
and capabilities what it can do: completion, tools, vision,
embedding and thinking.
What never reaches the sandbox
A word the runtime says of the model is kept only when it's 1 to 64
letters, digits and -_.:, so no path or sentence of the runtime's
reaches the sandbox: its modelfile, template, license, settings and
where its files are stay outside.
What it asks
Each runtime is asked in turn, and the first answer that maps is Link's.
Ollama
POST /api/show, then GET /api/ps: its family, size, quantization
and capabilities, the window it runs the model with (loaded, else its
num_ctx) and the one it was trained for.
LM Studio
GET /api/v0/models/<id>: its family, quantization and capabilities,
the loaded window and the longest.
llama.cpp and OpenAI-compatible runtimes
llama.cpp is asked GET /props, and an OpenAI-compatible runtime
(vLLM) GET /v1/models, the model's entry: each gives the window it
runs the model with, where it says.
An answer none of them maps
An answer none of them maps is refused, 403, and so is one past 1 MB
or a show that takes more than two and a half seconds. A runtime Link
learns to ask is one mapping more; the shape a sandbox sees stays the
same.
The model list
GET /v1/models is the route's too: the runtime's list, rebuilt with
each model's id alone, {"id", "object": "model"}, and only an id that
is a plain name, so a file's path as an id is left out.
The runtimes' own routes
A program in a sandbox can't ask any of the runtimes' detail routes itself: the local model route refuses each, and passes only inference, minimal native lists, health and version compatibility answers (A local model's port).
Metadata words
Family and quantization pass only when they name a recognized model architecture or weight format. Parameter sizes are numeric counts, optionally with a K/M/B/T scale. Unknown values are omitted, including plain metadata words that could name a host user. New architectures need a mapping before their metadata is exposed to a sandbox.