cremind llm
Configure LLM providers, browse their models, assign the high and low model groups, and run device-code auth.
cremind llm is the CLI for managing the LLM side of Cremind: which providers are configured, what models each one exposes, which models the agent reaches for at high and low reasoning effort, and the GitHub Copilot device-code OAuth flow. It is the terminal counterpart to the Settings → LLM Providers page in the web UI.
CREMIND_TOKEN is required for every subcommand, and all of them accept the root-level --json flag. Provider secrets such as API keys are stored server-side and never read back — they surface only as a configured: yes flag.
Subcommand groups
The command splits into three sets:
| Group | Subcommands | Purpose |
|---|---|---|
providers | list, models <provider>, configure <provider>, delete-config <provider> | List, configure, and remove LLM provider configs, and browse the models a provider exposes. |
model-groups | get, set | Read and write the high / low model assignments and the default provider. |
device-code | start, poll <device_code> | Run the device-code OAuth flow (currently used for GitHub Copilot). |
Providers
providers list prints every provider the server knows about, with whether it is configured, how many models were discovered, and the active auth method:
cremind llm providers listNAME DISPLAY CONFIGURED MODELS ACTIVE_AUTH
anthropic Anthropic yes 8 anthropic
openai OpenAI no 0
copilot GitHub Copilot yes 12 oauth_personalproviders configure sets a provider's configuration — typically the API key and the active auth method, plus any extra fields via --json. At least one of --api-key, --auth-method, or --json must be supplied:
# Standard API key
cremind llm providers configure anthropic --api-key sk-ant-...
# Switch the active auth method without touching the key
cremind llm providers configure copilot --auth-method oauth_business
# Extra fields (e.g. base URL, organization) via JSON
cremind llm providers configure openai --json '{"organization":"org-...","base_url":"https://api.openai.com/v1"}'providers models <provider> lists the model ids a provider exposes, and providers delete-config <provider> removes every stored config field for it (the provider stays known but its configured flag flips to no).
Model groups
Cremind picks from two model groups: a high group for heavyweight reasoning and a low group for lighter work such as the skill classifier. Read them with get:
cremind llm model-groups get{
"default_provider": "anthropic",
"model_groups": {
"high": "anthropic/claude-opus-4-7",
"low": "anthropic/claude-haiku-4-5-20251001"
}
}Update any subset with set — omitted fields keep their current value:
cremind llm model-groups set --high anthropic/claude-opus-4-7
cremind llm model-groups set --default-provider openai --high openai/gpt-5Device-code auth
device-code start begins a device-code OAuth flow (currently for GitHub Copilot) and prints a verification URL, a short user code, and an opaque device_code:
cremind llm device-code startverification_uri https://github.com/login/device
user_code ABCD-1234
device_code 4fe...e8c
expires_in 900
interval 5Open the URL, enter the code, then block on device-code poll until the browser flow completes. The token is stored server-side:
cremind llm device-code poll 4fe...e8ccomplete (token stored server-side)poll blocks while the upstream returns pending (Ctrl-C is safe and does not invalidate the code), and exits with an error if the code expires — run device-code start again to get a fresh one.
If a provider is configured but MODELS reads 0, the server could not enumerate its models — usually a wrong key or an unreachable provider. Re-run providers configure with a known-good key and refresh the list.