AI processing
After Whisper transcribes your speech, the text can optionally be rewritten by an LLM served over the OpenAI-compatible API — grammar correction, tone rewriting, bullet formatting, and more. This works with any OpenAI-compatible server: a local Ollama or LM Studio instance, or a hosted provider — not just Ollama.
How it works
The client calls POST {'{'}endpoint{'}'}/v1/chat/completions for generation and
GET {'{'}endpoint{'}'}/v1/models to list models. The /v1 suffix is appended
automatically if your configured endpoint doesn't already include it, so the default
http://localhost:11434 targets a local server's OpenAI-compatible endpoint. When an API key is
set, it's sent as an Authorization: Bearer <key> header.
Post-processing is enabled per-hotkey via openai_enabled = true in bindings.toml
(or via the Hotkeys tab in Settings), so different hotkeys can apply different rewriting styles while sharing
the same connection settings.
ollama (and ollama_* binding
fields) — those legacy names still work via aliases and load transparently.Preset modes
The mode field selects a preset. Built-in presets are read-only — selecting one fills the
system prompt with a fixed value and sets the user prompt to a plain {'{'}text{'}'} passthrough.
Choose custom to edit the system and user prompts yourself.
| Mode | System prompt |
|---|---|
clean |
Fix grammar and punctuation only. Return only the corrected text, no commentary. |
formal |
Rewrite the user's text in formal professional language. Return only the result. |
casual |
Rewrite the user's text in casual conversational language. Return only the result. |
bullet |
Convert the user's text to a bullet-point list. Return only the list. |
concise |
Summarize the user's text concisely in 1-2 sentences. Return only the summary. |
custom |
No preset — edit the system/user prompts freely |
Per-hotkey overrides
A hotkey binding with openai_enabled = true can override the global defaults for that hotkey
only:
openai_system_prompt— overrides the global system prompt (empty = inherit)openai_prompt— overrides the global user prompt template, must contain{'{'}text{'}'}(empty = inherit)openai_model— overrides the model (empty = inherit)
Graceful fallback
If the server is unreachable, the HTTP request times out, or the response can't be parsed, VoxCtrl logs the failure and delivers the original Whisper transcription unchanged. Text is never dropped.
Setup
- Run any OpenAI-compatible server — e.g. install Ollama:
curl -fsSL https://ollama.com/install.sh | shand pull a model:ollama pull llama3.2:1b— or point at a hosted provider such ashttps://api.openai.com/v1 - Settings → OpenAI API tab → enter the API URL (and API key, if required) and model name
- Click Test Connection to verify connectivity and list available models
- Pick a mode preset, or choose custom to write your own prompts
- Toggle Enable, then enable
openai_enabledon the hotkeys you want it applied to