BYOK connects your own provider account, so usage is billed to you at cost with no platform limits in the way.
The compatibility rule
This is the thing to understand before you start. The desktop app speaks one protocol: the OpenAI chat-completions format, with a bearer token, against whatever base URL you give it. Transcription likewise posts to an OpenAI-compatible /audio/transcriptions endpoint.
So the real question is not "is my provider on a list" — it is "does my provider offer an OpenAI-compatible endpoint".
| Endpoint | Works? |
|---|---|
| OpenAI | Yes |
| Groq | Yes |
| Azure OpenAI | Yes |
| A self-hosted OpenAI-compatible server — vLLM, LiteLLM, Ollama, LM Studio | Yes, via each one's OpenAI-compatible endpoint |
| Anthropic's native API | No — it is not OpenAI-compatible |
api.anthropic.com. Because the desktop only speaks the OpenAI format, that base URL will not work directly — reach Claude models either through the built-in provider or through an OpenAI-compatible gateway in front of them.Adding a provider
- 01Pick a preset or choose CustomPresets simply prefill the base URL. Custom and OpenAI-Compatible leave it blank for you to fill in.
- 02Paste your API keyIt is encrypted before being stored — see below.
- 03Add the models you wantYou type the model identifier exactly as the provider publishes it, and tag each one as Text, Audio, or Both. There is no dropdown, because InkSpoke cannot know your provider's catalogue.
- 04Select it as a defaultUnder AI Models → Default, or per workspace for finer control.
How your key is stored
Provider keys are encrypted with AES-256-GCM before being written to the local database. The master key that protects them is what lives in your operating system credential store.
Providers sync
Provider and model definitions sync across your devices when Cloud Sync is on. Turn on Private Sync if you would rather that content be encrypted with a key we never see.