> ## Documentation Index > Fetch the complete documentation index at: https://keebye.com/llms.txt > Use this file to discover all available pages before exploring further. # Cleanup and dictionary > What happens to your transcript between speech-to-text and insertion: the dictionary, rule-based cleanup, per-app overrides, and opt-in local-LLM polish. Every dictation runs through the same short pipeline on your computer. Nothing here uses the network. ## The pipeline 1. Speech-to-text with the selected engine. 2. Custom dictionary replacements, always applied. 3. Cleanup — rule-based, or the local LLM if you opted in — only when enhancement is enabled for the frontmost app. 4. Insertion by paste or typing. ## Rule-based cleanup This is the complete rule set. Cleanup does not remove false starts or the word "like". - Removes standalone "um", "uh", "erm", and the two-word "you know", matching whole tokens only. - Collapses immediate word repeats, so "the the" becomes "the". - Collapses whitespace. - Capitalizes the first letter. - Appends a period if the text ends on a letter or digit. ## Per-app overrides Settings › Enhancement › "Clean up transcripts by default" is on. Overrides are keyed by the app's bundle id on a Mac or its program name (such as Code.exe) on Windows. "Add current app…" adds the last non-Keebye app you used, with the opposite of the default. Each entry has a checkbox and a "Remove" button. > **Note:** If you see "No other app detected yet — use the target app briefly, then try again", switch to the target app for a moment, then come back and press "Add current app…" again. ## Custom dictionary Settings › Dictionary: "Replace spoken words with fixed spellings." Type what Keebye hears in "heard as…" and the spelling you want in "write as…", then press Add (Enter works too). Remove deletes an entry. The empty state reads "No replacements yet." - Matches whole words only, never inside a larger word. - Matching is case-insensitive; the replacement keeps the casing you typed. - Keys can be several words. The longest match wins. - Applied to every dictation, whether or not cleanup is enabled for the app. ## Local-LLM polish (opt-in) Keebye can hand the transcript to a local language model instead of the rule-based cleanup. The model is Qwen3-1.7B (Q4_K_M GGUF, about 1.28 GB) running through llama.cpp, with Metal on a Mac and on the CPU on Windows. It uses greedy sampling with thinking disabled, a 64-token cap, and a 2-second deadline. Any failure falls back to rule-based cleanup. > **Warning:** There is no control for this in Settings. Quit Keebye, set "polish_mode" to "local_llm" in settings.json (the default is "rule_based"), and relaunch. The file is ~/Library/Application Support/com.keebye.app/settings.json on a Mac and %APPDATA%\com.keebye.app\settings.json on Windows. The model downloads on the next launch. A fidelity guard checks the LLM output before it is used: it must keep at least half of the input word occurrences, not exceed twice the input word count plus four, contain no sentence or four-word phrase repeated three or more times, and be non-empty. Otherwise the LLM output is discarded. > **Note:** The guard is a heuristic against token loss, expansion, and repetition. It is not a semantic or negation guarantee. Read polished text before you rely on it.