Skip to content

Feature Reference

YazSes ships 152 capabilities. The core and the capabilities marked recommended (on by default) are on from the start; the rest are off by default — turn one on with yazses features enable <toggle> and apply with yazses restart. Browse them interactively with yazses features (grouped) or yazses features info <toggle> (one card).

Tiers: core (always on) · recommended (on by default) · recommended (safe, worth enabling) · optional · experimental (rough edges — needs --force to enable) · planned (designed but not yet wired into this build — cannot be enabled yet; contributions welcome).

Contents

Core dictation

The hold-to-talk essentials and how speech is captured and turned into text.

Dictation core

  • Toggle: — · Tier: core · Config: always on
  • What it does: The core hold-to-talk transcription. Can't be turned off.
  • Use when: When you want to type anywhere by voice instead of the keyboard, hands-free.
  • Example: Hold your hotkey and speak; release to type.
  • Activate: always on (cannot be disabled)

Voice commands

  • Toggle: commands · Tier: recommended (on by default) · Config: [commands]
  • What it does: Spoken commands like 'undo', 'save', 'delete last word'. Keep on.
  • Use when: When you want to trigger edits and actions by voice mid-dictation without touching keys.
  • Example: Hold the command key and say 'undo' or 'save'.
  • Activate: yazses features enable commands then yazses restart

Voice punctuation

  • Toggle: voice-punctuation · Tier: optional · Config: [commands] voice_punctuation
  • What it does: Say 'comma', 'period', 'new line', 'question mark' to insert marks. Off by default — those words also occur in ordinary speech.
  • Use when: When you must place exact punctuation and line breaks and won't trust automatic guessing.
  • Example: Say 'hello comma world period' → 'hello, world.'
  • Activate: yazses features enable voice-punctuation then yazses restart

Mid-Thought Undo

  • Toggle: undo · Tier: recommended (on by default) · Config: [revise] — say 'scratch that'
  • What it does: Say 'scratch that' to drop the last phrase. Keep on.
  • Use when: When you misspeak and want to retract the last phrase without reaching for backspace.
  • Example: Say 'scratch that' to drop the last phrase.
  • Activate: yazses features enable undo then yazses restart

Voice-activity overlay

  • Toggle: overlay · Tier: optional · Config: [overlay] — sonar rings
  • What it does: Sonar rings near the cursor while you talk. Visual only. Off by default: on Wayland a new window can take keyboard focus and swallow the dictated text.
  • Use when: When you want a glanceable visual cue that the mic is live and hearing you.
  • Example: Watch the sonar rings near the cursor while you talk.
  • Download: ~268 MB
  • Activate: yazses features enable overlay then yazses restart

System-tray icon

  • Toggle: tray · Tier: recommended (on by default) · Config: [tray] — top-bar menu
  • What it does: A microphone icon in the top bar; click it to pick/pin your mic, re-calibrate, and start/stop the daemon. Needs a system tray (GNOME: AppIndicator extension).
  • Use when: When you'd rather click a top-bar icon to switch mics or restart than remember terminal commands.
  • Example: Click the top-bar mic icon → pick a microphone or re-calibrate, no terminal.
  • Download: ~268 MB
  • Activate: yazses features enable tray then yazses restart

Text-target guard

  • Toggle: target-guard · Tier: recommended (on by default) · Config: [injection] target_guard
  • What it does: When you dictate with no text field focused, don't type into the wrong place — turn the tray icon yellow and copy the transcript to the clipboard instead. Precise with AT-SPI (apt install python3-pyatspi gir1.2-atspi-2.0), else best-effort on X11.
  • Use when: When you sometimes speak before clicking into a text field and your words vanish into the wrong window.
  • Example: Dictate with no text box focused → it's copied to the clipboard, not lost.
  • Activate: yazses features enable target-guard then yazses restart

Mic-change guard

  • Toggle: mic-guard · Tier: recommended (on by default) · Config: [audio] device_change_notify
  • What it does: Notifies + auto-heals when your microphone silently switches (e.g. a USB-C monitor stealing capture) so dictation never dies in silence. Keep on.
  • Use when: When plugging in a monitor/headset silently switches your mic and dictation stops working with no clue why.
  • Example: Plug in a USB-C monitor; YazSes notices the mic switched and pops a fix.
  • Activate: yazses features enable mic-guard then yazses restart

Update check

  • Toggle: update-check · Tier: optional · Config: [general] update_check
  • What it does: Tells you once when a newer YazSes is released, with the exact steps to update. OFF by default and the only thing here that touches the network — it asks github.com/PyPI for a version number and nothing else.
  • Use when: When you'd rather be told a fix has shipped than remember to run yazses update yourself.
  • Example: A new release lands; you get one toast with the command to install it.
  • Activate: yazses features enable update-check then yazses restart

Ghost Ahead

  • Toggle: ghost-ahead · Tier: optional · Config: [endpoint] — endpoint pre-warm
  • What it does: Pre-warms the decoder for slightly faster first words.
  • Use when: When first-word latency bugs you and you want the decoder warm before you speak.
  • Example: Nothing to do — the decoder pre-warms for faster first words.
  • Activate: yazses features enable ghost-ahead then yazses restart

Streaming transcription

  • Toggle: streaming · Tier: optional · Config: [streaming]
  • What it does: Injects words live as you speak (overtype). Off by default because it can fight some editors; enable if you want live text.
  • Use when: When you want to see text land live as you talk rather than only on release — and you run tiny.en. Measured on base.en the rolling decode cannot keep up: no live text appears in most utterances, and the final text lands 56 % later than with streaming off (docs/benchmarks.md).
  • Example: yazses features enable streaming — text appears as you speak.
  • Activate: yazses features enable streaming then yazses restart

Parakeet STT engine (high accuracy)

  • Toggle: stt-parakeet · Tier: optional · Config: [stt] engine
  • What it does: Swaps Whisper for NVIDIA Parakeet TDT: 2.06% word error rate against whisper-large-v3's 3.23% on 200 LibriSpeech utterances, at roughly twice whisper-small's CPU speed, and an eighth of large-v3's insertions. English only (v2). Downloads the model (~600 MB) on first use; disable restores faster-whisper.
  • Use when: When you want noticeably fewer English word errors without a bigger, slower Whisper model.
  • Example: yazses features enable stt-parakeet — same hotkey, sharper transcripts.
  • Download: ~4.0 MB
  • Activate: yazses features enable stt-parakeet then yazses restart

Moonshine STT engine (fast, short bursts)

  • Toggle: stt-moonshine · Tier: optional · Config: [stt] engine
  • What it does: Swaps Whisper for Moonshine, which is built for short segments on CPU — the shape of hold-to-talk. Needs only onnxruntime and tokenizers (no torch), so it is a much smaller install than the alternatives. English only; no per-word timings. Disable restores faster-whisper.
  • Use when: When you dictate in short bursts and want the smallest, quickest engine that still reads well.
  • Example: yazses features enable stt-moonshine — a smaller, faster engine for short bursts.
  • Download: ~113 MB
  • Activate: yazses features enable stt-moonshine then yazses restart

Staged dictation

  • Toggle: staged · Tier: optional · Config: [staged] — review before it types
  • What it does: Dictation lands in a buffer you review instead of typing straight into the app; yazses staged commit types it. For code and terminals, where a mis-transcribed token is a command you did not mean to run.
  • Use when: Dictating into a terminal or a source file, where a single mis-transcribed token is not a typo you skim past but a command you did not mean to run. "Scratch that" is already too late once the wrong text is in your shell; this puts the review before anything reaches the app.
  • Example: Hold the hotkey and say "git checkout minus b feature slash retry". Nothing is typed — yazses staged status shows it waiting. Read it, then yazses staged commit types it, or yazses staged undo drops the burst.
  • Activate: yazses features enable staged then yazses restart

Accessibility Continuum

  • Toggle: continuum · Tier: optional · Config: [continuum] — quiet-speech mode
  • What it does: Whisper/Low-Effort Mode lowers the mic gate so quiet or effortful speech is still captured (no shouting). Semantic capture is opt-in. Off by default.
  • Use when: When you speak quietly or with low effort and the normal mic gate keeps discarding you.
  • Example: yazses features enable continuum — whisper-quiet speech still registers.
  • Activate: yazses features enable continuum then yazses restart

Wake-Word Activation

  • Toggle: wakeword · Tier: planned — designed, not yet wired · Config: [wakeword] — 'Hey Yaz', experimental
  • What it does: Start dictation hands-free by saying a keyword. Always-listening (local only, nothing stored until it fires). Needs the wakeword extra. Off by default.
  • Use when: When you want to start dictation completely hands-free without pressing a hotkey.
  • Example: Say your wake word to start dictation hands-free (--force).
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Breath-Paced Dictation

  • Toggle: breath · Tier: planned — designed, not yet wired · Config: [breath] — segment by natural breath groups
  • What it does: Uses your natural breath onsets as sentence/paragraph boundaries, so dictation chunks the way you actually breathe — even without silent pauses. Off by default.
  • Use when: When you dictate in long continuous runs and want sentences segmented by breathing, not silence.
  • Example: Take a breath and YazSes commits that phrase and starts a new one.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Whisper-Aware Mode

  • Toggle: whispermode · Tier: optional · Config: [whispermode] — accurate whispered dictation
  • What it does: Detects when you drop to a whisper and adapts gain, VAD, and the STT prompt so quiet dictation stays accurate in shared or private spaces. Off by default.
  • Use when: When you're in a shared or quiet space and must dictate under your breath without losing accuracy.
  • Example: Drop to a whisper and it turns up the gain so it still hears you.
  • Activate: yazses features enable whispermode then yazses restart

Hesitation-Hold Endpointing

  • Toggle: hesitation · Tier: experimental — not advised yet · Config: [hesitation] — don't cut off filled pauses
  • What it does: Holds the turn open when you trail off with a filled hesitation ('annnd… uhh…') instead of cutting you off — for anyone who thinks out loud. Needs hands-free [autostop]: it only lengthens that silence timeout. Tuned on synthetic signals only. Off by default.
  • Use when: When you think out loud and keep getting cut off whenever you pause to find the next word.
  • Example: Trail off with 'annnd… uhh…' and it waits instead of cutting you off.
  • Activate: yazses features enable hesitation then yazses restart

Focus-Class Auto-Profile

  • Toggle: focusprofile · Tier: recommended · Config: [focusprofile] — auto grammar per app class
  • What it does: Auto-selects the dictation profile from the focused window's class (terminal→shell, editor→code, browser→prose) so you never switch profiles by hand. On after first-run setup (the config key itself defaults to off).
  • Use when: When you move between a terminal, editor, and browser and don't want to switch profiles by hand.
  • Example: Move from your editor to a terminal and the grammar follows.
  • Activate: yazses features enable focusprofile then yazses restart

