API keys & costs
Cloud cleanup is bring-your-own-key. Here is where to get one, where OpenVoiceFlow keeps it, and what you should expect to pay.
Adding a key
- Create an API key in your provider's console (OpenRouter, Anthropic, OpenAI, or Groq).
- In OpenVoiceFlow, open Dashboard ▸ Settings ▸ AI cleanup.
- Select the provider and paste the key into its field.
The key is saved to your Keychain as soon as you enter it. Each backend stores its own key, so you can configure several and switch freely.
Where keys are stored
In the macOS Keychain, as generic passwords under the service app.openvoiceflow.apikeys, marked accessible only after the first unlock of your Mac. They are never written to the settings file or any plain-text file on disk, and never included in history or logs.
You can inspect or delete them yourself in Keychain Access by searching for that service name.
What it costs
A cleanup request is small: your transcript plus a short instruction and your personal context, returning about the same length of text. In practical terms this is one of the cheapest possible API workloads — most people dictating all day land in the range of cents per month on a small model, not dollars.
We deliberately do not print per-token prices here, because providers change them and a stale number in documentation is worse than none. Check your provider's current pricing page, and note that:
- Small and “mini”-class models are entirely adequate for this task.
- Longer dictations cost proportionally more, but they are still short by API standards.
- A large dictionary and profile add context to every request — another reason to keep them focused.
- Ollama costs nothing at all.
Revoking and rotating
To stop using a key, clear the field in Settings, or delete the entry in Keychain Access, or revoke it in your provider's console — any of the three works, and revoking at the provider is the one that is definitive if you believe a key was exposed.
Switching cleanup to None stops all outbound cleanup requests immediately, whether or not a key is still stored.
Because cleanup fails open, an expired key, an exhausted balance, or a rate limit shows up as raw transcripts rather than an error message. If your output suddenly reads like exactly what you said, check your provider's dashboard first.
Documentation for OpenVoiceFlow 0.5.5 · last updated 2026-07-31. Something wrong or missing here? That is a bug — tell us at shimoverse@gmail.com.