Version 0.8.1

Speech becomes text on Linux.

Blitztext Linux records your voice via hotkey or click, transcribes it locally with Whisper by default, and puts the text on your clipboard – with optional automatic pasting into the active application. Optional AI workflows polish the text before you use it.

License
MIT, open source
Focus
KDE Plasma & Wayland
Transcription
Local with Whisper
Blitztext Linux main window with workflow selector, writing-style preset, record button, and “Ready” status indicator
The real Blitztext Linux v0.8.1 main window

Why Blitztext Linux?

Dictate fast

Press a hotkey or click, speak, done. Recording, transcription, and output run without detours through other programs.

Transcribe locally

Speech recognition runs on your machine by default – with openai-whisper or faster-whisper, without audio leaving your computer.

Improve optionally

AI workflows rephrase, smooth the tone, or add emojis – only when you deliberately select them and have configured an API key.

Copy or auto-paste

The finished text lands on the clipboard. With ydotool 1.0 or newer, Blitztext can paste it right at your cursor position.

Compact desktop app

A lean PyQt6 application with tray icon, main window, and a German/English interface – built for KDE Plasma on Wayland.

How it works

  1. Start recording

    Via global hotkey (e.g. Meta+H) or a click in the main window or tray menu. The tray icon shows the state: green ready, red recording.

  2. Transcribe and optionally rewrite

    Whisper turns the recording into text locally. If you want, an AI workflow rewrites the result – with a selectable writing style and an inspectable prompt.

  3. Copy or paste

    The text is on your clipboard. With auto-paste enabled, Blitztext inserts it directly into the application where your cursor is.

Blitztext Linux main window during an active recording with a red status indicator
Active recording

Features

Everything described here ships in the current release v0.8.1 and is documented in the app repository.

Five workflows via hotkey

From plain dictation to AI rephrasing: every workflow has its own global hotkey and is also reachable via the tray menu and main window.

Writing-style presets

Nine ready-made presets – from “Email formal” and “Bullet points” to “Short & precise” – plus a fully custom preset of your own.

Compose window

Type or paste text and let the AI rewrite it without a microphone – with workflow, preset, and tone selection plus signature support.

Variant history

The last ten AI results of a session stay available in the Compose window – compare them anytime and restore one with a click.

Prompt transparency

Before every AI call you can view and fully edit the system prompt and user message. No black box.

Dictation mode and history

In dictation mode every transcript is saved as a Markdown note and can be merged on demand. The history keeps your recent transcripts at hand.

Read aloud with audio export

Have any text read aloud – locally with Piper TTS (default) or optionally via OpenAI Cloud TTS – and export the output as an audio file.

Custom terms

Store names, technical terms, and special vocabulary so transcription and AI workflows spell them correctly.

German and English

The app interface is fully available in German and English – switchable in the settings.

Configuration and secrets kept apart

The configuration lives under ~/.config/blitztext-linux/ with restrictive permissions (0600). API keys are never stored in the config – they come from environment variables (secrets.env).

The five workflows

Workflow Hotkey AI Description
Blitztext Meta + H No Default: record, transcribe, output the text.
Blitztext Local Meta + Shift + H No Forces a purely local offline transcription.
Blitztext+ Meta + Shift + T Yes Rephrases your recording professionally – with a selectable writing style.
Blitztext $%&! Meta + Shift + D Yes Steam release: turns frustration into a matter-of-fact message.
Blitztext :) Meta + Shift + E Yes Enriches your message with fitting emojis.

Workflows marked as AI require an API key for OpenAI, OpenRouter, or a custom OpenAI-compatible endpoint. Without a key they stay disabled – dictation and local transcription keep working.

Screenshots

Real views from Blitztext Linux v0.8.1 – no mockups.

Main window with workflow dropdown, writing-style preset, record button, “Ready” status, and buttons for dictation and history
Main window
Main window during an active recording with a red status dot and a running timer
Active recording
Compose window with the draft pane on the left, the AI result on the right, workflow and preset selectors, and buttons to improve, copy, and insert
Compose window (draft)
Settings, Speech Recognition tab: Whisper model, backend, language, hotkey mode, and recording key
Settings: Speech recognition
Settings, AI Workflows tab: LLM provider, API key environment variable, base URL, model, tone, and writing-style preset
Settings: AI workflows
Settings, General tab: auto-paste, notes folder, history size, interface language, and signature
Settings: General
History window with recent transcripts and buttons to copy or delete individual entries
Transcript history
Read-aloud window with text input, voice selection, and buttons to read aloud and export as an audio file
Read aloud with audio export
Tray context menu with all five workflows, the Compose window, writing-style presets, dictation mode, history, and settings
Tray menu

Status at a glance

The tray icon always shows what Blitztext is doing:

  • Green microphone tray icon Green: ready
  • Red microphone tray icon Red: recording
  • Orange microphone tray icon Orange: transcription/AI working
  • Gray microphone tray icon Gray: error

Local-first – cloud only if you want it

Blitztext draws a clear line between local processing and optional cloud features.

Runs locally on your machine

  • Whisper transcription (openai-whisper or faster-whisper) – the “Blitztext Local” workflow even enforces it explicitly
  • Read aloud with Piper TTS (the default provider)
  • Dictation notes and history – stored exclusively inside your home directory
  • Configuration under ~/.config/blitztext-linux/ with 0600 file permissions

