github goodroot/hyprwhspr v1.21.0

9 hours ago

Features

Language-specific Whisper prompts

Set a per-language prompt via whisper_prompt_{lang}/

Falls back to whisper_prompt when no language-specific prompt is configured.

Works across all prompt-supporting backends: REST API, faster-whisper, and pywhispercpp.

{
    "whisper_prompt": "Transcribe with proper capitalization.",
    "whisper_prompt_de": "Transkribiere auf Deutsch. Kein ß, immer ss."
}

Parakeet model commands

hyprwhspr model list, model status, and model download now route correctly when the onnx-asr (Parakeet) backend is active.

hyprwhspr status is also backend-aware and shows Parakeet cache info when appropriate.


Fixes

hyprwhspr systemd status now streams output correctly

Previously, systemctl output was silently captured when the service was active, and wrapped in [ERROR] tags when inactive or failed.

Output now streams directly to the terminal in all cases.

Single-character word_overrides now match mid-word and are case-insensitive

Single-character overrides (e.g. "ß": "ss") previously used str.replace(), which missed uppercase variants and required exact case. They now use re.sub(..., re.IGNORECASE) without word boundaries, matching anywhere in a word — consistent with multi-character
override behavior.

{
    "word_overrides": { "ß": "ss" }
}

"Straße" → "Strasse", "Fuß" → "Fuss"

Service starts without keyboard access when grab_keys: false (closes #139)

When no keyboard devices are accessible and grab_keys is disabled, the service now starts successfully instead of exiting.

The shortcut is silently disabled; recording control falls back to the CLI (hyprwhspr record toggle) or the recording_control FIFO.

Error messages also now suggest compositor bindings as an alternative when grab_keys: false.

Full Changelog: v1.20.0...v1.21.0

Don't miss a new hyprwhspr release

NewReleases is sending notifications on new releases.