skip to content
Run a model

Local models

Run a model

On a Mac the model runs in-process; nothing leaves the machine.


terminal
conifer run --model <model-name> "explain a KV cache in two sentences"

The task comes from the arguments or from stdin, so piping works:

terminal
git diff | conifer run --model <model-name> "write the commit message"

On an interactive terminal, bare conifer run opens a REPL instead of waiting on stdin (macOS builds).

What run reaches

run resolves a venue for the model you name: the embedded engine on a Mac, a Conifer daemon (yours or one on your network), or any endpoint you registered with conifer endpoints add, including BYOK providers and the managed gateway. --model is exact; --route selects one model from a complete pool-and-policy config; and --fuse is the distinct explicit multi-model operation. If the selection cannot be served, the refusal names the reason instead of substituting another model.

Context windows

Every model carries its trained window (n_ctx_train, read from the GGUF). A prompt that exceeds it is refused before generation with a 400 that names the model, its window, and your prompt’s size. On macOS builds --ctx overrides the window when you know better; thin builds don’t have the flag because they don’t run the model.

One resident model

The engine holds one model resident and swaps on demand: naming a different model unloads the current one and loads yours. First request after a swap pays the load time; everything after runs warm. Serving several models to several tools at once is serve’s job, not run’s.

Scripting

FlagWhat it does
--timeout <seconds>Bounds the whole task. Off by default.
--eventsNDJSON event stream: turn events, then a final record with token usage and cost.
--dry-runPrints the plan (model, venue, settings) and exits.
--allow-read / --allow-writeFile access is off by default; grant it per run.

Exit codes are stable; the table is in the reference.