Adaptive Latency Governor

  • Toggle: latency · Tier: optional · Config: [latency] — load-aware decode
  • What it does: Adapts decoding to system load: while the 1-minute load average is at or above [latency] high_load it decodes with [latency] light_model at a greedy beam, and otherwise with your normal model. The light model loads in the background the first time that happens and then stays resident (~75 MB for tiny.en) unless [residency] latency_keep_alive_s releases it after that many idle seconds. POSIX only — Windows exposes no load average, and there the governor says so and stays off. The speculative-decoding half of ADR-v2-073 is designed but not built. Off by default.
  • Use when: When your CPU is busy and dictation lags, but you still want fast response when it's idle.
  • Example: Dictation stays snappy when your CPU is busy, faster when it's idle.
  • Activate: yazses features enable latency then yazses restart

Hands-Free Auto-Stop

  • Toggle: autostop · Tier: optional · Config: [autostop] — tap & speak
  • What it does: Tap the hotkey once and speak; recording auto-stops when you finish (silence timeout + duration cap). A longer hold is still plain hold-to-talk. Needs a modifier hotkey (the default), since a tap on a character key is invisible. Restart the daemon after enabling. Off by default.
  • Use when: When holding the hotkey the whole time is tiring and you'd rather tap once and let it stop itself.
  • Example: Tap once and speak; recording stops when you finish.
  • Activate: yazses features enable autostop then yazses restart

Codec Streaming (low latency)

  • Toggle: codec · Tier: planned — designed, not yet wired · Config: [codec] — Kyutai/Mimi engine
  • What it does: Routes decoding to a streaming neural-codec engine for lower latency. Needs the codec extra (Kyutai/Mimi); English/French-centric. Off by default.
  • Use when: When you want lower-latency dictation and can install the streaming codec engine.
  • Example: yazses features enable codec — streaming decode engine selection.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Accuracy & correction

Get the words right — bias, correction, and cleanup of what was heard.

Dysfluency-Friendly

  • Toggle: dysfluency · Tier: recommended · Config: [accessibility]
  • What it does: Collapses stutters/repeats (b-b-because→because). Try it if you stutter or have dysarthria. On after first-run setup (the config key itself defaults to off).
  • Use when: When you stutter, have dysarthria, or repeat words and want them cleaned to fluent text.
  • Example: Say 'b-b-because' → 'because' (stutters collapsed).
  • Activate: yazses features enable dysfluency then yazses restart

Punch-In

  • Toggle: punch-in · Tier: optional · Config: [punch_in] — re-speak to fix
  • What it does: Re-speak a phrase to correct the last one. Handy, safe.
  • Use when: When one phrase came out wrong and you'd rather re-say it than manually edit.
  • Example: Re-speak a phrase right after to correct the last one.
  • Activate: yazses features enable punch-in then yazses restart

Confidence Ink

  • Toggle: confidence · Tier: optional · Config: [confidence] — mark unsure words
  • What it does: Marks words Whisper was unsure about so you can re-pick them by voice instead of re-dictating. Uses Whisper's own confidence; local only.
  • Use when: When you want to spot and fix words the recognizer was unsure of instead of re-reading everything.
  • Example: See the low-confidence word count in 'yazses status'.
  • Activate: yazses features enable confidence then yazses restart

Context-Primed Dictation

  • Toggle: context · Tier: optional · Config: [context] — window/selection terms
  • What it does: Primes STT with terms from the active window/selection so domain words are transcribed right. Read transiently, never stored. Off by default.
  • Use when: When domain-specific words in your active window keep getting transcribed wrong.
  • Example: Open a file in your editor; dictation is primed from its LSP context.
  • Activate: yazses features enable context then yazses restart

Diacritize

  • Toggle: diacritize · Tier: optional · Config: [diacritize] — restore dropped diacritics
  • What it does: Restore the diacritics ASR drops — 'cafe' → 'café', 'naive' → 'naïve' — via an unambiguous lexicon (ambiguous words left alone). Off by default.
  • Use when: When ASR strips accents from words like cafe or naive and you need them restored.
  • Example: Dictate 'a cafe cliche' and get 'a café cliché'.
  • Activate: yazses features enable diacritize then yazses restart

SafeGlyph

  • Toggle: safeglyph · Tier: optional · Config: [safeglyph] — flag homoglyph hazards
  • What it does: Flag Unicode confusables in dictated identifiers/URLs — Cyrillic 'а' vs Latin 'a', zero-width characters, mixed-script words — before they are injected. Off by default.
  • Use when: When you dictate identifiers or URLs and must catch look-alike or hidden Unicode before it lands.
  • Example: A pasted 'pаypal.com' (Cyrillic а) gets flagged before injection.
  • Activate: yazses features enable safeglyph then yazses restart

Checksum-Validated Entry

  • Toggle: checkdigit · Tier: recommended · Config: [checkdigit] — verify dictated ID numbers
  • What it does: Runs dictated account/ID numbers (credit card, IBAN, ISBN) through their check-digit algorithm and flags a mis-heard digit before it lands — with fix suggestions. On after first-run setup (the config key itself defaults to off).
  • Use when: When you dictate a card, IBAN, or ID number where one mis-heard digit would be costly to miss.
  • Example: Dictate a card number and a mis-heard digit is caught instantly.
  • Activate: yazses features enable checkdigit then yazses restart

Involuntary-Vocalization Excision

  • Toggle: involuntary · Tier: optional · Config: [involuntary] — drop coughs & sneezes
  • What it does: Detects and deletes involuntary sounds (cough, throat-clear, sneeze) from the stream so they never become garbage tokens or spurious commands. Off by default.
  • Use when: When a cough, throat-clear, or sneeze keeps turning into garbage tokens in your dictation.
  • Example: Cough mid-sentence and it's dropped before it reaches the text.
  • Activate: yazses features enable involuntary then yazses restart

Self-Learning Correction Dictionary

  • Toggle: corrdict · Tier: recommended · Config: [corrdict] — auto-fix your recurring errors
  • What it does: Learns the ASR errors you keep fixing (e.g. 'yaz says' → 'YazSes') and applies them automatically to future output. High-precision, from your own edits. On after first-run setup (the config key itself defaults to off).
  • Use when: When you keep fixing the same ASR mistake and want it corrected automatically from now on.
  • Example: You keep fixing 'yaz says'→'YazSes'; soon it's fixed automatically.
  • Activate: yazses features enable corrdict then yazses restart

Confidence-Gated Re-Ask

  • Toggle: reask · Tier: optional · Config: [reask] — resolve uncertain words
  • What it does: When Whisper is unsure which of their/there, to/too/two, its/it's... you said, the burst waits and a notification lists the options. Say 'first', 'second', 'third' or the word itself to patch just that word; anything else releases the text unchanged, and an unanswered hold goes to the clipboard after ten seconds. Fires only on one uncertain word at a time. [reask] threshold is the log-probability below which a word counts as unsure. Off by default.
  • Use when: When one word is often guessed wrong and you'd rather confirm it than retype the whole line.
  • Example: An unsure 'their/there' pops a quick pick instead of guessing wrong.
  • Activate: yazses features enable reask then yazses restart

Phonetic Spelling Mode

  • Toggle: spelling · Tier: recommended · Config: [spelling] — NATO → exact characters
  • What it does: A character-exact mode for passwords/codes/IDs: hold the command key and say 'spell capital alpha bravo double lima' → 'Abll'. Handles digits and symbols. Needs [hotkey] command_key bound. On after first-run setup (the config key itself defaults to off).
  • Use when: When dictating a password, code, or ID that has to be character-exact.
  • Example: Say 'capital alpha bravo double lima' to type 'Abll' exactly.
  • Activate: yazses features enable spelling then yazses restart

Hotwords

  • Toggle: hotwords · Tier: optional · Config: [hotwords] — fix mis-heard names/jargon
  • What it does: Repairs names and jargon from your vocabulary (yazses vocab, plus [hotwords] terms) that the recogniser mis-heard, after decoding, with any engine. A word is only changed when it sounds the same and is spelled almost the same, and each change is logged. It does not bias the decoder itself. Off by default.
  • Use when: When rare names or jargon keep getting mis-transcribed despite a vocabulary prompt.
  • Example: Add 'Kubernetes' to vocab and it stops being mis-heard.
  • Activate: yazses features enable hotwords then yazses restart

Mid-Utterance Self-Repair

  • Toggle: self_repair · Tier: optional · Config: [commands] self_repair
  • What it does: Applies in-burst corrections before typing: 'email Sarah no I mean Sara' → 'email Sara'. Off by default — editing phrases occur in ordinary speech.
  • Use when: When you catch a slip mid-sentence and naturally say 'no I mean X' instead of editing.
  • Example: Say 'email Sarah no I mean Sara' → 'email Sara'.
  • Activate: yazses features enable self_repair then yazses restart

Screen-Grounded Dictation

  • Toggle: screengrounded · Tier: optional · Config: [screengrounded] — bias from screen
  • What it does: Primes Whisper with names visible in the focused window so they transcribe right the first time. Reads labels via AT-SPI at the start of each hold (Linux + pyatspi); no OCR yet. Experimental. Off by default.
  • Use when: When names visible on your screen keep getting mis-transcribed in replies and chats.
  • Example: A name shown on screen transcribes right the first time.
  • Activate: yazses features enable screengrounded then yazses restart

Grammar Repair

  • Toggle: gec · Tier: optional · Config: [gec] — minimal-edit correction
  • What it does: Fixes article/agreement errors in dictated text with minimal edits, tuned for non-native speakers. Register-preserving; local-only. Off by default.
  • Use when: When you're a non-native speaker and want article/agreement slips fixed with minimal edits.
  • Example: Dictate 'a apple' and it's corrected to 'an apple'.
  • Activate: yazses features enable gec then yazses restart

Acoustic Profiles

  • Toggle: acoustic_profiles · Tier: optional · Config: [acoustic_profiles] — scene-adaptive
  • What it does: Judges whether the room is quiet or noisy from the quietest moments of each recording and, in a noisy room, holds flat background noise to a slightly higher silence gate so it is not sent to Whisper. The gate is relative to your own vad_threshold, never above 1.5x it, in memory only, and speech is never held to it. No extra needed. Off by default.
  • Use when: When a fan or traffic hum keeps getting transcribed as stray words on a key press with no speech.
  • Example: Work somewhere with a steady hum — a held key over just room noise types nothing.
  • Activate: yazses features enable acoustic_profiles then yazses restart

