-
Notifications
You must be signed in to change notification settings - Fork 1
Text Cleanup
This is the flagship Wispr-Flow-style workflow: press a key, talk, and have clean, punctuated text land in whatever app you are in. Text cleanup turns raw dictation into polished output through a layered pipeline of deterministic and LLM-driven steps.
📸 Screenshot needed: The cleanup settings in full, showing the cleanup-level selector (Light / Medium / High) and the per-profile style preset picker.
The optional transcription cleanup pipeline has three levels:
| Level | Behavior |
|---|---|
| Light | Deterministic cleanup, applied locally. |
| Medium | Routes through the configured LLM provider; degrades to Light when no provider is available. |
| High | Routes through the configured LLM provider; degrades to Light when no provider is available. |
Medium and High send the text to your configured LLM providers for cleanup. If no provider is available, both fall back to the deterministic Light behavior so cleanup never blocks dictation.
Style presets bundle a cleanup level plus formatting choices per profile, so each Profiles context can dictate-and-format differently. The presets are:
| Preset | Use |
|---|---|
| Raw | Unprocessed dictation. |
| Clean | General tidy-up. |
| Concise | Tighter, trimmed output. |
| Formal Email | Email-style formatting. |
| Casual Message | Message-style formatting. |
| Developer | Code-friendly output. |
| Terminal Safe | Output safe to drop into a terminal. |
| Meeting Notes | Notes-style formatting. |
Each preset can also carry optional cleanup and developer-formatting overrides, so you can fine-tune a preset's level or developer behavior on a per-profile basis.
📸 Screenshot needed: The style preset picker expanded, showing Raw, Clean, Concise, Formal Email, Casual Message, Developer, Terminal Safe, and Meeting Notes, with the optional cleanup and developer-formatting overrides.
Developer-safe formatting converts spoken punctuation and casing commands into code-friendly output. For example, "dash dash", "open paren", and "snake case" become the corresponding code-friendly text. This makes dictation usable in editors and terminals where literal symbols and specific casing matter.
These voice commands are parsed at the end of a dictation and carried out:
| Suffix | Effect |
|---|---|
press enter |
Sends Enter after the text. |
new paragraph |
Starts a new paragraph. |
new line |
Starts a new line. |
cancel |
Cancels the dictation. |
Spoken file references such as "at file dot ts" are mapped to file tags for editor and IDE workflows.
This mirrors the maintainer's daily-driver setup, tuned to feel as close to Wispr Flow as possible on Linux.
📸 Screenshot needed: The Auto Format profile and Auto Clean Up Text prompt action shown enabled and bound together, with the Ctrl+Alt+E hotkey visible.
| Piece | What to use |
|---|---|
| LLM server | An OpenAI-compatible LLM server (Ollama). |
| Model |
mistral-small:24b. |
| Prompt | The seeded Auto Clean Up Text prompt action drives the cleanup. |
| Profile | The seeded Auto Format profile binds that prompt action to a hotkey (Ctrl+Alt+E), so dictation goes straight through cleanup before it is inserted. |
Both the Auto Clean Up Text prompt and the Auto Format profile ship seeded but disabled on a fresh install. Turn them on and point the cleanup at your own LLM. See LLM providers for configuring the OpenAI-compatible provider, and Prompts & AI actions for the prompt action and palette.
The seeded Auto Clean Up Text system prompt steers a general-purpose LLM to clean dictation the way Wispr Flow does, treating the dictation strictly as data to format — never as a request to answer. Its design:
- Treats the dictated text as raw data to clean and format, not as a question or instruction — a dictated question stays a question; a dictated command stays text. It never answers, decides, follows, or adds information.
- Strips filler words ("um", "uh", "like", "you know"), false starts, repeated words, and abandoned fragments.
- Applies spoken self-corrections in place ("actually", "I mean", "no wait", "scratch that"), swapping only the changed word or phrase and keeping the rest of the sentence intact.
- Fixes capitalization, punctuation, grammar, and spacing, and breaks long text into readable paragraphs at natural topic changes.
- Preserves your meaning, wording, and tone exactly — keeps contractions and casual words, and never expands or formalizes phrasing; never drops meaningful words such as trailing tag questions ("right?", "okay?").
- Detects message/email context (greeting, recipient, sign-off) and formats it as a message with natural paragraphs.
- Carries out spoken formatting commands and then deletes the command words — writing spoken numbers as digits, inserting spoken punctuation ("period", "comma", "question mark", "exclamation point"), and formatting bulleted/numbered lists only when clearly signalled.
The canonical copy lives in code at src/TypeWhisper.Core/Services/FirstRunDefaults.cs (AutoCleanupSystemPrompt), mirrored in docs/prompts/auto-clean-up-text.md.
📸 Screenshot needed: The Auto Clean Up Text prompt action open for editing, showing its system prompt text.
- Prompts & AI actions — prompt actions, provider overrides, and the prompt palette.
- LLM providers — configuring the OpenAI-compatible (Ollama) provider that Medium/High cleanup and the cleanup prompt run against.
- Profiles — binding a cleanup style preset and prompt action to a context.
| Date | Change |
|---|---|
| 2026-06-17 | Initial version. |
Home · Repository · Issues · Releases · GPLv3
TypeWhisper for Linux is a community Linux port. Each page lists its own change history in the Changelog section above.
Getting Started
Using TypeWhisper
- Dashboard
- Dictation
- Global Hotkeys
- Text Insertion
- File Transcription
- Recorder
- History
- Dictionary & Term Packs
- Snippets
- Profiles
- Prompts & AI Actions
- Text Cleanup & Formatting
- Long-term Memory
Settings
Plugins
Automation
Platform & Troubleshooting
Project