Docs / Providers & endpoints
Providers & endpoints
Bring-your-own-key, stored where an OS already stores secrets, or no key at all.
Keys live in the keychain
Every API key entered in Settings goes into the OS keychain, not a config file or a database. Removing a provider removes its key from the keychain along with it.
One adapter, several providers
Providers are a factory, not a file each. providers/llm/openai.ts
exports openAICompatible({url, models}), and OpenAI,
Groq, Cerebras, and a fully custom endpoint are all configuration
over that same function. Adding another compatible gateway is a
config object, not a new integration.
The same pattern for speech
Voice input follows the identical shape: a local Whisper server or Ollama answers exactly like a hosted provider would, because both sides of the adapter, language and speech, are written against the same OpenAI-compatible contract. Details on the speech side live in Voice & wake word.
Pointing at anything else
The custom endpoint field accepts any URL that speaks the OpenAI chat completions API, hosted or on the same machine. A local image generation server is wired in through the identical field, so it runs the same way a local language model does.