Audio-Anchored Scrubbing

  • Toggle: scrub · Tier: planned — designed, not yet wired · Config: [scrub] — replay/pinpoint a word
  • What it does: Keeps word-level timestamps so you can replay what you said or pick a word to re-dictate just that word. Audio stays in RAM. Off by default.
  • Use when: When you're unsure a word came out right and want to replay your audio or re-dictate just that word.
  • Example: Say a word to replay its audio or re-dictate just that word.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Phonetic Corrector

  • Toggle: phonetic · Tier: optional · Config: [phonetic] — fix mis-heard names
  • What it does: Fixes mis-heard proper nouns by sound against your vocabulary ('Cuber Netties'->'Kubernetes'). Pure, conservative. Off by default.
  • Use when: When STT keeps mangling the same proper nouns or jargon and you want them auto-fixed by sound.
  • Example: 'Cuber Netties' is auto-corrected to 'Kubernetes'.
  • Activate: yazses features enable phonetic then yazses restart

Hallucination Guard

  • Toggle: hallucination · Tier: optional · Config: [hallucination] — drop ghost text
  • What it does: Drops Whisper's fabricated text on silence/noise (the phantom 'Thank you.', 'please subscribe', or looped phrases) before it's typed. Pure, conservative. Off.
  • Use when: When Whisper types phantom phrases like 'Thank you.' during silence or background noise.
  • Example: Nothing to do — fabricated silence transcripts are dropped.
  • Activate: yazses features enable hallucination then yazses restart

Noise Suppression

  • Toggle: denoise · Tier: experimental — not advised yet · Config: [denoise] — clean mic before STT
  • What it does: Removes background noise/echo before transcription so dictation works in noisy rooms. Enabling installs noisereduce and uses the spectral backend (the default): steady broadband noise -- fans, air conditioning, road hum -- not a second speaker, which is the Cocktail Filter's job. The deepfilternet backend still parses but can never be installed (it caps numpy<2.0 against this project's numpy>=2.4.6) and passes audio through. Off by default.
  • Use when: When you're dictating in a noisy room and background sound is hurting accuracy.
  • Example: yazses features enable denoise — background noise is filtered pre-STT.
  • Download: ~62 MB
  • Activate: yazses features enable denoise then yazses restart

Formatting & structure

Shape the output — punctuation, structure, casing, code, math, and markup.

Chinese script (简体/繁體)

  • Toggle: chinese-script · Tier: optional · Config: [stt] chinese_script
  • What it does: Write Chinese output in one Han script instead of whichever one Whisper picked for that utterance. Measured on clean Mandarin speech, 13 of 20 correct transcriptions came back in Traditional characters. Enable for Simplified (mainland); set [stt] chinese_script = "traditional" for Taiwan/Hong Kong. Only affects Chinese text, so it also needs a multilingual model ([stt] model without the .en suffix) and language = "zh" — on an English-only model it can do nothing.
  • Use when: When you dictate Chinese and want it always written in your own script — Simplified on the mainland, Traditional in Taiwan or Hong Kong.
  • Example: Dictating 简体中文 and getting 繁體字 back — this pins the script.
  • Download: ~0.5 MB
  • Activate: yazses features enable chinese-script then yazses restart

Prosody Ink

  • Toggle: prosody · Tier: optional · Config: [prosody] — pause→¶, emphasis→bold
  • What it does: Turns pauses into paragraphs and stressed words into bold.
  • Use when: When you want your natural pauses and emphasis to become paragraphs and bold automatically.
  • Example: Pause between thoughts → a new paragraph; stress a word → bold.
  • Download: ~11 MB
  • Activate: yazses features enable prosody then yazses restart

LLM cleanup

  • Toggle: llm-cleanup · Tier: optional · Config: [filters.disfluency]
  • What it does: Reformats dictation with a small offline LLM. Needs a model file.
  • Use when: When rambly dictation needs polishing into clean prose and you have an offline LLM available.
  • Example: yazses features enable llm-cleanup — offline LLM tidies dictation.
  • Download: ~77 MB
  • Activate: yazses features enable llm-cleanup then yazses restart

BrailleOut

  • Toggle: brailleout · Tier: optional · Config: [brailleout] — dictation as Unicode Braille
  • What it does: Emit Grade-2 (UEB) Unicode Braille cells so a Braille-display or DeafBlind user gets dictation directly in Braille — no screen-reader round-trip. Off by default.
  • Use when: When a Braille-display or DeafBlind user needs dictation as Braille cells, no screen reader.
  • Example: Dictate 'hello' and your Braille display gets ⠓⠑⠇⠇⠕ directly.
  • Activate: yazses features enable brailleout then yazses restart

Spoken Outline

  • Toggle: outline · Tier: optional · Config: [outline] — voice-driven outline tree
  • What it does: Say 'new item / indent / promote / collapse' to drive a live outline tree and render it as Markdown or OPML — structured idea capture by voice. Off by default.
  • Use when: When you're capturing structured ideas and want a live outline tree built by voice.
  • Example: Say 'new item groceries, indent, new item milk' → a nested outline.
  • Activate: yazses features enable outline then yazses restart

Diagrams-as-Code by Voice

  • Toggle: diagramvox · Tier: optional · Config: [diagramvox] — dictate a flowchart
  • What it does: Dictate a flowchart ('start goes to login; login goes to dashboard if success') and get Mermaid/Graphviz source — draw diagrams without a mouse or canvas. "And" fans a clause out to multiple sources or destinations, so one utterance can describe a whole graph, not just one edge. Off by default.
  • Use when: When you want to build a flowchart as code by voice without touching a mouse or canvas.
  • Example: Say 'A goes to B and C, B goes to D' and get a three-edge Mermaid flowchart.
  • Activate: yazses features enable diagramvox then yazses restart

Screenplay Auto-Format

  • Toggle: screenplay · Tier: optional · Config: [screenplay] — dialogue → Fountain
  • What it does: Formats dictated scenes and dialogue as Fountain screenplay markup (scene headings, character cues, smart curly quotes). For screenwriters and playwrights. Off by default.
  • Use when: When you're drafting a script and want scenes and dialogue formatted without typing Fountain markup.
  • Example: Dictate a scene and it lands as proper INT./EXT. Fountain markup.
  • Activate: yazses features enable screenplay then yazses restart

Style-Consistency Enforcer

  • Toggle: styleguard · Tier: optional · Config: [styleguard] — apply your house style
  • What it does: Applies your style sheet to each dictation ('e-mail' not 'email', US spelling, 'cannot' not 'can not') so terminology stays consistent — a Vale-lite pass. Off by default.
  • Use when: When you write to a house style and need terms and spellings kept consistent automatically.
  • Example: Say 'email' and your style sheet rewrites it to 'e-mail' automatically.
  • Activate: yazses features enable styleguard then yazses restart

Suggestion-Mode Dictation

  • Toggle: suggestmode · Tier: optional · Config: [suggestmode] — edits as tracked changes
  • What it does: Emits dictated edits as CriticMarkup tracked changes (add, cut, oldnew) for an editor to review later, instead of applying them. Off by default.
  • Use when: When you edit a shared doc where changes must be reviewed before they're accepted, not applied.
  • Example: Your edit lands as oldnew for the author to accept later.
  • Activate: yazses features enable suggestmode then yazses restart

Semantic Line Breaks

  • Toggle: sembr · Tier: optional · Config: [sembr] — one clause per source line
  • What it does: Breaks dictated prose one clause per line so git diffs and merges stay clean — the rendered output is unchanged. For anyone versioning prose in git. Off by default.
  • Use when: When you version prose in git and want clean diffs by keeping one clause per source line.
  • Example: Dictate a paragraph and each clause lands on its own source line.
  • Activate: yazses features enable sembr then yazses restart

Acronym & Glossary Manager

  • Toggle: acronyms · Tier: optional · Config: [acronyms] — expand on first use
  • What it does: Expands an acronym on first mention ('World Health Organization (WHO)'), contracts it after, and warns about acronyms you never defined. Off by default.
  • Use when: When you write reports full of acronyms and need each defined on first use and kept consistent.
  • Example: Say 'WHO' the first time and it writes out the full name for you.
  • Activate: yazses features enable acronyms then yazses restart

Prosodic Auto-Punctuation

  • Toggle: prosodypunct · Tier: optional · Config: [prosodypunct] — punctuation from prosody
  • What it does: Inserts periods and commas from the pauses in how you speak — no need to say 'comma' or 'period'. Fills gaps only: punctuation the recognizer already wrote is kept. Batch dictation only. Off by default.
  • Use when: When you want natural punctuation from how you speak instead of saying 'comma' and 'period'.
  • Example: Speak naturally and the periods and commas appear on their own.
  • Activate: yazses features enable prosodypunct then yazses restart

Spoken Table Entry

  • Toggle: tablecsv · Tier: optional · Config: [tablecsv] — dictate rows of data
  • What it does: Bulk data entry by voice: 'row: Ada, 1815, London' types tab/comma cells and 'next row' moves down. For spreadsheets and forms. Off by default.
  • Use when: When you're doing repetitive row-by-row data entry and want to speak the cells instead of tabbing.
  • Example: Say 'row: Ada, 1815, London' to fill a spreadsheet row.
  • Activate: yazses features enable tablecsv then yazses restart

Voice Case Transform

  • Toggle: casetransform · Tier: optional · Config: [casetransform] — recase the selection
  • What it does: Recase the selected text by voice: 'make this snake_case', 'Title Case', 'SHOUT', 'camelCase'. Off by default.
  • Use when: When you need to recase a selection to snake_case, camelCase, or Title Case without retyping.
  • Example: Select a name, say 'make this snake_case', and it rewrites.
  • Activate: yazses features enable casetransform then yazses restart

Auto-Pairing & Wrap

  • Toggle: autopair · Tier: optional · Config: [autopair] — balance brackets, wrap selection
  • What it does: Balances brackets/quotes in dictated code and wraps a selection ('wrap this in parens'). Off by default.
  • Use when: When you dictate code by voice and keep leaving brackets or quotes unbalanced, or need to wrap.
  • Example: Dictate '(a plus b' and it closes to '(a plus b)'.
  • Activate: yazses features enable autopair then yazses restart

Inline Compute

  • Toggle: compute · Tier: recommended · Config: [compute] — types the answer
  • What it does: Say 'what's 15% of 240' and it types 36. On-device arithmetic and percentages, no cloud calculator. On after first-run setup (the config key itself defaults to off).
  • Use when: When you need a quick sum or percentage typed straight into your text without a calculator.
  • Example: Say "what's 15% of 240" and it types 36.
  • Activate: yazses features enable compute then yazses restart

