Skip to content

YazSes

Offline, on-device voice dictation for Linux, macOS & Windows. Hold a key, speak, release — your words are transcribed locally with faster-whisper and typed into any focused app. No cloud. No API key. No subscription. Nothing leaves your machine.

Get started Install from PyPI Star on GitHub

hold→ speak→ release→ text appears

yazses doctor — all green, fully offline

Why YazSes

  • 100% offline & private


    Speech is transcribed on-device with CPU faster-whisper (int8). No GPU, no network, no account. Nothing you say ever leaves the machine.

    Privacy statement

  • Types into any app


    Hold the hotkey, speak, release — the text lands in whatever window has focus: editor, browser, terminal, chat. Works on X11 and Wayland.

    Install on Linux

  • Voice commands & macros


    A regex grammar (plus an optional ~0.5B SLM router) maps "undo that", "save file", "go to line 42" to real key sequences.

    Command index

  • Transcribe recordings


    yazses transcribe meeting.m4a turns any audio/video file into text — offline, with --diarize speaker labels and subtitle export.

    Transcription guide

  • Built for accessibility


    VAD calibration, mic-level tuning, dysfluency-friendly mode, and an EMG muscle-sensor trigger for fully hands-free use.

    Features

  • Self-improving, on your terms


    An opt-in, encrypted, on-device learning corpus lets yazses tune propose accuracy fixes from your own corrections.

    Performance tuning

Install

pipx install yazses
bash <(curl -fsSL https://raw.githubusercontent.com/MSKazemi/yazses/main/install-apt.sh)

Not the snap

The strict-confinement snap can't read the keyboard, so hold-to-talk never fires — use the APT script or pipx above.

Linux only — provision the system in one command (the install-apt.sh / APT path does it automatically):

yazses setup        # installs audio + injection deps, joins the input group, sets up ydotoold
# then log out and back in (the input-group change needs a fresh login)

This installs libportaudio2 (audio), the X11/Wayland injection tools, adds you to the input group, and — on GNOME/KDE Wayland, where wtype is blocked — sets up ydotoold (the only way to inject keystrokes there). Re-run it anytime; it only fixes what's missing.

Then:

yazses doctor     # check mic, injection backend, permissions (want [OK] Keyboard capture)
yazses enroll     # calibrate your microphone (~30 s)
yazses start      # start the dictation daemon

Hold the hotkey (Space on Linux, Right Option on macOS, Right Ctrl on Windows), speak, release — the text appears in the focused app within about a second.

What it does

  • Offline dictation — type into any focused app with on-device faster-whisper (CPU, int8). No GPU needed.
  • Transcribe recordingsyazses transcribe meeting.m4a turns any audio/video file into text, fully offline. Add --diarize to tag who said what and --format srt for subtitles. See the transcription guide.
  • Voice commands — a regex grammar (plus an optional ~0.5B SLM router) maps phrases to editor/terminal key sequences: "undo that", "save file", "go to line 42", "run the tests", "rename this to user_id".
  • Macros & personal vocabulary — define multi-step commands and teach YazSes your mis-heard words.
  • Dysfluency-Friendly Mode — opt-in collapse of stutters/repeats for stuttered or dysarthric speech.
  • Self-improving — opt-in, encrypted on-device learning corpus; yazses tune proposes accuracy fixes from your own corrections.
  • Accessibility — VAD calibration, mic-level tuning, and EMG (muscle-sensor) trigger support.

When not to use it

YazSes is not an LLM agent — it dictates text and runs editor/terminal commands; it does not browse, reason over your files, or hold a conversation. It uses CPU faster-whisper (a cloud service may still win on raw accuracy for a noisy mic), ships English-tuned *.en models by default, and is desktop-only.

How it works

Hold hotkey → record audio → VAD gate → faster-whisper (CPU)
            → clean + disfluency filter → command grammar (Tier 1 regex,
              optional Tier 2 SLM router) → dictate? type it · command? send keys

Two at-a-glance signals show you what YazSes is doing: a top-bar "Y" tray icon whose colour is a live state indicator (🔵 idle · 🟢 dictating · 🟡 no text target → clipboard · 🟣 command mode · 🔴 problem) and an optional sonar overlay that pulses near your cursor while it's listening. See Tray icon & overlay for what each colour means.

Documentation

FAQ

Does it work without internet? Yes — transcription runs locally; nothing is sent anywhere by default.

What GPU do I need? None. It runs on CPU; 4 GB RAM minimum, 8 GB comfortable.

Does it work on Wayland? Yes via the APT or pipx install (uses wtype/ydotool). Use one of those, not the snap — strict confinement stops the snap from reading the keyboard, so the hold-to-talk hotkey never fires.

Is it a replacement for Talon? YazSes focuses on offline dictation plus a practical command grammar. Talon has far more advanced scripting. They can coexist.


Apache-2.0 licensed. If YazSes is useful to you, a ⭐ on GitHub helps others find it.