Local models
Run a model
On a Mac the model runs in-process; nothing leaves the machine.
conifer run --model <model-name> "explain a KV cache in two sentences"The task comes from the arguments or from stdin, so piping works:
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
| Flag | What it does |
|---|---|
--timeout <seconds> | Bounds the whole task. Off by default. |
--events | NDJSON event stream: turn events, then a final record with token usage and cost. |
--dry-run | Prints the plan (model, venue, settings) and exits. |
--allow-read / --allow-write | File access is off by default; grant it per run. |
Exit codes are stable; the table is in the reference.