Verbatim / Autoformat Toggle

  • Toggle: verbatim · Tier: recommended · Config: [verbatim] — freeze formatting on command
  • What it does: Say 'dictate verbatim' to freeze all formatting (ITN, punctuation, reflow) for exact capture, 'resume formatting' to restore — mid-burst. On after first-run setup (the config key itself defaults to off).
  • Use when: When you need exact literal capture (a quote, a code block) with no auto-formatting applied.
  • Example: Say 'dictate verbatim' and 'one hundred dollars' types literally.
  • Activate: yazses features enable verbatim then yazses restart

Structured-Markup Dictation

  • Toggle: markup · Tier: optional · Config: [markup] — speak lists & tables
  • What it does: Speak structure and get Markdown/org: 'bullet list: apples; oranges' → a list; 'table columns Name, Age; row Alice, 30' → a table. Off by default.
  • Use when: When dictating notes that need real lists or tables, not a flat paragraph.
  • Example: Say 'bullet list: apples; oranges; pears' to type a Markdown list.
  • Activate: yazses features enable markup then yazses restart

Spoken Regex Builder

  • Toggle: spokenregex · Tier: optional · Config: [spokenregex] — dictate search patterns
  • What it does: Build regexes by voice: hold the command key and say 'regex four digits dash two digits' → \d{4}-\d{2}. Feeds find dialogs and grep. Needs [hotkey] command_key bound. Off by default.
  • Use when: When you need a regex for a find dialog or grep but don't want to type the syntax.
  • Example: Say 'four digits dash two digits' to build \d{4}-\d{2}.
  • Activate: yazses features enable spokenregex then yazses restart

On-Device Condense

  • Toggle: condense · Tier: optional · Config: [condense] — summarise your ramble
  • What it does: Say 'condense' (or 'summarise'/'tighten') and then a rambling paragraph, and the tightened version is typed instead. Local, extractive, no model. Operates on what you just said rather than on text already on screen, which would need a caret position nothing can supply yet. Off by default.
  • Use when: When you tend to ramble and want a tightened summary typed instead of the full transcript.
  • Example: Ramble for a paragraph and a tightened 2-sentence summary is typed.
  • Activate: yazses features enable condense then yazses restart

Spoken Spreadsheet

  • Toggle: spreadsheet · Tier: optional · Config: [spreadsheet] — grid nav + cells
  • What it does: Grid navigation for spreadsheets by voice: 'next row', 'cell down', 'top of column'. Hands-free 2D entry. Cell addressing ('go to B7') is deliberately not wired: it needs an app-specific Go To binding and Excel and Calc disagree, so a guessed shortcut would silently act on whatever is focused. Off by default.
  • Use when: When entering data into a grid and you need hands-free cell navigation and addressing.
  • Example: Say 'next row' or 'go to B7' to drive a spreadsheet.
  • Activate: yazses features enable spreadsheet then yazses restart

Spoken Temporal Normalizer

  • Toggle: temporal · Tier: optional · Config: [temporal] — dates from speech
  • What it does: Resolves spoken dates against the clock: 'next Friday' → a concrete date, 'tomorrow', 'in two weeks'. Uses only the local clock. Off by default.
  • Use when: When dictating dates like 'next Friday' that should land as concrete calendar dates.
  • Example: Say 'next Friday' and it types the concrete date.
  • Activate: yazses features enable temporal then yazses restart

Emoji & Symbol by Voice

  • Toggle: symbols · Tier: optional · Config: [commands] symbols
  • What it does: Speak emoji, symbols and arrows: 'shrug emoji' → 🤷, 'right arrow' → →, 'degree sign' → °. Off by default — the names occur in ordinary speech.
  • Use when: When you often need emoji, arrows, or special symbols you can't easily produce by voice.
  • Example: Say 'right arrow' → → or 'shrug emoji' → 🤷.
  • Activate: yazses features enable symbols then yazses restart

Voice Unit Conversion

  • Toggle: convert · Tier: optional · Config: [convert] — inline conversions
  • What it does: Evaluate spoken conversions inline: 'twenty miles in kilometers' → '32.19 kilometers'. Offline, no cloud. Off by default.
  • Use when: When you say a unit conversion mid-dictation and want the answer typed, not the words.
  • Example: Say 'twenty miles in kilometers' → '32.19 kilometers'.
  • Activate: yazses features enable convert then yazses restart

Redaction Ink

  • Toggle: redaction · Tier: optional · Config: [redaction] — mask secrets before typing
  • What it does: Detects spoken secrets (card numbers, SSNs, keys, emails) and masks them before they're typed into another window. Regex + Luhn, local-only. Off by default.
  • Use when: When dictating near secrets (card numbers, SSNs) that must never be typed into another app.
  • Example: Speak a card number and it's typed as [CARD], not the digits.
  • Activate: yazses features enable redaction then yazses restart

Field-Aware Dictation

  • Toggle: fieldaware · Tier: optional · Config: [fieldaware] — shape output by field
  • What it does: Reshapes output to the focused control: number field → digits, search box → no trailing period, password field → refuses to type. Off by default.
  • Use when: When dictating into forms where each field needs different formatting (digits, no period).
  • Example: Focus a number field and 'forty two' is typed as 42.
  • Activate: yazses features enable fieldaware then yazses restart

Entity ITN

  • Toggle: itn · Tier: optional · Config: [itn] — spoken emails/versions → written
  • What it does: Turns spoken structured entities into written form with no command words: 'john dot doe at gmail dot com' → the email, 'version two point one' → v2.1. Off by default.
  • Use when: When you dictate emails, versions, or numbers and want them written in proper form, no command words.
  • Example: Say 'john dot doe at gmail dot com' → john.doe@gmail.com.
  • Activate: yazses features enable itn then yazses restart

Dictation Reflow

  • Toggle: reflow · Tier: optional · Config: [reflow] — 'structure this' → outline
  • What it does: Say 'structure this' to rewrite your last ramble into bullets and action items. Pure heuristic; a local SLM refines it via the reflow extra. Off by default.
  • Use when: When you've brain-dumped a messy ramble and want it reshaped into clean bullets and action items.
  • Example: Ramble, then say 'structure this' → a bulleted outline.
  • Activate: yazses features enable reflow then yazses restart

Smart-Paste

  • Toggle: smartpaste · Tier: optional · Config: [smartpaste] — adapt syntax to app
  • What it does: Adapts injected text to the focused app: a spoken bullet becomes '- ' and a bare URL is angle-bracketed in Markdown notes; terminals, editors, mail and plain fields are left exactly as dictated. Local window info only, no model. Needs the focused-window probe, so [injection] target_guard must not be "off". Off by default.
  • Use when: When you dictate the same text into different apps and want the formatting to fit each one.
  • Example: Dictate into markdown vs a terminal — syntax adapts to the app.
  • Activate: yazses features enable smartpaste then yazses restart

Spoken Code Mode

  • Toggle: code · Tier: optional · Config: [code] — dictate code syntax
  • What it does: Dictate code: spoken symbols become punctuation, and a style phrase plus words becomes one identifier ('code self dot camel case user name' -> self.userName; camel/pascal/snake/kebab/constant case). The identifier ends at the next symbol, the next style phrase, 'end case', or the end of the phrase. Hold the command key and start with 'code'; needs [hotkey] command_key bound. Off by default.
  • Use when: When you're writing code by voice and need spoken symbols and cased identifiers, not prose.
  • Example: Say 'code self dot camel case user name' → 'self.userName' in code mode.
  • Activate: yazses features enable code then yazses restart

Spoken Math (LaTeX)

  • Toggle: math · Tier: optional · Config: [math] — dictate equations
  • What it does: Dictate math and inject LaTeX: hold the command key and say 'math x squared plus y squared' -> x^{2} + y^{2}. The leading 'math' is required — the keywords are ordinary English, so prose would otherwise be rewritten. Needs [hotkey] command_key bound. Off by default.
  • Use when: When you're writing equations by voice and want them injected as LaTeX.
  • Example: Say 'x squared plus y squared' → 'x^{2} + y^{2}'.
  • Activate: yazses features enable math then yazses restart

Tone-Aware Formatting

  • Toggle: affect · Tier: planned — designed, not yet wired · Config: [affect] — tone → !/?
  • What it does: Adds ! or ? based on your vocal tone (excited/question), beyond pause punctuation. Needs the affect extra for detection; conservative by default. Off.
  • Use when: When you want exclamation and question marks added from your tone, not spoken punctuation.
  • Example: Excited speech → an exclamation mark; questions → a question mark.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Editing & navigation

Revise, navigate, and manage text and windows by voice.

Spoken Edit Mode

  • Toggle: spoken-edit · Tier: optional · Config: [commands] spoken_edit
  • What it does: Edit the last dictation by voice ('change their to there', 'delete the last sentence'). Command-key gated. Off by default.
  • Use when: When you want to revise the text you just dictated by voice rather than by keyboard.
  • Example: Say 'delete last sentence' or 'capitalize that'.
  • Activate: yazses features enable spoken-edit then yazses restart

HatSelect Structural Editing

  • Toggle: hatselect · Tier: planned — designed, not yet wired · Config: [hatselect] — address tokens by spoken label
  • What it does: Every visible token gets a spoken label so you can edit structurally — 'select alpha to charlie', 'delete bravo' — without cursor motions (Cursorless-style). Off by default.
  • Use when: When you want to edit code or text structurally by label instead of moving the cursor.
  • Example: Say 'delete bravo' and the token labeled bravo is gone — no cursor.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

WordFind Reverse Dictionary

  • Toggle: wordfind · Tier: optional · Config: [wordfind] — describe a word, get it
  • What it does: Offline reverse dictionary for tip-of-the-tongue moments — 'the word for when water turns to gas' → a ranked shortlist (evaporation, …). Anomia/AAC-friendly. Off by default.
  • Use when: When a word is on the tip of your tongue and you can only describe what it means.
  • Example: Say 'the word for when water turns to gas' → evaporation.
  • Activate: yazses features enable wordfind then yazses restart

Spaced-Repetition Capture

  • Toggle: srscap · Tier: optional · Config: [srscap] — voice → Anki cloze cards
  • What it does: Say 'remember that X is Y' mid-dictation and it makes a local Anki cloze study card, scheduled by SM-2 — study material captured in the flow of work. Off by default.
  • Use when: When you're studying and want to bank facts as flashcards without breaking your dictation flow.
  • Example: Say 'remember that the capital of France is Paris' → a flashcard.
  • Activate: yazses features enable srscap then yazses restart

