Cremind
Using CremindCLI

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:

GroupSubcommandsPurpose
providerslist, models <provider>, configure <provider>, delete-config <provider>List, configure, and remove LLM provider configs, and browse the models a provider exposes.
model-groupsget, setRead and write the high / low model assignments and the default provider.
device-codestart, 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 list
NAME       DISPLAY              CONFIGURED  MODELS  ACTIVE_AUTH
anthropic  Anthropic            yes         8       anthropic
openai     OpenAI               no          0
copilot    GitHub Copilot       yes         12      oauth_personal

providers 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-5

Device-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 start
verification_uri  https://github.com/login/device
user_code         ABCD-1234
device_code       4fe...e8c
expires_in        900
interval          5

Open 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...e8c
complete (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.

On this page