What installing it actually costs¶
Most projects tell you how to install and never what it costs. These are measured numbers, not estimates, so you can decide before you start.
Disk¶
| What | Size | Notes |
|---|---|---|
| YazSes, headless (no desktop extra) | ~450 MB | pip install yazses — enough for transcribe |
YazSes + the desktop extra | 1.1 GB | what install.sh, the .deb and the Snap install |
| ↳ of which PySide6 (Qt) | 648 MB | the overlay and the tray — now optional, see below |
Speech model — tiny.en | 75 MB | fastest, least accurate |
Speech model — base.en | 141 MB | the default |
Speech model — small.en | 464 MB | most accurate of the three |
| Speaker diarization models | ~15 MB | only if you use --diarize |
| Docker image (transcription only) | 833 MB | no Qt |
A normal desktop install is therefore about 1.25 GB: 1.1 GB of program plus the 141 MB default model. A headless install is roughly 590 MB all-in. Only one model is downloaded — the one you configure.
Qt is now optional — headless installs are ~650 MB lighter
PySide6 is no longer a base dependency. It is 648 MB of Qt and it exists for exactly two desktop features: the voice-activity overlay and the system-tray icon. Installs that can never show either — servers, containers, CI, anything headless, and anyone who only runs yazses transcribe — were paying for all of it.
It now lives in the desktop extra:
pip install yazses # headless: transcribe, meetings, the CLI
pip install 'yazses[desktop]' # adds the overlay and the tray
Nothing changes for a normal desktop install. install.sh, the .deb and the Snap all pull the desktop extra, so the tray and overlay work out of the box exactly as before. If you installed headless and later want them, yazses features enable tray (or overlay) fetches Qt on demand.
Every import of it is lazy, so a headless copy simply reports the feature as unavailable rather than failing. Tracked as #259.
Downloads¶
Nothing is downloaded that you did not ask for, and the speech model is the only large download. It happens once, on first use, from Hugging Face — after that YazSes never needs the network again.
You can prove that rather than trust it:
That transcribes with networking switched off entirely. It works.
Time¶
| Step | Time | Measured how |
|---|---|---|
| First transcription (incl. 141 MB model download) | 43 s | 4-core CPU, base.en |
| Every transcription after | 2.3 s for 11 s of audio | model cached |
System provisioning (yazses setup) | under a minute | apt packages |
| The one-time log-out and back in | you pick when | required on Linux; see below |
Install time itself depends almost entirely on your network and on whether evdev has to be compiled (it has no wheels, so it usually does — this needs a C compiler, which install.sh installs for you if it is missing).
What it changes on your system¶
On Linux, a full dictation install touches these and nothing else:
| Change | Why | Reversible |
|---|---|---|
Installs libportaudio2, xdotool/ydotool/wtype, clipboard tools | capture audio, type text | yes — normal apt packages |
Adds you to the input group | read the hold-to-talk key from the kernel | yes — sudo gpasswd -d $USER input |
Enables ydotoold (Wayland only) | the only way to inject keystrokes on GNOME/KDE Wayland | yes — systemctl --user disable --now ydotoold |
Writes config to ~/.config/yazses/ | your settings | yes — delete it |
Writes data to ~/.local/share/yazses/ | logs, PID, learning corpus if enabled | yes — delete it |
| Optional systemd user unit | start at login, if you ask for it | yes — yazses autostart disable |
The input group is the one real security consideration, and it is worth understanding
Membership lets any program you run read raw input events — which is how the hold-to-talk hotkey works at all, and it is the same mechanism every Linux hotkey daemon uses. It is a genuine privilege grant, so it is stated plainly here rather than buried. If you are not comfortable with it, yazses transcribe needs none of it, and neither does Docker.
What it does not do¶
- No account, no API key, no licence server, no sign-up.
- No telemetry. Nothing is counted, phoned home, or reported — there is no analytics code in the project at all. Downloads on PyPI are the only number the project can see, and that is PyPI's counter, not ours.
- No background network access after the model is downloaded.
- No autostart unless you run
yazses autostart enable.
Getting it back off¶
Uninstalling is one page, and it removes everything listed above.
Ready? Install on Linux · macOS · Windows — or try it without installing anything first.