$ llm-router config discover localhost # auto-discover local providers
$ llm-router server start -i dev --port 8081 --save-config # many routers, one CLI
Saved 1 setting(s) to ~/.llm-router/instances/dev/config.env:
LLM_ROUTER_SERVER_PORT
$ llm-router server start -i prod # own pid, port, log, config.env
$ llm-router server list
NAME STATUS PID PORT SERVER STARTED
dev • running 41207 8081 gunicorn 2026-09-16T19:58:29+0200
prod • running 41212 8080 gunicorn 2026-09-16T19:58:31+0200
batch • stopped - 8082 gunicorn 2026-09-16T18:40:02+0200
$ llm-router server reload -i prod # pick up models-config.json
$ llm-router server log -i dev # follow that instance's log
$ llm-router server stop --all # every instance at once
$ llm-router auth policy list
internal-only models: gemma-3-27b masking: required guardrail: required
partner-ex models: gpt-4o-mini masking: required guardrail: request
$ cat ./incidents/*.md | llm-router anonymizer run --algorithm fast_masker -o redacted.md
$ llm-router util translate --llm-router-url http://localhost:8080 ...
$ llm-router completion zsh > ~/.zsh/completions/_llm-router