Integrations
Add API keys to unlock optional cloud speech-to-text (ElevenLabs) and LLM cleanup (Ollama, OpenRouter). Keys are verified, stored encrypted on your device, and only ever sent to the provider you choose.
The Integrations tab holds every external credential WinSTT can use: the local Ollama endpoint, plus API keys for ElevenLabs and OpenRouter. Local transcription needs none of these — they only unlock cloud STT and LLM cleanup.
What each credential unlocks
WinSTT surfaces two API keys plus the Ollama endpoint. ElevenLabs is cloud speech-to-text only. OpenRouter is the shared LLM key — it powers text cleanup and unlocks OpenRouter cloud transcription models. Ollama is local-only.
ElevenLabs
Cloud STT only (Scribe v1). Sent in a custom xi-api-key header — not Bearer.
OpenRouter
LLM cleanup and OpenRouter cloud transcription — one shared key for both.
Ollama endpoint
The shared base URL for local LLM cleanup. No key, no cloud.
Cloud is optional — and your keys stay on your device
Adding a key lets you reach for a cloud provider when you want it — ElevenLabs Scribe for cloud speech-to-text, or OpenRouter for cleanup and hosted transcription models. When you use one, your audio and your key go straight from your device to that provider over an encrypted (HTTPS) connection — there's no WinSTT server in between, and no third party in the middle. Keys are stored encrypted on your device and are never shown again after you enter them. Prefer to keep everything local? Skip the keys entirely — on-device models need none of this.
Ollama endpoint
The base URL for your local Ollama server. This is shared infrastructure — one endpoint serves both dictation cleanup and text transforms.

http://localhost:11434llm.endpointAny HTTP(S) URL. It is not validated when you type it and there is no verify pill — an unreachable address persists silently until a feature actually calls it. Changing it does not auto-reconnect; features keep using the old value until the next call. A reset button restores the default.
Ollama models are discovered dynamically
WinSTT does not hard-code a small Ollama model list. The picker reads installed models
from /api/tags, enriches them with /api/show capabilities, then browses the Ollama
library and model tags for pullable variants. Newly published Ollama models appear as
the upstream library exposes them.
Cloud STT key (ElevenLabs)
ElevenLabs is the only key in the Cloud Speech-to-Text section — OpenRouter's cloud transcription reuses the shared LLM key above. The key gets its own password field with a reveal toggle. It persists on every keystroke — switching tabs mid-typing can never lose it. A background probe then verifies the key and drives the status pill; it never blocks typing or reverts the value, so a rejected key stays in the field for you to fix in place.
(empty)integrations.elevenlabs.apiKeyUnlocks ElevenLabs cloud transcription (Scribe v1). Verified against GET /v1/user
using the custom xi-api-key header — not Bearer auth.
The ElevenLabs key also stores two metadata fields the rest of the app reads:
integrations.elevenlabs.verified (true / false / null = never probed) and
integrations.elevenlabs.lastVerifiedAt (epoch-ms of the last successful check). Both
reset to null on every keystroke and update after each probe.
Verification
Verification runs 600 ms after your last keystroke — long enough that pasting a key fires a single probe, short enough that you see the verdict before navigating away.
| Pill | Meaning | Color |
|---|---|---|
| (none) | Field is empty — no key to verify. | — |
| Verifying | Probe in flight (spinner). | Muted |
| Verified | Provider accepted the key. | Green |
| Invalid | Provider rejected the key (auth / malformed). Hover for the error. | Red |
| Couldn't verify | Network or transport failure — the key may still be valid. Hover for the error. | Yellow |
A failed probe never deletes your key
An "invalid" or "couldn't verify" result leaves the key exactly as you typed it. Fix a typo inline and the next 600 ms probe re-checks it — no need to re-paste. Only the Remove button (below) clears a stored key.
Removing a key
A Remove button appears below the field whenever a key is stored. Removing clears the
key, resets verified / lastVerifiedAt, and drops the pill back to idle.
Removing the active cloud key is gated
If the provider you're removing is your current main STT model, a confirmation dialog blocks the removal first — yanking the key out from under dictation would silently break your next utterance. If that provider isn't the active model, removal is immediate with no prompt. Clearing the key by hand while the cloud model is active instead surfaces a sticky banner telling you the current pick is now broken.
OpenRouter key (shared)
OpenRouter is a router for hosted LLMs used by dictation cleanup and text transforms. The same key also unlocks OpenRouter cloud transcription models in the Model tab's Cloud source — these run batch-only, with no streaming. It lives in the Language Models (LLM) section alongside the Ollama endpoint.
(empty)llm.openrouterApiKeyPassword field with a reveal toggle and a "Get API key" link to openrouter.ai/keys. Persists on every keystroke; verified 600 ms after the last keystroke with the same five pill states as the ElevenLabs key. Removing it while an LLM feature (dictation cleanup or transforms) is set to OpenRouter first prompts a confirmation dialog; otherwise it clears immediately. Clearing the field by hand auto-reverts those features back to Ollama.
Encryption at rest
Every key — ElevenLabs and OpenRouter — is encrypted before it touches disk.
Protected by your operating system
Keys are encrypted with your operating system's own secure storage before they're saved — on Windows that's the built-in Data Protection API, tied to your user account, so the saved file is useless to anyone else. In the current alpha this is wired up on Windows only; on other platforms WinSTT declines to save a key rather than ever store it in plain text.
Related
Model
Switch the main STT model to an ElevenLabs or OpenRouter cloud engine once a key verifies.
LLM cleanup
Reshape dictation with Ollama, OpenRouter, or Apple Intelligence — the consumers of these keys.
Cloud STT
How cloud transcription compares to the 70+ local models.
Privacy & data
What stays on-device, what leaves it, and where keys are stored.
Text-to-Speech (reference)
The Text-to-Speech settings section — enable, pick a voice and speed, and download the on-demand Kokoro voice pack.
Models
Browse the full WinSTT speech-to-text catalog — 70+ on-device ONNX models across 12 families, with accuracy, speed, size, and language coverage so you can pick the right trade-off.