Skip to content

Releases: rsperko/keyscribe

KeyScribe 0.8.1

KeyScribe 0.8.1 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 07 Oct 12:00

Full Changelog: v0.8.0...v0.8.1

KeyScribe 0.8.0

KeyScribe 0.8.0 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 28 Sep 02:36

Full Changelog: v0.7.0...v0.8.0

KeyScribe 0.7.0

KeyScribe 0.7.0 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 14 Sep 21:04
84aadfa

Moonshine Base (English) removed

Moonshine Base (English) is no longer included. If it was your selected model, KeyScribe switches to another model you have installed, or to Apple Speech on macOS 26 and later, and removes the Moonshine download. On macOS 15, if Moonshine was the only model you had downloaded, download another model in Settings ▸ Speech Models before dictating again. If you see The selected speech model is not installed, the button on that message opens Speech Models.

What's Changed

  • Remove the Moonshine speech model by @rsperko in d3e2a14
  • Build the app through a shared Xcode app definition by @rsperko in #1

New Contributors

Full Changelog: v0.6.0...v0.7.0

KeyScribe 0.6.0

KeyScribe 0.6.0 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 29 Aug 01:25

Changed behavior

  • Other audio during dictation is now a three-way choice — Quiet (default, turned down but still
    audible), Mute (silenced), Unchanged (left alone). If you had the old mute setting on, you are
    migrated to Quiet, not Mute: other audio you used to lose entirely is now audible at a low level.
    Pick Mute in Settings ▸ General to keep the old behavior. The mute_system_audio config key is
    replaced by other_audio; the old key is still read when the new one is absent, and dropped on the
    next write.
  • LLM rewrites follow the language of the content. The prompt no longer hardcodes "Write in
    English" — output is written in whatever language the content is already in, and the spelling
    clause (en-GB vs en-US) applies only on an English locale. A mode that must pin a language or
    translate says so in its own prompt. Previously a non-English selection could come back translated.
  • Rewrite requests refuse cross-origin redirects. A provider endpoint that answers with a redirect
    to another host now fails instead of following it — a 307/308 preserves the body, so following one
    would replay the prompt and transcript to a host the mode was not wired to. If a connection stops
    working after this upgrade, check whether its base URL redirects.

New

  • Diagnostics report. Settings ▸ Maintenance ▸ Diagnostics ▸ Copy Diagnostics, or
    KeyScribe.app/Contents/MacOS/KeyScribe --diagnose from a terminal. Covers version, permissions,
    speech engine, per-mode delivery settings, and recent dictation outcomes — no transcript text, no
    clipboard contents, no API keys. New docs/troubleshooting.md explains how to read it.
  • Dictation sound volume (sound_volume, 0–100). 0 also skips the start cue, so capture admits
    with no cue hold.
  • Error indicator on the menu-bar Settings item, so a config or model-load failure is visible
    without opening Settings.

Fixed

  • A dictation whose audio route died mid-take could be inserted as a silent truncation. When the
    device went away for good, audio stopped arriving while the app still believed it was recording, and
    the prefix was finalized and pasted as an ordinary success. The loss is now reported to the dictation
    that owned the capture, and the level meter decays instead of freezing at the last level it saw.
  • Insertion now aborts at the last point before text lands, per keystroke and immediately before
    the ⌘V post, instead of only at the caller's gate — and restores the clipboard right away rather than
    leaving dictated text on it through the post-paste backstop.
  • Replacement patterns are checked for catastrophic backtracking before they compile, with the
    bound fail-closed for hand-edited config files.
  • Speech-model load failures retry and surface rather than leaving the engine unusable.
  • Pinned dependencies are checked for upstream mutation (make check-deps, make fix-deps) after
    an upstream moved a release tag and re-uploaded a binary asset in place, which broke fresh checkouts
    while warm build directories kept working.

For downstream builds

Two source-breaking changes in KeyScribeKit:

  • Settings.DuringDictation(muteSystemAudio:keepDisplayAwake:sounds:) is now
    DuringDictation(otherAudio:keepDisplayAwake:sounds:soundVolumePercent:), and the
    muteSystemAudio: Bool property is now otherAudio: OtherAudio (.unchanged / .quiet / .mute).
  • PromptInputs.language is removed — both the property and the language: init parameter. Output
    language is now driven by the content, not by a caller-supplied value.

On-disk config migrates itself; only call sites need updating.

KeyScribe 0.5.1

KeyScribe 0.5.1 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 13 Aug 15:10

Full Changelog: v0.4.0...v0.5.1

KeyScribe 0.4.0

KeyScribe 0.4.0 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 10 Aug 22:21

Full Changelog: v0.3.3...v0.4.0

KeyScribe 0.3.3

KeyScribe 0.3.3 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 21 Jul 03:18

Full Changelog: v0.3.2...v0.3.3

KeyScribe 0.3.2

KeyScribe 0.3.2 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 17 Jul 03:31

Full Changelog: v0.3.1...v0.3.2

KeyScribe 0.3.1

KeyScribe 0.3.1 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 16 Jul 13:48

Full Changelog: v0.3.0...v0.3.1

KeyScribe 0.3.0

KeyScribe 0.3.0 Pre-release
Pre-release

Choose a tag to compare

@rsperko rsperko released this 13 Jul 03:35

Full Changelog: v0.2.2...v0.3.0