| .github | ||
| docs | ||
| linux | ||
| .gitignore | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| ROADMAP.md | ||
| SECURITY.md | ||
| SUPPORT.md | ||
| TRADEMARKS.md | ||
Blitztext App Linux
Blitztext App Linux is an experimental open-source Linux dictation app: focus any text field, press a hotkey, speak, and the text is typed back into the app you were using. It can also rewrite rough speech with an OpenAI-compatible LLM, or write live words through a Riva/NIM realtime STT server.
This is a native host tool, not a browser app and not a hosted service. It is intentionally small, inspectable, and still rough around the edges.
Preview status: Linux/X11, bring your own local models or endpoints, no hosted Blitztext backend, no warranty, no support guarantee.
Inspiration
Blitztext App Linux is inspired by cmagnussen/blitztext-app, the original macOS menu-bar workflow for turning speech into text and cleaner writing. This Linux version keeps the spirit of that workflow while using Linux-native pieces: GTK, AppIndicator, global hotkeys, local faster-whisper, optional Riva/NIM realtime STT, and xdotool delivery.
What It Does
- Dictate: record speech and type the raw transcript into the focused field.
- Rewrite: transcribe speech, send it to an OpenAI-compatible LLM, and type the improved result.
- Calm down / email / emoji workflows: use configurable prompts for common writing transformations.
- Realtime STT streaming: stream mic audio to a Riva/NIM realtime server, such as Nemotron ASR Streaming, and type stable words while you speak.
- Benchmark STT engines: compare local and remote batch transcription engines against a reference clip.
Important Preview Notes
- Linux first; tested on Ubuntu/GNOME with X11.
- Auto-typing uses
xdotool, so Wayland needs futurewtype/ydotoolsupport. - Batch transcription can run locally with
faster-whisper. - Live streaming can use a local Riva/NIM realtime WebSocket endpoint.
- Rewrite workflows call the OpenAI-compatible LLM endpoint you configure.
- No hosted Blitztext backend is included or provided.
- Debian packaging exists for local installation, but this is still preview software.
- No warranty and no support guarantee.
You are welcome to use, fork, adapt, and share this project under the license terms.
The intent is not to ship a one-click finished product. The intent is to make a real AI workflow understandable: clone it, build it, read the code, change it, break it, fix it, and suggest improvements. If you only want to download something and never look inside, this preview will probably feel rough. If you want to learn how a small native Linux AI dictation tool is put together, you are in the right place.
Screenshots
The old macOS screenshots were removed from this Linux-facing README so the docs do not misrepresent the app. Current Linux screenshots should show:
- the GTK control panel with workflow rows
- Settings > Engines with local, OpenAI-compatible, and
riva_realtimeSTT engines - Settings > Benchmark results
- Settings > About with version, source, changelog, and license
The Linux icon assets live in linux/packaging.
Requirements
- Linux desktop with an X11 session.
- Host tools:
xdotool,notify-sendfromlibnotify-bin, and one recorder:pw-record,parecord, orarecord. - Python 3.11+ when running from source.
- Optional rewrite workflows: an OpenAI-compatible chat endpoint and API key if needed.
- Optional realtime STT streaming: a Riva/NIM realtime server reachable through
/v1/realtime.
On Ubuntu/Debian:
sudo apt install xdotool libnotify-bin pipewire-bin python3-gi
Install And Run
Recommended local package path:
cd linux
bash packaging/build-deb.sh
sudo apt install ./dist/blitztext_*.deb
blitztext tray
Run from source:
cd linux
./install.sh
.venv/bin/python -m blitztext tray
Other entry points:
.venv/bin/python -m blitztext gui
.venv/bin/python -m blitztext run
.venv/bin/python -m blitztext config-path
.venv/bin/python -m blitztext --version
For the full Linux guide, see linux/README.md. For setup details, see docs/setup.md.
Data Flow
The preview has no custom backend.
Batch transcription: Your Linux desktop -> local faster-whisper or your configured STT endpoint
Realtime streaming: Your Linux desktop -> your configured Riva/NIM realtime endpoint
Text rewriting: Your Linux desktop -> your configured OpenAI-compatible chat endpoint
Text delivery: Blitztext -> xdotool -> focused X11 window
Read docs/privacy.md before using the preview with sensitive content.
Project Structure
linux/
blitztext/ Linux app package: GTK UI, daemon, STT/LLM engines, config
packaging/ Debian package script, desktop entry, icon assets
README.md Detailed Linux guide
BlitztextMac/ Legacy/upstream macOS app code kept for reference
build.sh Legacy macOS build script
README.md Linux-first project overview
docs/ Setup, privacy, roadmap, release notes, web brief
Configuration
Blitztext writes configuration to:
~/.config/blitztext/config.toml
The Settings window can edit workflows, STT engines, LLM engines, input mode, microphone, language, benchmark clips, and About metadata. You can also edit the TOML directly.
Realtime STT Streaming
For Nemotron ASR Streaming, add a realtime engine in Settings > Engines with + Stream, save/restart, then create or edit a workflow with mode = "stream".
[[stt_engine]]
name = "Nemotron ASR Streaming"
type = "riva_realtime"
url = "http://127.0.0.1:8006/v1"
model = ""
[[workflow]]
name = "STT Streaming"
hotkey = "<ctrl>+<alt>+s"
mode = "stream"
The tested Nemotron ASR Streaming NIM exposes an English en-US model, so use language = "en" or language = "en-US" in [general] for that engine.
Contributing
Contributions are welcome, especially if they make the preview easier to build, understand, test, or fork.
Please read CONTRIBUTING.md first.
Support And Roadmap
This preview has no formal support promise. See SUPPORT.md for how to ask for help without sharing secrets.
The current direction is documented in ROADMAP.md. Maintainer-facing release checks live in docs/open-source-preflight.md.
License
Code is released under the MIT License. See LICENSE.
Project names, logos, and app icons are not automatically granted as trademarks or brand assets. See TRADEMARKS.md.
Legal / Impressum & Datenschutz
This is an experimental, non-commercial open-source project, provided as-is under the MIT License without warranty or support. Nothing is sold here and no installation or operation is performed on your behalf.
The companion website (blitztext.de) is operated by Blackboat Internet GmbH:
- Impressum: https://martin-bierschenk.de/impressum/
- Datenschutz / Privacy: https://martin-bierschenk.de/datenschutz/