Clembot-dictate Introduction

Clembot-dictate Overview

Hold a key, speak, release, and your words appear at the cursor in any Windows app. How to install it, what the optional cleanup pass does, how to clean pasted text, and what stays on your machine.

Clembot-dictate is a free Windows dictation tool. Hold a key, speak, release, and the text appears wherever your cursor is: VS Code, Word, Chrome, Slack, or any app that accepts typing. Speech is transcribed on your own computer, so no audio leaves the machine.

It is free and open source under the MIT license.

Install

  1. Download the latest installer from the releases page.
  2. Run it. It installs for your user account only, so it needs no admin rights.
  3. Windows shows “Windows protected your PC” because the installer is not signed. Click More info, then Run anyway. This happens once per machine.
  4. Clembot-dictate starts in the system tray.

On first launch it downloads the speech model, about 75 MB. Dictation works once the download finishes. If Windows blocks the microphone, the app offers to open the privacy settings so you can allow it.

You need Windows 10 or 11 and a microphone.

Dictating

Do thisWhat happens
Hold the backtick key (`), speak, releaseThe text is pasted at your cursor, usually within three seconds
Tap Shift and the backtick keyYour clipboard is cleaned in place (see below)
Click the tray iconThe history panel opens

Brief taps are ignored, so brushing the key does not start a recording. A short beep marks the start and end of each recording, and the tray icon turns red while it listens.

To change the hotkey, open Settings, click the hotkey field, press the new key, and click Apply. Restart the app to use it.

Turn on Launch at login in Settings to start the app with Windows.

The optional cleanup pass

Clembot-dictate can tidy each transcript with a language model before pasting it. It runs on your own computer through Ollama, which is free and works offline. Install Ollama, run ollama pull gemma3:4b once, and keep Ollama running. If Ollama is not running, the app says “AI offline” and pastes the plain transcript.

The style follows the app in front of you:

You can also pick the style yourself from the dropdown, and turn the cleanup pass off with the AI toggle in the header.

If the cleanup pass fails or takes too long, the plain transcript is pasted instead.

The history panel keeps your recent dictations with the raw and cleaned versions side by side. To clean an earlier dictation again, click Run AI on its card.

Cleaning pasted text

Text copied out of a chat assistant, a web page or a PDF often carries characters you cannot see: zero-width spaces, word joiners and unusual spaces. They break search, make diffs light up, and throw off word counts.

Clembot-dictate removes them in two places:

Each clipboard clean is recorded in the history panel with a count of what was removed. Restore puts the original text back on your clipboard.

The cleaner only removes invisible characters. Em dashes, curly quotes and ellipses are left alone. Characters that carry meaning are kept, such as the joiners inside emoji and in Arabic, Persian, Devanagari and Hangul text.

It removes invisible characters only. It does not detect or remove watermarks, and it says nothing about who wrote the text.

When paste does not work

Some windows block automatic pasting: apps running as administrator, remote desktop sessions, and Citrix. The text is still on your clipboard, so press Ctrl+V yourself. To skip auto-paste entirely, right-click the tray icon and choose Clipboard only.

Admin prompts and some games also block the hotkey. If the backtick key clashes with something you use, change it in Settings.

What stays on your machine

There are no accounts, no ads and no analytics.

Run it from source

The source code is on GitHub. With Python 3.10 or newer, install the requirements and run python src/main.py. Every option is in src/config.py, including the speech model size, the microphone, the cleanup styles, and a second cleanup option that sends transcript text, never audio, to the Claude API with your own key.