Word-Count & Goal Tracker

  • Toggle: wordgoal · Tier: optional · Config: [wordgoal] — track your writing goal
  • What it does: Counts dictated words and tracks a goal: say 'goal 500 words', then 'how many words so far?' for spoken progress. Off by default.
  • Use when: When you're writing toward a word-count target and want spoken progress without leaving your flow.
  • Example: Say 'how many words so far?' and it tells you your progress.
  • Activate: yazses features enable wordgoal then yazses restart

Voice Undo/Redo Timeline

  • Toggle: timeline · Tier: recommended · Config: [timeline] — undo YazSes output by voice
  • What it does: Undo/redo YazSes's own output across bursts by voice — 'undo the last sentence', 'redo' — even where the app's Ctrl+Z is unreliable. On after first-run setup (the config key itself defaults to off).
  • Use when: When you need to take back what YazSes typed across bursts in an app whose own undo is unreliable.
  • Example: Say 'undo the last sentence' to take back what YazSes just typed.
  • Activate: yazses features enable timeline then yazses restart

Session Bookmarks

  • Toggle: bookmarks · Tier: optional · Config: [bookmarks] — checkpoints in a long session
  • What it does: Drop named anchors in a long dictation ('bookmark here as intro') and jump back ('jump to my last bookmark') after a break. Off by default.
  • Use when: When you're in a long dictation session and want named checkpoints to jump back to after a break.
  • Example: Say 'bookmark here', then 'jump to my last bookmark' after a break.
  • Activate: yazses features enable bookmarks then yazses restart

Voice Jump-to-Symbol

  • Toggle: jump · Tier: optional · Config: [jump] — navigate code by voice
  • What it does: Run yazses jump "<spoken target>" — 'jump to function tokenize', 'go to line 240' → the editor moves there (fuzzy symbol match, or a search fallback). Needs Neovim started with nvim --listen. VS Code is not supported for jumping: its bridge is context-only and no YazSes VS Code extension is published. Off by default.
  • Use when: When you're navigating a code file hands-free and want to jump to a function or line by voice.
  • Example: Say 'go to line 240' or 'jump to function tokenize' to navigate.
  • Activate: yazses features enable jump then yazses restart

Voice Fuzzy File Open

  • Toggle: fileopen · Tier: optional · Config: [fileopen] — open files by voice
  • What it does: Run yazses fileopen "<spoken query>" to fuzzy-match your local files and open the best one — 'open the notes about the mortgage'. Shows the match and asks before launching unless you pass --yes. [fileopen] threshold sets how close a match has to be. Mouse-free. Off by default.
  • Use when: When you know a file by topic but not its path and want to open it without the mouse.
  • Example: Say 'open the mortgage notes' to launch the right file.
  • Activate: yazses features enable fileopen then yazses restart

Citation-by-Voice

  • Toggle: cite · Tier: optional · Config: [cite] — cite from your local .bib
  • What it does: Say 'cite Vaswani 2017' and it inserts a formatted citation from your local BibTeX library, fully offline. Off by default.
  • Use when: When writing a paper by voice and you want citations pulled from your local BibTeX library.
  • Example: Say 'cite Vaswani 2017' to insert a citation from your .bib.
  • Activate: yazses features enable cite then yazses restart

Offline Command Mode (rewrite selection)

  • Toggle: rewrite · Tier: optional · Config: [commands] rewrite
  • What it does: Select text, hold the command key and say 'make this shorter' or 'fix the grammar' — the selection is rewritten in place by the LOCAL model. Needs a GGUF configured under [filters.disfluency]. Nothing leaves your machine, and a rewrite that fails its safety checks leaves your text untouched. Off by default.
  • Use when: When you edit prose all day and want an offline alternative to the cloud voice-editing tools.
  • Example: Select a paragraph, hold the command key, say 'make this shorter'.
  • Activate: yazses features enable rewrite then yazses restart

