Local models
Serve an endpoint
conifer serve --model <model-name>Binds 127.0.0.1:8080. That running server is the door: the one port your tools point at, wherever the models live. --model, --route, or --fuse sets that listener’s complete admission default by value. It defines what a stateless model: default request and a new conversation start with; it does not narrow what the door can serve.
The door speaks the same wire as the cloud. Routes, parameters, and errors are in the API reference; thin builds answer 501 on engine-only routes. To prove it’s answering:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"default","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'Lifecycle
An explicit physical model or advertised route/fuse id in the request overrides the ambient default for that turn without mutating it. --ttl <seconds> unloads an idle model (0, the default, keeps it forever). --detach backgrounds the door; conifer host stop ends it.
Serve on the LAN
conifer serve --bind lan # refused unless an access token is configuredOn loopback there is no auth; the port boundary is the privacy boundary. Mint per-peer tokens with conifer serve peers mint; each is individually revocable. This is how a Mac serves models to the thin Windows and Linux clients on Platforms.