Installation
Install SayIt
Pick your platform below — the guide for your system opens first. In short: download the installer, run it, follow the setup wizard, dictate. There is no account and no API key.
Requirements
- Windows 10 or later, 64-bit
- A working microphone
- Network access for the first model download (roughly 100 MB to 1 GB depending on the model)
Download
Get SayIt-Setup-x64.exe from the download center or the GitHub Releases page. Verify the SHA-256 checksum shown with the release before running it.
Install
- Run the installer. It installs only for your user (no administrator prompt needed), into
%LOCALAPPDATA%\Programs\SayIt. - Optional tasks: a desktop shortcut and “Start SayIt when Windows starts” — both are off by default. A Start Menu entry is always created.
- Leave Launch SayIt checked on the final screen (or start it from the Start Menu later).
About the SmartScreen warning
The installer is not code-signed yet. If Windows shows “Windows protected your PC”, choose More info → Run anyway — after confirming you downloaded it from the official release and checked the checksum.
Automated installs
The installer is a standard Inno Setup package and accepts the usual silent flags (/SILENT, /VERYSILENT) for unattended deployment.
First launch & verification
SayIt runs in the system tray. On first start, the setup wizard opens — that window is the verification that the install worked. SayIt has no command-line version flag; success looks like: tray icon visible, wizard open, and a first dictation inserting text (after the model is installed). Continue with the first-run setup below.
Troubleshooting
Windows SmartScreen shows “Windows protected your PC”
The microphone is not detected
The model download fails or is slow
%LOCALAPPDATA% \SayIt\models and is only downloaded once per model.The hotkey does nothing in some apps
Text is not inserted after dictation
SayIt seems stuck on recording or processing
Requirements
- A 64-bit Linux distribution with glibc 2.28 or newer (e.g. Ubuntu 20.04+) — the AppImage is built against manylinux_2_28
- xclip for clipboard-based text insertion
- A working microphone; network access for the first model download
- X11 session for global hotkeys (Wayland capture is a known limitation)
Download
Get the SayIt-*.AppImage from the download center or the GitHub Releases page, and verify its SHA-256 checksum.
Make it executable and run
- Make the AppImage executable:
Linux shell chmod +x SayIt-*.AppImage - Start SayIt:
Linux shell ./SayIt-*.AppImage - Optional: keep the AppImage somewhere stable such as
~/Applications. SayIt does not install desktop integration automatically; it lives where you put it.
First launch & verification
SayIt runs in the system tray, and the setup wizard opens on first start — seeing that wizard verifies the AppImage works. Note the honest limits: global hotkeys may require X11, and clipboard insertion needs xclip. Continue with the first-run setup below.
Troubleshooting
Running the AppImage says “Permission denied”
chmod +x SayIt-*.AppImage again, then start it with ./SayIt-*.AppImage.Text is not inserted (clipboard issues)
xclip. Install it with your distribution’s package manager (for example sudo apt install xclip on Debian/Ubuntu).The global hotkey does not respond
The model download fails
Developer / source install
This route is for development and contribution. Regular users don’t need any of it — use the Windows installer or the Linux AppImage.
Requirements
- Python 3.12 or newer
- The uv package manager
- Git
- Network access for the first model download
Clone and sync
- Clone the repository:
Shell git clone https://github.com/VptrCipher/SayIt.git - Create the virtual environment and install dependencies:
Shell cd SayIt && uv sync
Run
uv run python -m sayitWhy python -m?
The sayit entry points declared in pyproject.toml are not installed into the environment by uv sync — run the app as a module.
Run the tests
$env:QT_QPA_PLATFORM = "offscreen"
$env:PYNPUT_BACKEND = "dummy"
uv run pytest -m "not slow"The same suite on Linux/macOS:
QT_QPA_PLATFORM=offscreen PYNPUT_BACKEND=dummy uv run pytest -m "not slow"Verification
uv run python -m sayit starts the tray app and opens the setup wizard on first run — that is the check. A passing fast test suite verifies the code, not the packaged app.
First-run setup
On first launch, the setup wizard walks you through everything. It states honestly what is and isn’t ready — for example, it never fakes a transcription while no model is installed.
- Welcome & privacy — what SayIt does and a plain-language privacy summary.
- Microphone — select your input device and run the built-in signal test.
- Speech model — install a model now or finish setup and do it later. Model downloads are separate from the application and are roughly 100 MB to 1 GB depending on the model.
- Hotkey — choose the push-to-talk combination. The default is CtrlSpace.
- Try your first dictation — hold the hotkey, speak, release; the text appears at your cursor. Esc cancels mid-dictation.
- Setup complete — a summary of what is ready and what remains (dictation stays unavailable until a model is installed).
One honest note
You can complete the wizard without a model, but you can’t dictate until one is installed — the app tells you so instead of pretending.
Uninstalling — and what happens to your data
Windows
Uninstall from Settings → Apps → Installed apps → SayIt (a running instance is closed automatically). Your user data — settings, vocabulary, history, logs, and downloaded models in %LOCALAPPDATA%\SayIt — is kept by default; the uninstaller asks before deleting it. For a full wipe at any time, use Clear Data in Settings → Privacy & Data.
Linux
Delete the AppImage file — that removes the application. Your settings and downloaded models are stored separately in your user directories and are not removed automatically; run Clear Data in the app first if you want them gone.