Voice Window Control

  • Toggle: windowctl · Tier: optional · Config: [windowctl] — focus and arrange windows
  • What it does: Say 'focus the browser' to raise a window by name, or 'move window left half', 'maximize', 'workspace 3' to arrange them. X11 only (Wayland does not let one app focus or move another's window). Off by default.
  • Use when: When you want to raise, snap or resize a window without reaching for the mouse or Alt-Tab.
  • Example: Say 'focus the browser' to raise it, or 'move window left half' / 'workspace 3' to arrange.
  • Activate: yazses features enable windowctl then yazses restart

Document Find-and-Replace

  • Toggle: findreplace · Tier: optional · Config: [findreplace] — edit the whole document
  • What it does: Edit the whole document by voice: 'replace every utilise with use'. Not just the last utterance. Off by default.
  • Use when: When you need to change a word across the whole document, not just the last utterance.
  • Example: Say 'replace every utilise with use' to edit the whole document.
  • Activate: yazses features enable findreplace then yazses restart

Clipboard-History by Voice

  • Toggle: cliphistory · Tier: optional · Config: [cliphistory] — recall copies
  • What it does: Recall recent copies by voice: 'paste the second thing I copied', 'the URL I copied'. Local in-memory buffer. Off by default.
  • Use when: When you've copied several things and need to paste an earlier one without re-copying.
  • Example: Say 'paste the second thing I copied' to recall a copy.
  • Activate: yazses features enable cliphistory then yazses restart

Commands & automation

Fire shortcuts, run tools, and automate actions by voice.

Say-Macro

  • Toggle: macros · Tier: optional · Config: [macros]
  • What it does: Speak a trigger word to expand canned text. Needs setup.
  • Use when: When you repeatedly type the same boilerplate and want a spoken shortcut for it.
  • Example: Say your trigger word to expand canned text (configure [macros]).
  • Activate: yazses features enable macros then yazses restart

Chorded Shortcut Synthesis

  • Toggle: chords · Tier: optional · Config: [chords] — spoken shortcut → key-combo text
  • What it does: Run yazses chords "<spoken shortcut>" — 'press control shift P', 'escape twice', 'hit F5' → it prints the key combo (ctrl+shift+p), one per line, to review, script or bind. A command-line tool: it presses nothing, and dictation does not recognise spoken shortcuts. The command works whether or not [chords] enabled is set — nothing reads that key.
  • Use when: When you want the exact key-combo string for a spoken shortcut, to review, script or bind it.
  • Example: yazses chords "press control shift P" prints ctrl+shift+p; nothing is pressed.
  • Activate: nothing to switch on — run yazses chords "<spoken shortcut>"; it prints the key combo (e.g. ctrl+shift+p) and presses nothing. Nothing reads [chords] enabled, so yazses features enable chords changes nothing.

Spoken Shell Pipeline Builder

  • Toggle: shellpipe · Tier: optional · Config: [shellpipe] — build pipelines, preview first
  • What it does: Speak stages ('list files, pipe to grep error, pipe to word count') → renders 'ls | grep error | wc -l' as text for you to review and run yourself. It never executes anything. Off by default.
  • Use when: When you want to build a shell pipeline by voice and see it as text before anything runs.
  • Example: Speak 'list files pipe to grep error' to build a previewed pipeline.
  • Activate: yazses features enable shellpipe then yazses restart

Voice Git Choreographer

  • Toggle: gitvoice · Tier: optional · Config: [gitvoice] — safe git by voice
  • What it does: Run yazses gitvoice "<spoken git command>" — 'commit with message …', 'create branch feature slash login', 'push to main' → it prints the git command and how to undo it. --run runs it; a destructive one (force-push, reset --hard, branch -D, discarding changes) also needs --yes. A command-line tool: nothing is spoken, there is no spoken confirm, and dictation never runs git. The command works whether or not [gitvoice] enabled is set — nothing reads that key.
  • Use when: When you want a spoken git phrase turned into the exact git command, shown before anything runs.
  • Example: yazses gitvoice "force push" --run prints the command and its undo, and refuses without --yes.
  • Activate: nothing to switch on — run yazses gitvoice "<spoken git command>"; it prints the git command and its undo, --run runs it, and a destructive one also needs --yes. Nothing reads [gitvoice] enabled, so yazses features enable gitvoice changes nothing.

Command Safety Gate

  • Toggle: cmdsafety · Tier: recommended · Config: [cmdsafety] — confirm dangerous commands
  • What it does: Holds a destructive dictated command (rm -rf, mkfs, dd, curl|sh, force-push) until you say 'confirm', so a misrecognition can't fire it. Judged on the command text, not on which window is focused, so it still protects on Wayland. On after first-run setup (the config key itself defaults to off).
  • Use when: When you dictate into a shell and a misheard rm or force-push would be unrecoverable.
  • Example: Dictate 'rm -rf' and it waits for you to say 'confirm' before it types.
  • Activate: yazses features enable cmdsafety then yazses restart

Slot-Filling Dictation

  • Toggle: slotfill · Tier: optional · Config: [slotfill] — one utterance → a form
  • What it does: Speak once and fill a named-field template: 'bug in login, high priority, affects Firefox' routes each value to its field. Off by default.
  • Use when: When filing a structured ticket or form and want one utterance routed to its named fields.
  • Example: Say 'high priority, affects Firefox' to fill a bug-report form.
  • Activate: yazses features enable slotfill then yazses restart

Few-Shot Command Spotter

  • Toggle: cmdspotter · Tier: planned — designed, not yet wired · Config: [cmdspotter] — enrolled micro-commands
  • What it does: Enroll a few examples of short commands ('send', 'stop') that fire instantly without a full decode. Needs the kws extra. Off by default.
  • Use when: When a few short commands come up constantly and you want them to fire without a full decode.
  • Example: Enroll 'send' once, then say it to fire the action instantly.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Ambient Audio-Event Guard

  • Toggle: audioguard · Tier: planned — designed, not yet wired · Config: [audioguard] — pause on interruptions
  • What it does: Auto-pauses dictation (or alerts) when it hears a doorbell, phone, alarm or your name. Needs the soundawareness extra. Off by default.
  • Use when: When dictating somewhere with interruptions (doorbell, phone) that should pause recording.
  • Example: The doorbell rings mid-dictation and recording auto-pauses.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Gesture Chords

  • Toggle: gesture · Tier: optional · Config: [gesture] — multi-input chords
  • What it does: Bind chords of face and head gestures (jaw open, brow raise, nod, shake, tilt) to abstract actions like pause or recenter the pointer. Needs a webcam (OpenCV + MediaPipe, shared with Glance-Type) and binds nothing until you add a chord. Experimental: no false-activation study exists yet. Off by default.
  • Use when: When your hands are busy and you want to pause or recenter the pointer with a face-and-head gesture, not a word.
  • Example: Raise your brows and nod to recenter the pointer (bind chords in [gesture.chords]).
  • Download: ~150 MB
  • Activate: yazses features enable gesture then yazses restart

Voice Snippets

  • Toggle: snippets · Tier: optional · Config: [snippets] — spoken text expander
  • What it does: Hold the command key and say a trigger ('insert my signature') to type a stored template. Add entries under [snippets]. Needs [hotkey] command_key bound. Off by default.
  • Use when: When you keep typing the same boilerplate (signature, address) and want a spoken shortcut.
  • Example: Say 'insert my signature' to type a stored template.
  • Activate: yazses features enable snippets then yazses restart

Voice-to-Tool (Spoken MCP)

  • Toggle: agent · Tier: planned — designed, not yet wired · Config: [agent] — run tools by voice
  • What it does: Speak an intent to run allowlisted tools via MCP; state-changing tools ask first. Needs the 'agent' extra + a local planner model. Off by default.
  • Use when: When you want to run allowlisted tools or actions by voice through a local planner.
  • Example: Say 'create a calendar event tomorrow at 3' (allowlisted tools).
  • Download: ~4.5 MB
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Voice Pilot (AT-SPI)

  • Toggle: pilot · Tier: optional · Config: [pilot] — click by voice
  • What it does: Click controls in the focused window by voice in command mode ('click Save', 'toggle dark mode'). Acts on one exact match only; anything else asks you to confirm. Linux + pyatspi; labels only, no screenshots. Experimental. Off by default.
  • Use when: When you want a hands-free desktop, clicking buttons by their labels on Linux.
  • Example: Say 'click the Save button' to drive the focused app via AT-SPI.
  • Activate: yazses features enable pilot then yazses restart

Send to Claude / Codex (pre-filled)

  • Toggle: sendto · Tier: optional · Config: [sendto] — open an AI app with your prompt filled in, never sent
  • What it does: Say 'send to Claude', 'send to Claude Code' or 'send to Codex' as a whole utterance, or run yazses send-to claude|claude-code|codex [TEXT]: that desktop app opens a new conversation with the text in its prompt box, and YazSes types nothing. The text is the staged buffer when staged mode is on, else the last burst (already typed) or the TEXT you give. It is never sent: you press Enter there. Only those three apps' own links, no web fallback; over 14,000 characters is refused, never cut. Not yet verified against any real Claude or Codex app. Off by default.
  • Use when: When you dictate a prompt for the Claude or Codex desktop app and want to read it there before it is sent, without first focusing the app's input box.
  • Example: Dictate a prompt into the staged buffer, then say 'send to Claude': the Claude app opens with it pre-filled, and you press Enter. Or run yazses send-to codex "explain the failing test".
  • Activate: yazses features enable sendto then yazses restart

Multilingual

Dictate, translate, and switch between languages.

Persian text (فارسی)

  • Toggle: persian-normalisation · Tier: optional · Config: [stt] persian_normalisation
  • What it does: Writes Arabic Yeh (ي), Alef Maksura (ى) and Arabic Kaf (ك) as the Persian letters ی and ک, collapses runs of zero-width non-joiners, removes any at the very start or end of the text, composes the text to Unicode NFC and strips bidi override controls. Leaves the letters of URLs, emails, paths, version numbers and Latin identifiers as dictated (the NFC and bidi steps still reach them). It is not a grammar corrector: it does not change words, spelling, digits or punctuation. Only applies when [stt] language is Persian ("fa"); on any other language it does nothing. Off by default, so an upgrade does not change the text you already get.
  • Use when: When you dictate Persian and the text mixes Arabic and Persian letters that search and copy-paste treat as different characters.
  • Example: Persian dictation whose Arabic-keyboard ي and ك come out as the Persian ی and ک.
  • Activate: yazses features enable persian-normalisation then yazses restart

Polyglot Switch

  • Toggle: polyglot · Tier: planned — designed, not yet wired · Config: [polyglot] — mixed-language
  • What it does: Would decode a burst that mixes the two languages of a declared pair with a code-switch adapter you train yourself (ADR-v2-008). Not wired: no decode path produces the per-span language IDs the router needs, so every burst is decoded by the [stt] model whatever [polyglot] says.
  • Use when: When you naturally mix two languages in one sentence and need both transcribed correctly.
  • Example: Planned: set [polyglot] pair='fa-en' and adapter_path; mixed fa/en bursts would use the adapter.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Transliteration

  • Toggle: translit · Tier: optional · Config: [translit] — romanized → native script
  • What it does: Dictate your native language in Latin letters ('salam, chetori?') and inject the native script — Whisper nails romanized phonetics where native audio fails. Off by default.
  • Use when: When your native language transcribes better romanized and you want it injected in native script.
  • Example: Dictate 'salam' and it types سلام in Persian script.
  • Activate: yazses features enable translit then yazses restart

Per-Language Auto Switching

  • Toggle: langroute · Tier: planned — designed, not yet wired · Config: [langroute] — detect & swap model
  • What it does: Detects the language you speak and hot-swaps to its specialized model + punctuation, no manual toggle. Needs the per-language model files. Off by default.
  • Use when: When you switch spoken languages during a session and don't want to toggle models by hand.
  • Example: Switch languages mid-session and the right model loads automatically.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Compose-in-Target-Language

  • Toggle: compose · Tier: planned — designed, not yet wired · Config: [compose] — speak L1, type L2
  • What it does: Speak your strongest language and inject the text in a target language you write less fluently. Offline MT (translate extra). Off by default.
  • Use when: When you think best in your native language but must write the output in another one.
  • Example: Speak Farsi with [compose] target='en' and type English.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Two-Way Interpreter

  • Toggle: interpret · Tier: planned — designed, not yet wired · Config: [interpret] — face-to-face translate
  • What it does: Face-to-face mode: two speakers alternate and each turn is translated into the other language. Reuses the offline translate + TTS path. Off by default.
  • Use when: When you're in a face-to-face conversation with someone whose language you don't share.
  • Example: Set [interpret] pair='en-es'; each speaker's turn is translated.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Pronunciation Feedback

  • Toggle: pronunciation · Tier: planned — designed, not yet wired · Config: [pronunciation] — L2 practice
  • What it does: Practice mode: dictate a target phrase and get per-phoneme good/fair/poor feedback for accent training. Needs the pronunciation extra. Off by default.
  • Use when: When you're learning a language and want per-phoneme feedback on how close your accent is.
  • Example: Practice mode: dictate a phrase, see per-phoneme good/fair/poor.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Speech Translation

  • Toggle: translate · Tier: optional · Config: [translate] — dictate L1, type English
  • What it does: Speak another language and type English (Whisper's built-in translate; no extra download). Other targets need the seamless extra. Off by default.
  • Use when: When you think in another language but need the text to land in English.
  • Example: yazses features enable translate — speak any language, type English.
  • Activate: yazses features enable translate then yazses restart

Accessibility & input modalities

Alternative input, eyes-free feedback, and accessibility aids.

Mic guard: answer by voice

  • Toggle: mic-voice-answer · Tier: optional · Config: [audio] voice_answer
  • What it does: Say "re-calibrate", "pin this mic" or "ignore" to answer the mic guard's toast, instead of clicking it. Without this the daemon asks a question about your microphone that only a pointer can answer -- and the person seeing it is the one whose dictation just stopped. Off by default because it consumes a burst that would otherwise be typed; the whole utterance must be the answer, and only within 45s of the toast.
  • Use when: When you cannot (or would rather not) use a pointer, and a toast asking about your microphone is the one thing you cannot answer hands-free.
  • Example: The mic-switch toast appears; say "pin this mic" instead of reaching for the mouse.
  • Activate: yazses features enable mic-voice-answer then yazses restart

Overlay: reduced motion

  • Toggle: overlay-reduced-motion · Tier: optional · Config: [overlay] reduced_motion
  • What it does: Stops the overlay's rings travelling: one steady ring while you speak, brightness in discrete steps. The default is "auto", which already follows GNOME/macOS/Windows' own reduce-animations setting -- enable this only if your desktop has no such setting YazSes can read (KDE, Xfce, a bare WM). Disabling restores "auto", not full motion.
  • Use when: When moving things on screen make you unwell and your desktop has no reduce-animations setting YazSes can read.
  • Example: The rings stop travelling; one steady ring shows the mic is live.
  • Activate: yazses features enable overlay-reduced-motion then yazses restart

Read-Back Loop

  • Toggle: read-back · Tier: optional · Config: [tts] + [accessibility] read_back
  • What it does: Speaks the transcript back to you (accessibility). Downloads a TTS model on first use.
  • Use when: When you can't or won't look at the screen and need to hear what was transcribed.
  • Example: yazses features enable read-back — then it speaks the transcript back.
  • Download: ~12 MB
  • Activate: yazses features enable read-back then yazses restart

LoadGuard

  • Toggle: loadguard · Tier: planned — designed, not yet wired · Config: [loadguard] — cognitive-load guardrails
  • What it does: When your speech shows rising cognitive load (pauses, fillers, slowdown), widen confirmations and defer risky actions instead of firing them. Off by default.
  • Use when: When you're mentally taxed and want the system to slow down and confirm before risky actions.
  • Example: Sounding overloaded? Destructive commands wait for a wider confirm.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Echo Own-Audio Replay

  • Toggle: echo · Tier: optional · Config: [echo] — 'play that back'
  • What it does: Say 'play that back' to replay your own captured audio for a text span (not TTS) — catch homophone/ASR errors by ear, eyes-free. Off by default.
  • Use when: When you suspect a homophone or ASR error and want to verify it by hearing your own audio.
  • Example: Say 'play that back' and hear your own recording of the last words.
  • Activate: yazses features enable echo then yazses restart

Screen-Reader Pacing

  • Toggle: srpace · Tier: optional · Config: [srpace] — pace injection to a screen reader
  • What it does: Pace injected text to a screen reader's reading rate, clause-chunked, instead of one burst — so the screen reader can announce it coherently. Off by default.
  • Use when: When a screen-reader user needs injected text paced so the reader can announce it coherently.
  • Example: Dictate a paragraph and your screen reader keeps up, clause by clause.
  • Activate: yazses features enable srpace then yazses restart

Interruptible Proofreading

  • Toggle: proofback · Tier: experimental — not advised yet · Config: [proofback] — barge-in read-back editing
  • What it does: Hold the dictation key while a dictation is being read back: the word being read is marked, and what you say next replaces the text from that word to the end of that dictation — eyes-free proofreading. Needs Read-Back on. Experimental: word timing is estimated, untested on real hardware. Off by default.
  • Use when: When you're proofreading a long dictation eyes-free and need to jump to a mistake as you hear it.
  • Example: Hold the key while a dictation is read back, then say the fix: it replaces the text from the word you interrupted.
  • Activate: yazses features enable proofback then yazses restart

Vocal Morse

  • Toggle: morsevox · Tier: experimental — not advised yet · Config: [morsevox] — two-tone Morse text entry
  • What it does: Type by Morse with your voice: a short hum is a dot, a long hum a dash, and each decoded letter is typed (speech-to-text is not run). Start it hands-free by humming one long steady tone (1.5 s) or by saying 'morse mode'; 3 s of silence ends it, and so does the end-of-work prosign SK (...-.-, keyed as one character), which is not typed. Adapts the dot/dash timing to your rhythm. With the hum entry on, the microphone stays open (a level only). For minimal-ability users. Experimental: timings tuned on synthetic signals only. Off by default.
  • Use when: When you can produce only one or two reliable vocal sounds and need a full-alphabet entry path.
  • Example: One short hum, one long — spell a whole word by voice-Morse.
  • Activate: yazses features enable morsevox then yazses restart

Mouth-Sound Switch Access

  • Toggle: mouthswitch · Tier: experimental — not advised yet · Config: [mouthswitch] — scan-and-select by mouth sounds
  • What it does: Single-switch scanning with non-verbal mouth sounds, for people who can't produce reliable speech: a lip pop starts (or stops) a highlight in the overlay that steps through Enter, Undo, Scroll up, Scroll down and Click every 1.2 s, and a tongue click runs the lit one; the scan keeps going on that item, so another click repeats it. Armed by yazses handsfree resume, stopped by handsfree pause. Where the overlay cannot run, each step is announced instead with an earcon and, with [tts] on, the item's name; [mouthswitch] speak_names says the names without turning on read-back of your dictation. Thresholds tuned on synthetic sounds only. Off by default.
  • Use when: When you can't produce reliable speech and need to drive a scanning selector with mouth sounds, on screen or by ear (speak_names says each item).
  • Example: Pop your lips to start the scan, click your tongue when 'Undo' lights up — no words.
  • Activate: yazses features enable mouthswitch then yazses restart

Pitch-Contour Gestures

  • Toggle: contour · Tier: experimental — not advised yet · Config: [contour] — hum a shape to run a command
  • What it does: Hum a pitch shape as a word-free command: rising = confirm, falling = cancel, rise-fall = undo; a flat hum does nothing. Fires only on an empty or hum-only transcript of mostly-voiced audio, with thresholds tuned on synthetic tones only. Off by default.
  • Use when: When you want to confirm or cancel hands- and word-free, even in noise where speech struggles.
  • Example: Hum a rising note to confirm, a falling one to cancel — no words.
  • Activate: yazses features enable contour then yazses restart

Beam-Steered Spatial VAD

  • Toggle: spatialvad · Tier: planned — designed, not yet wired · Config: [spatialvad] — 2-mic direction gate
  • What it does: With a stereo/2-mic input, drops any sound not coming from your seat (a TV, a colleague) by its arrival direction — enrollment-free, complements Cocktail Filter. Off by default.
  • Use when: When you have a stereo mic and want sound from a TV or nearby colleague gated out by direction.
  • Example: A colleague talks beside you and it's gated out by direction.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Vocal Joystick

  • Toggle: vocaljoystick · Tier: experimental — not advised yet · Config: [vocaljoystick] — analog cursor control by voice
  • What it does: Continuous cursor control by sustaining vowels — 'eee' up-left, 'ooo' up-right, 'ahh' down-right, louder = faster, a held pitch jump = click. No words. Armed by yazses handsfree resume, stopped by handsfree pause; thresholds tuned on synthetic signals only. For severe motor impairment. Off by default.
  • Use when: When you have severe motor impairment and need continuous cursor/scroll control by voice.
  • Example: Hum 'eee' and the cursor glides up and to the left — louder moves it faster.
  • Activate: yazses features enable vocaljoystick then yazses restart

Earcon Feedback

  • Toggle: earcon · Tier: optional · Config: [earcon] — non-speech state tones
  • What it does: Tiny structured tones signal daemon state eyes-free (rising motif = recording, buzz = low confidence, chime = command done) — faster than spoken read-back. Off by default.
  • Use when: When you want instant eyes-free confirmation of daemon state without waiting for a read-back.
  • Example: A rising two-note beep tells you recording started, no glance needed.
  • Activate: yazses features enable earcon then yazses restart

Local Voice Timer

  • Toggle: voicetimer · Tier: optional · Config: [voicetimer] — offline timers & break reminders
  • What it does: Set a timer or break reminder by voice: hold the command key and say 'set a timer for 25 minutes'; 'cancel the timer' stops it. Announced by a desktop notification — fully offline, no phone or cloud assistant. Needs [hotkey] command_key bound. Off by default.
  • Use when: When you want to set a timer or break reminder by voice without a phone or cloud assistant.
  • Example: Say 'set a timer for 25 minutes' — it reminds you, fully offline.
  • Activate: yazses features enable voicetimer then yazses restart

Silent Lip-Reading

  • Toggle: lipread · Tier: planned — designed, not yet wired · Config: [lipread] — dictate with no voice
  • What it does: Dictate silently — a webcam reads your lips when you can't or shouldn't speak. Needs a webcam (vsr extra). Off by default.
  • Use when: When you can't or shouldn't speak aloud but still need to dictate (quiet room, privacy).
  • Example: Mouth the words silently and a webcam reads your lips into text.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Sign-Language Input

  • Toggle: sign · Tier: planned — designed, not yet wired · Config: [sign] — sign to the webcam
  • What it does: Deaf/HoH signers dictate by signing to the webcam; ASL is recognized on-device and typed. Needs a webcam (sign extra). Off by default.
  • Use when: When a Deaf or hard-of-hearing signer wants to dictate by signing instead of speaking.
  • Example: Sign to the webcam and your ASL is recognized and typed.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Head-Pointer

  • Toggle: headpointer · Tier: optional · Config: [headpointer] — cursor by head pose
  • What it does: Move and click the mouse by tilting your head, and pair it with voice for a hands-free desktop. Experimental: it has not been validated with users, and its speed caps and dwell time are provisional. Needs a webcam (OpenCV + MediaPipe, shared with Glance-Type) and a pointer backend. Off by default.
  • Use when: When your hands are unavailable and you need mouse cursor control from head movement.
  • Example: Tilt your head to move the cursor; dwell to click.
  • Download: ~150 MB
  • Activate: yazses features enable headpointer then yazses restart

Personal Read-Back Voice

  • Toggle: readback_clone · Tier: planned — designed, not yet wired · Config: [tts] clone_voice — your own voice
  • What it does: Read the transcript back in a clone of your own voice from a short enrollment. Permissive OpenVoice V2 default; embedding stays in the encrypted corpus. Needs the tts extra and downloads a voice-clone model on first use. Off by default.
  • Use when: When you want read-back spoken in a clone of your own voice, not a generic TTS voice.
  • Example: Enroll once; read-back then uses a clone of your own voice.
  • Download: ~12 MB
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Vocal-Strain Guard

  • Toggle: voicehealth · Tier: experimental — not advised yet · Config: [voicehealth] — break reminders
  • What it does: Advises a break when your voice shows rising strain (jitter/shimmer/HNR) over a session. Advisory only, not diagnostic; thresholds tuned on synthetic signals only. Needs the prosody extra. Off by default.
  • Use when: When you dictate in long stretches and want a nudge to rest before your voice strains.
  • Example: Get a break reminder when your voice shows rising strain.
  • Download: ~11 MB
  • Activate: yazses features enable voicehealth then yazses restart

Voice Mouse Grid

  • Toggle: mousegrid · Tier: experimental — not advised yet · Config: [mousegrid] — click by voice, experimental
  • What it does: Say 'mouse grid', then cell numbers ('three', 'seven') to move the pointer to that cell's centre, then 'click' ('right click', 'double click'); 'back' zooms out, 'cancel' closes. Works where no accessibility tree exists. Needs absolute pointer motion (X11 or macOS); the numbered grid is drawn by the overlay when [overlay] is on. Experimental: tuned on synthetic input only. Off by default.
  • Use when: When you need to click somewhere no accessibility tree exists and want to do it hands-free.
  • Example: Say a grid number to move the cursor, then 'click'.
  • Activate: yazses features enable mousegrid then yazses restart

Modality Role Router

  • Toggle: modality · Tier: experimental — not advised yet · Config: [modality] — multi-input, experimental
  • What it does: Routes each input to its fastest role (gaze→point, EMG→command, voice→dictation). Needs EMG/gaze hardware; experimental. Off by default.
  • Use when: When you have EMG or gaze hardware and want each input assigned to its fastest role.
  • Example: Route dictation vs commands to different targets by role.
  • Activate: yazses features enable modality then yazses restart

Glance-Type (camera)

  • Toggle: gaze · Tier: experimental — not advised yet · Config: [gaze] — look-to-pane, experimental
  • What it does: Uses the webcam to route dictation to the pane you look at. Experimental; needs a webcam + X11.
  • Use when: When you have several panes open and want dictation to land in whichever one you look at.
  • Example: Glance at a screen zone to choose where the next dictation lands.
  • Download: ~150 MB
  • Activate: yazses features enable gaze then yazses restart

Face-Gesture Switch (camera)

  • Toggle: facegesture · Tier: experimental — not advised yet · Config: [facegesture] — hold a face, not a key
  • What it does: Opens the mic while you hold a facial movement (jaw open, brows raised) instead of a key — switch access for people who can speak but cannot press one. Needs a webcam; experimental. Off by default.
  • Use when: When you cannot hold a key — a facial movement becomes the hotkey, using only the webcam.
  • Example: Open your jaw to start dictating, close it to stop — no key at all.
  • Download: ~150 MB
  • Activate: yazses features enable facegesture then yazses restart

Biosignal Switch (EEG/EMG/EOG)

  • Toggle: biosignal · Tier: experimental — not advised yet · Config: [biosignal] — a muscle squeeze or double blink as a switch
  • What it does: Reads an electrode board (OpenBCI, Muse and other BrainFlow boards, a Lab Streaming Layer stream, a NeuroSky or BITalino device, a Myo armband), a recording (CSV, EDF/BDF, XDF) or the built-in synthetic generator and turns only the reliable things an electrode can tell a computer — a muscle squeeze and its strength, a deliberate double blink, optionally a jaw clench — into a switch press, for people who can speak but cannot press a key. It never decodes thoughts. Needs [biosignal] source and a calibration (yazses biosignal calibrate); a board needs the emg-band extra (BrainFlow), the other devices need lsl, emg or ble, while the synthetic and replay sources need nothing. Measure the false-positive rate with yazses biosignal report first. Experimental; off by default.
  • Use when: When you cannot press a key but can squeeze a muscle or blink twice — an electrode board turns that into the hotkey, measured on your own signal.
  • Example: yazses biosignal doctor — then calibrate; squeeze a forearm muscle to start dictating, squeeze to stop.
  • Activate: yazses features enable biosignal then yazses restart

Hands-Free Preset

  • Toggle: handsfree · Tier: experimental — not advised yet · Config: [handsfree] — gaze + head pointer + face switch + voice stop, experimental
  • What it does: One switch that turns on Glance-Type, Head-Pointer with dwell-click, the face switch, Gesture Chords and a voice stop word together, under one global stop. No new engine: it sets their ordinary keys (yazses handsfree explain). Every value is provisional. Needs a webcam. Off by default.
  • Use when: When you want voice, gaze, head pointer and a face switch working together, with one stop.
  • Example: yazses handsfree explain — read what it sets; yazses features enable handsfree --force, yazses restart, then yazses handsfree resume to arm it.
  • Download: ~150 MB
  • Activate: yazses features enable handsfree then yazses restart

Learning, memory & analytics

On-device learning, personal memory, and private analytics.

Voiceprint Mind (personalize)

  • Toggle: personalize · Tier: optional · Config: [personalize] — vocab bias
  • What it does: Biases STT toward terms you use often. Local only.
  • Use when: When your jargon or names get mis-heard and you want STT biased to your own frequent terms.
  • Example: yazses features enable personalize — biases STT to your frequent terms.
  • Activate: yazses features enable personalize then yazses restart

Learning loop

  • Toggle: learning · Tier: optional · Config: [learning] — yazses tune
  • What it does: Records an encrypted local corpus so yazses tune can improve accuracy. Opt-in; nothing leaves your machine.
  • Use when: When you want dictation accuracy to improve over time from your own corrected usage.
  • Example: yazses features enable learning; then 'yazses tune' to review proposals.
  • Activate: yazses features enable learning then yazses restart

Corpus Voiceprint Scrub

  • Toggle: corpus_scrub · Tier: optional · Config: [learning] anonymize_audio
  • What it does: Speaker-anonymizes learning-corpus audio before storage so retained clips keep what was said but not an identifiable voice. Needs learning on. Off by default.
  • Use when: When you enable the learning corpus but want stored audio stripped of your voice identity.
  • Example: Stored learning clips are pitch-shifted to hide your voice identity.
  • Activate: yazses features enable corpus_scrub then yazses restart

Mood Ledger

  • Toggle: sentiment · Tier: planned — designed, not yet wired · Config: [sentiment] — private mood journal
  • What it does: Tags each dictation with an emotion and builds a private mood-over-time view. Labels stay in the encrypted corpus. Needs the sentiment extra. Off by default.
  • Use when: When you want a private journal that tracks how your mood shifts across your dictations.
  • Example: yazses features enable sentiment — builds a private mood-over-time view.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Speaking Coach

  • Toggle: coach · Tier: optional · Config: [coach] — private speech analytics
  • What it does: Private on-device analytics of your dictation: filler rate, words-per-minute, vocabulary diversity, trend. From the encrypted corpus only. Off by default.
  • Use when: When you want to track and cut down your filler words, speaking pace, or vocabulary over time.
  • Example: yazses features enable coach — see filler rate + words-per-minute.
  • Activate: yazses features enable coach then yazses restart

Multi-User Profiles

  • Toggle: multiprofile · Tier: planned — designed, not yet wired · Config: [voiceprint] multi_profile
  • What it does: On a shared machine, loads each enrolled speaker's own vocab/hotkey/cleanup from their voiceprint — no manual switching. Needs the voiceprint extra + 2+ enrolled profiles. Off by default.
  • Use when: When several people share one machine and each wants their own vocab and settings loaded.
  • Example: Each enrolled speaker loads their own vocab/hotkey automatically.
  • Download: ~3.4 GB
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Ask My Notes (voice RAG)

  • Toggle: rag · Tier: planned — designed, not yet wired · Config: [rag] — cited answers from local docs
  • What it does: Ask a question by voice and get an answer grounded in — and citing — your own local notes/docs. Needs the rag extra (embeddings + index). Off by default.
  • Use when: When you want a spoken, cited answer pulled from your own local notes and documents.
  • Example: Ask 'what did I note about the budget?' → a cited answer from your local docs.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Predictive Completion

  • Toggle: predict · Tier: experimental — not advised yet · Config: [predict] — voice autosuggest, experimental
  • What it does: After a dictation is typed, a local model proposes the rest of the sentence in a notification; say "take it" or "accept suggestion" within 10 seconds to type it, or "discard" to drop it. Anything else you say -- a one-word "No.", "Decline." or "Keep it." included -- dismisses it and is typed as usual, and nothing is typed without the accept. Needs llama-cpp-python (the slm extra) and a local GGUF model at [predict] model_path. Off by default.
  • Use when: When you want the daemon to finish your sentence so you can speak less.
  • Example: Dictate 'the meeting is moved to', then say 'take it' to type the suggested rest.
  • Download: ~77 MB
  • Activate: yazses features enable predict then yazses restart

Spoken Recall & Scratch

  • Toggle: recall · Tier: optional · Config: [recall] — query past dictation
  • What it does: Search your past dictations ('yazses recall …') and capture spoken notes-to-self. Search requires the learning corpus enabled ([learning]); local corpus only, nothing leaves the machine. Off by default.
  • Use when: When you want to search things you dictated earlier or leave yourself spoken notes-to-self.
  • Example: yazses recall 'the address I dictated yesterday'.
  • Activate: yazses features enable recall then yazses restart

Conversation & recording capture

Multi-speaker capture, recordings, and noisy-environment focus.

Recording Import

  • Toggle: recimport · Tier: optional · Config: [recimport] — transcribe existing files
  • What it does: Run yazses transcribe <file> to batch-transcribe voice memos/lectures/meetings offline to .txt/.md/.srt/.vtt/.json. Add --diarize to tag who said what ('Speaker 1: …'), --names/--rename or an enrolled voiceprint for real names. Needs the diarization extra for speaker tags. Off by default.
  • Use when: When you have existing voice memos, lectures, or meeting recordings to batch-transcribe offline.
  • Example: Drop in a lecture recording and get a searchable .srt transcript.
  • Download: ~17 MB
  • Activate: yazses features enable recimport then yazses restart

Meeting Mode

  • Toggle: meeting · Tier: optional · Config: [meeting] — hands-free meeting scribe
  • What it does: yazses meeting start records a whole meeting hands-free (no key to hold), streams a live transcript, and at yazses meeting stop writes a speaker-labelled transcript ('Alice: …', 'You: …') plus opt-in notes. Speakers are found by voice embedding + clustering (auto count); fix a miscount with yazses meeting relabel. Needs the diarization extra for speaker tags. On-device; off by default.
  • Use when: When you're in a live meeting and want a hands-free, speaker-labelled transcript and notes afterwards.
  • Example: Hit start, put the phone down, and get who-said-what minutes at the end.
  • Download: ~17 MB
  • Activate: yazses features enable meeting then yazses restart

Crowd-Proof Dictation

  • Toggle: crowdproof · Tier: planned — designed, not yet wired · Config: [crowdproof] — dictate in a crowd
  • What it does: Reconstructs your enrolled voice out of overlapping babble before STT, so dictation survives an open-plan office or café. Needs the crowdproof extra. Off by default.
  • Use when: When you must dictate in an open-plan office or café where overlapping voices swamp the mic.
  • Example: Dictate in a noisy café and the interfering voices are stripped out.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Diarized Conversation Capture

  • Toggle: diarize · Tier: optional · Config: [diarize] — attributed multi-speaker
  • What it does: Capture a live conversation as attributed Markdown (Alice: …) and rename speakers by voice ('call speaker two Alice'). Needs the diarize extra. Off by default.
  • Use when: When capturing a live multi-speaker conversation you need attributed to each person.
  • Example: A two-person chat is typed as Alice: … Bob: … you can rename by voice.
  • Download: ~17 MB
  • Activate: yazses features enable diarize then yazses restart

Meeting Scribe

  • Toggle: scribe · Tier: planned — designed, not yet wired · Config: [scribe] — who-said-what transcript
  • What it does: Records a multi-speaker meeting transcript on-device, tagging you as 'You' and others as Speaker N. Needs the scribe extra (diarization). Off by default.
  • Use when: When you're recording a multi-speaker meeting and want a who-said-what transcript.
  • Example: Meeting mode: turns are diarized into a labelled transcript.
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)

Cocktail Filter (voice focus)

  • Toggle: cocktail · Tier: experimental — not advised yet · Config: [cocktail] — experimental
  • What it does: Tries to focus on your voice and reject other speakers. Currently over-rejects your OWN voice — leave off until improved.
  • Use when: When others are talking nearby and you want only your own voice to reach STT (still rough).
  • Example: yazses features enable cocktail --force — filters other voices (experimental).
  • Download: ~3.4 GB
  • Activate: yazses features enable cocktail then yazses restart

Voice Guard (speaker match)

  • Toggle: voiceguard · Tier: experimental — not advised yet · Config: [voiceguard] — experimental
  • What it does: Refuses a dictation burst, before it is transcribed, when the speaker does not match your enrolled voiceprint (yazses enroll-voice). Speaker match only: no anti-spoof model ships, so a recording of your voice is still admitted. Threshold tuned on synthetic signals only; false-reject risk. Off by default.
  • Use when: When other people talk near your microphone and only your own voice should type (a recording of you still gets through).
  • Example: yazses features enable voiceguard --force — another speaker's burst is not typed.
  • Download: ~3.4 GB
  • Activate: yazses features enable voiceguard then yazses restart

Glasses↔Desktop Bridge

  • Toggle: bridge · Tier: planned — designed, not yet wired · Config: [bridge] — phone/glasses mic, experimental
  • What it does: Dictate from a paired phone/glasses; the desktop does STT + typing. Reuses the remote transport; local link only. Experimental. Off by default.
  • Use when: When you want to dictate from a paired phone or glasses mic while your desktop does STT.
  • Example: Pair smart glasses to relay audio to the desktop (experimental).
  • Activate: not possible yet — designed but not wired into this build (yazses features enable refuses it; contributions welcome)