Optional: cloud features

  • AI workflows (Blitztext+, Blitztext $%&!, Blitztext :)) and the Compose window use an LLM provider: OpenAI, OpenRouter, or a custom OpenAI-compatible endpoint
  • Cloud TTS via OpenAI as an alternative to Piper – with a one-time, explicit confirmation before first use
  • An API key is only needed for these optional features – provided as an environment variable, never stored in the configuration file

Important: when you enable cloud features, the text to be processed (or the transcript) is transmitted to the provider you selected. Without enabled cloud features and without an API key, recording and transcription stay on your machine.

Installation

The recommended path is the install script from the app repository. It is idempotent, checks your system (Ubuntu/Debian base), and sets everything up – including the Python virtual environment and Whisper.

  1. 1. Install

    git clone https://github.com/TimInTech/blitztext-linux.git
    cd blitztext-linux
    bash scripts/install.sh

    The script asks for the operating mode: global hotkeys (requires the input group) or window/tray-only operation.

  2. 2. Verify the installation

    bash scripts/verify.sh

    Important for hotkey mode: log out and back in (or reboot) once so the input group becomes active. The script provides diagnostics for X11/Wayland and clipboard backends.

  3. 3. Start manually

    ./run.sh

    Does the tray icon appear and do the hotkeys respond? Then everything is set up.

  4. 4. Enable autostart (optional)

    systemctl --user start blitztext-linux

    Runs Blitztext as a systemd user service.

All details, manual installation, and troubleshooting: Setup documentation in the app repository

A note on Flatpak: The app repository contains an experimental Flatpak manifest spike. It is not a release channel and not published on Flathub. Inside the sandbox, global hotkeys, auto-paste, and local Whisper transcription are unavailable. The install script remains the recommended path.

Compatibility

Blitztext Linux is developed and systematically tested on Kubuntu with KDE Plasma on Wayland. Other Ubuntu/Debian-based systems may work but are not systematically tested.

System Session Status Notes
Kubuntu 26.04, KDE Plasma Wayland Tested Reference environment; ydotool ≥ 1.0 available directly via apt.
Ubuntu 24.04, GNOME Wayland Untested apt only ships ydotool 0.1.x → no auto-paste (clipboard works); tray needs the AppIndicator extension.
Ubuntu 26.04, GNOME Wayland Untested Tray needs the AppIndicator extension; Whisper wheels may lag behind new Python releases.
Linux Mint 22.x, Cinnamon X11 Untested xclip instead of wl-copy as the clipboard backend; apt ydotool 0.1.x → no auto-paste.
Lubuntu 24.04 / 26.04, LXQt X11 / Wayland Untested The session type decides the clipboard backend – scripts/verify.sh shows which one applies.

This matrix comes from the project’s diagnostic documentation. It describes expected behavior and known risks – it is not a support promise.

Limitations you should know about

  • Auto-paste requires ydotool 1.0 or newer. Ubuntu 24.04 and 22.04 only ship 0.1.x via apt – the clipboard works there, but there is no automatic pasting (unless you build ydotool from source).
  • Global hotkeys use evdev and require membership in the input group. At the system level, this means all of the user’s processes could read input – only use Blitztext in environments you trust.
  • Without global hotkeys, Blitztext remains fully usable – via the main window and the tray menu.
  • If no tray area is available, the icon falls back to the system theme; the color coding may then not apply.

Frequently asked questions

Does Blitztext run fully locally?

Transcription runs locally with Whisper by default, and read-aloud runs locally with Piper. Blitztext stays fully local as long as you don’t use AI workflows or Cloud TTS. If you enable those optional features, the text to be processed is transmitted to the provider you selected (e.g. OpenAI or OpenRouter).

Do I need an API key?

Only for the optional AI features: the workflows Blitztext+, Blitztext $%&!, and Blitztext :), the Compose window, and Cloud TTS. Dictation and local transcription work without a key. The key is provided as an environment variable (e.g. in ~/.config/blitztext-linux/secrets.env), never stored in the configuration file.

Which Linux systems are tested?

Kubuntu with KDE Plasma on Wayland is systematically tested. Ubuntu (GNOME), Linux Mint (Cinnamon), and Lubuntu (LXQt) share the package base and are supported by the install script, but are not systematically tested – the compatibility matrix above is diagnostic guidance, not a support promise.

Does auto-paste work on Wayland?

Yes, via ydotool 1.0 or newer – verified on the reference environment. On systems whose package sources only ship ydotool 0.1.x (e.g. Ubuntu 24.04/22.04 via apt), there is no auto-paste; the text still lands on the clipboard. Building ydotool ≥ 1.0 from source is documented.

Can I use Blitztext without a global hotkey?

Yes. The install script offers a mode without global hotkeys. Recording, workflows, dictation, and history are fully usable via the main window and the tray menu.

Where are configuration and secrets stored?

The configuration lives at ~/.config/blitztext-linux/config.json and is written with restrictive permissions (0600). API keys are never stored in that file – they are read from environment variables at runtime, preferably via ~/.config/blitztext-linux/secrets.env.

Is Blitztext free and open source?

Yes. Blitztext Linux is open source under the MIT license and free of charge. The entire source code is public on GitHub. Costs can only arise with the optional cloud providers if you use their APIs with your own key.

Is Flatpak already the recommended installation path?

No. There is an experimental Flatpak spike in the repository, but no Flatpak release channel and no Flathub publication. Inside the sandbox, global hotkeys, auto-paste, and local Whisper are unavailable. The recommended path is the install script scripts/install.sh.

Ready to dictate?

Blitztext Linux is open source, free, and set up in a few minutes.