Skip to main content
Configuration lives at ~/.config/rekody/config.toml, created by the setup wizard and kept at mode 0600.
Changes take effect the next time rekody starts.

Core keys

Input device

input_device picks the microphone rekody captures from. Names are matched case-insensitively; any unique substring of the device name works. Omit the key (or set "system") to follow the macOS default input, which jumps to whatever you connected last (AirPods being the classic offender).
With a chain, each recording start walks the list in order and captures from the first connected device, so unplugging the desk mic needs no config change and no restart. If nothing in the chain is connected, capture falls back to the system default and the daemon logs a warning naming what it tried. An empty list behaves like the key being unset. rekody doctor shows the chain with each entry’s status and which one would capture right now.

Engine-specific keys

LLM providers

Providers are tried in order; the first success wins, and failover is automatic. Local providers (ollama, lm-studio, vllm) need no API key.
Each [[providers]] entry takes:
Older configs may contain top-level llm_provider, groq_api_key, and cerebras_api_key keys. They still load and are migrated into the providers array at startup; use [[providers]] for anything new.

API keys and the Keychain

Keys belong in the macOS Keychain, not in the config file:
Keys are stored under the Keychain service com.rekody.voice. Agents can write one non-interactively:

A complete example

If this page ever drifts from the code, the config struct in crates/rekody-core/src/lib.rs is the source of truth.