AI & VOICE / AI PROCESSING

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.

Configs written before this feature was renamed from "Ollama" to a generic OpenAI-compatible integration used the key 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:

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