Skip to content

Releases: 0xMMA/mumblr

mumblr 0.3.1

Choose a tag to compare

@github-actions github-actions released this 24 Sep 19:49

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Changed in 0.3.1

  • The summary of a command speaks your language. The one line in the command log that says
    what an edit changed was always English, even over German dictation - a sentence about your text
    in a language your text is not in. It now comes back in the language you dictated in, and stays
    there after a translation. Your header prompt follows unless you have edited it; an edited one is
    left alone.
  • A fresh install starts with the global hotkeys off. A chord that collides with a game or
    another tool starts a recording nobody wanted, and nobody has chosen the chords on a first run.
    The buttons do everything; the hotkeys toggle in the status bar turns the chords on once you
    want them, and its tooltip names them. An existing install keeps whatever it had.
  • A config.json that cannot be read no longer turns the hotkeys back on. The session runs on
    defaults until the file is fixed, and those defaults now keep the chords off - a stray comma in a
    file that said off used to register the keyboard hook anyway.

Changed in 0.3.0

  • The version button says what it is doing. Checking for an update downloads it as part of
    answering, and for a build this size that is the long part - minutes on a slow line. The button
    read the running version throughout, so the only thing to do with it was press it again and
    wonder why nothing happened. It now reads "checking...", then counts the download up, then
    offers to install and restart. A press while it is working is ignored rather than starting a
    second one, and an update that has gone missing since it was downloaded says so instead of
    answering with nothing at all.

  • The command buttons are your files now. Every markdown file in %APPDATA%\mumblr\prompts
    is a button above the command log. Add one, edit one, delete one - the buttons follow without a
    restart, and the file is plain text you own rather than a string inside config.json. The new
    Prompts button in the toolbar opens the folder.
    Frontmatter names the button and places it (label, order); everything below is what goes to
    Claude. Both keys are optional.

  • Your existing buttons move across on the first run. Whatever prebuiltCommands held becomes
    files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
    left it. The key then leaves config.json, so there is one place to edit a prompt instead of
    two. Deleting a file keeps it deleted; deleting the whole folder, or pressing Prompts when
    there is none, is how you ask for the shipped two back.

  • The directory is the only source, and it is deliberately not configurable: a prompt is handed to
    claude -p with permission to read and edit your dictation, so a prompt folder inside a
    repository would let a repo you cloned run its own instructions over what you say.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable bui...
Read more

mumblr 0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 17:19

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Changed in 0.3.0

  • The version button says what it is doing. Checking for an update downloads it as part of
    answering, and for a build this size that is the long part - minutes on a slow line. The button
    read the running version throughout, so the only thing to do with it was press it again and
    wonder why nothing happened. It now reads "checking...", then counts the download up, then
    offers to install and restart. A press while it is working is ignored rather than starting a
    second one, and an update that has gone missing since it was downloaded says so instead of
    answering with nothing at all.

  • The command buttons are your files now. Every markdown file in %APPDATA%\mumblr\prompts
    is a button above the command log. Add one, edit one, delete one - the buttons follow without a
    restart, and the file is plain text you own rather than a string inside config.json. The new
    Prompts button in the toolbar opens the folder.
    Frontmatter names the button and places it (label, order); everything below is what goes to
    Claude. Both keys are optional.

  • Your existing buttons move across on the first run. Whatever prebuiltCommands held becomes
    files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
    left it. The key then leaves config.json, so there is one place to edit a prompt instead of
    two. Deleting a file keeps it deleted; deleting the whole folder, or pressing Prompts when
    there is none, is how you ask for the shipped two back.

  • The directory is the only source, and it is deliberately not configurable: a prompt is handed to
    claude -p with permission to read and edit your dictation, so a prompt folder inside a
    repository would let a repo you cloned run its own instructions over what you say.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone ru...
Read more

mumblr 0.3.0-beta.2

mumblr 0.3.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 22:16

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Changed in 0.3.0

  • The version button says what it is doing. Checking for an update downloads it as part of
    answering, and for a build this size that is the long part - minutes on a slow line. The button
    read the running version throughout, so the only thing to do with it was press it again and
    wonder why nothing happened. It now reads "checking...", then counts the download up, then
    offers to install and restart. A press while it is working is ignored rather than starting a
    second one, and an update that has gone missing since it was downloaded says so instead of
    answering with nothing at all.

  • The command buttons are your files now. Every markdown file in %APPDATA%\mumblr\prompts
    is a button above the command log. Add one, edit one, delete one - the buttons follow without a
    restart, and the file is plain text you own rather than a string inside config.json. The new
    Prompts button in the toolbar opens the folder.
    Frontmatter names the button and places it (label, order); everything below is what goes to
    Claude. Both keys are optional.

  • Your existing buttons move across on the first run. Whatever prebuiltCommands held becomes
    files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
    left it. The key then leaves config.json, so there is one place to edit a prompt instead of
    two. Deleting a file keeps it deleted; deleting the whole folder, or pressing Prompts when
    there is none, is how you ask for the shipped two back.

  • The directory is the only source, and it is deliberately not configurable: a prompt is handed to
    claude -p with permission to read and edit your dictation, so a prompt folder inside a
    repository would let a repo you cloned run its own instructions over what you say.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone ru...
Read more

mumblr 0.3.0-beta.1

mumblr 0.3.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 20:09

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Changed in 0.3.0

  • The command buttons are your files now. Every markdown file in %APPDATA%\mumblr\prompts
    is a button above the command log. Add one, edit one, delete one - the buttons follow without a
    restart, and the file is plain text you own rather than a string inside config.json. The new
    Prompts button in the toolbar opens the folder.
    Frontmatter names the button and places it (label, order); everything below is what goes to
    Claude. Both keys are optional.
  • Your existing buttons move across on the first run. Whatever prebuiltCommands held becomes
    files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
    left it. The key then leaves config.json, so there is one place to edit a prompt instead of
    two. Deleting a file keeps it deleted; deleting the whole folder, or pressing Prompts when
    there is none, is how you ask for the shipped two back.
  • The directory is the only source, and it is deliberately not configurable: a prompt is handed to
    claude -p with permission to read and edit your dictation, so a prompt folder inside a
    repository would let a repo you cloned run its own instructions over what you say.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    ...
Read more

mumblr 0.2.2

Choose a tag to compare

@github-actions github-actions released this 17 Sep 19:11

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the mome...
Read more

mumblr 0.2.2-beta.1

mumblr 0.2.2-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 19:04

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download the Portable.zip below, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: the Setup.exe below installs per user and puts mumblr on your PATH, so
mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not reach
one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

The file names carry the version and the channel: mumblr-0.2.2-win-Setup.exe is a stable build,
mumblr-0.2.2-beta.1-win-beta-Setup.exe a preview. A preview only ever updates to previews and a
stable build only to stable ones, so the download you install is the one you stay on.

Fixed in 0.2.2

  • Stop is no longer swallowed by the command you press right after it. Stopping a realtime
    recording waits for the last segment, or up to five seconds. A command started inside that
    window - the everyday "stop, then Grammar" - reached the session first, and when it finished it
    put the recording back on: the microphone ran on and the taskbar started flashing again over a
    take you had ended. Both presses are honoured now. The command runs, and the take ends when it
    is done.
  • A setting changed in one window reaches the others. mumblr . is meant to be run per repo
    folder, and all those windows share one config.json. Picking a microphone in the second window
    used to reach the first only on a restart - and whichever window saved last quietly won. The
    file is watched now. A change that arrives during a recording or a running command is applied
    when that ends, never underneath it.
  • Preview builds. Releases tagged -beta.N are marked as pre-releases and carry -win-beta-
    in their filenames. They update independently of the stable ones: install a preview build to get
    previews, install a stable one to go back. There is no switch in the window, and your config is
    untouched either way.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the mome...
Read more

mumblr 0.2.1

Choose a tag to compare

@github-actions github-actions released this 17 Sep 18:59

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download mumblr-<version>-win-Portable.zip, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: mumblr-<version>-win-Setup.exe installs per user and puts mumblr on your PATH,
so mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not
reach one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

Fixed in 0.2.1

  • The toolbar no longer cuts off its last control. It was a fixed grid of columns, so anything
    that did not fit was simply clipped - on a narrow window, or a wider system font, the reload
    button next to Config lost its right edge. The bar wraps onto a second line now instead of
    clipping, at any width, and the window starts at 1280x760 rather than just wide enough.
  • Every control in the toolbar says what it does. Record, the hold button, Copy, the
    microphone picker, the level meter, the STT and language pickers and both config buttons carry
    a tooltip. The ones bound to a hotkey name the chord - and only while that chord is actually
    registered, so the tip stops naming it when the hotkeys are switched off.
  • Stopping no longer takes over your clipboard. It used to copy the whole buffer on every
    stop. But a take is rarely one recording: you stop, think, record again, and run a command over
    the result - so the copy fired again and again, each time overwriting whatever you were holding
    with a version you had not asked for. Copy is now only the Copy button and its hotkey, used
    once, when the text is actually done. The file on disk is still written on every stop, so
    nothing is ever at risk.
  • The hold-to-talk button reads "Hold to edit". It says what happens to the text rather than
    naming the channel it runs on.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the moment channel 1 is
    being paused - that could run two claude -p processes on one file.
  • A typo in keytermsEncoding falls back to the encoding that works instead of the one that made
    every request fail.

Fixed in 0.1.2

  • Release assets carry their version in the filename.
  • The update check no longer claims to be the latest build when it never managed to ask.

Fixed in 0.1.1

  • Dictation works again. 0.1.0 packed the keyterm list into a single value, which ElevenLabs
    read as one oversized keyterm and refused - every fresh install failed on its very first
    recording. Keyterms now go out as repeated parameters, and a term the API would reject is
    dropped instead of killing the request.
  • A rejected request is no longer invisible: the stop message stopped overwriting the error that
    explained it.
  • The status bar now shows the microphone, the STT backend's actual state, a key-present
    indicator, the character count and the running version.
  • Prebuilt command buttons: the edits you dictate word for word every day are a click, with no
    microphone and no transcription round trip.
  • A blank model or effort in the config can no longer downgrade a command; it falls back to Opus
    at high effort.

What is in this build

  • mumblr . creates dictated-<timestamp>.md in the folder you pass, with the WAV next to it
  • Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch, no_verbatim on,
    auto language detection, user maintained keyterms and dictionary replacements
  • Channel 2: hold the command key, speak an edit ("delete the last sentence", "clean this up"),
    and a local claude -p appli...
Read more

mumblr 0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 19:14

mumblr

Think out loud, get a prompt: speech to markdown in the folder you start it from, with edits by voice through your local Claude Code.

Portable: download mumblr-<version>-win-Portable.zip, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: mumblr-<version>-win-Setup.exe installs per user and puts mumblr on your PATH,
so mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not
reach one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

Changed in 0.2.0

  • The Prompt button. The tagline promised a prompt and the tool delivered a transcript. The
    second shipped button shapes the dictation into a prompt for a coding agent - the ask first,
    then context, then constraints, then an Open questions section with every gap and
    contradiction as a question. It keeps your words and your language and adds nothing you did
    not say.
  • The raw dictation is always one click away. Everything speech-to-text produces is also
    appended to dictated-<timestamp>.raw.md, which carries the read-only attribute between
    appends so a command's Edit cannot land on it. The Raw button next to Revert puts it back
    into the buffer, whatever the commands did since - snapshotted first, so Revert undoes that
    too.
  • The shipped Grammar command is English, like the prompt sent with every command. Neither
    names a language any more: the rule is that the result is in the language the file is in, and a
    technical term stays in the language you used it in. German dictation comes back German. An
    existing config.json that still holds the shipped text of an earlier version is updated on
    the next start; a prompt you edited yourself is left alone.
  • One click turns the global hotkeys off. The hotkeys work while another window has focus by
    design, so a chord that collides with a game, a screen share or another tool could start a
    recording in the background. The hotkeys button in the status bar unregisters every chord
    and removes the keyboard hook; the buttons keep working, and the state survives a restart.
  • A running recording is visible from the taskbar. The title reads "● Recording - mumblr" and
    the taskbar button flashes whenever the window is not in front, until you come back or stop.
    Tab into the IDE, get absorbed, and the recording no longer runs on unnoticed by the minute.
  • Pick the transcription language in the window. A LANG picker next to the STT mode offers
    auto and the codes from stt.languages (de and en to start with) and applies to the next
    recording and to spoken commands. The status bar shows the pick whenever it is not auto.
  • A hand-edited null anywhere in config.json now means the default instead of a crash on
    start, and the config is written atomically, so two mumblr windows sharing it cannot read a
    half-written file.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the moment channel 1 is
    being paused - that could run two claude -p processes on one file.
  • A typo in keytermsEncoding falls back to the encoding that works instead of the one that made
    every request fail.

Fixed in 0.1.2

  • Release assets carry their version in the filename.
  • The update check no longer claims to be the latest build when it never managed to ask.

Fixed in 0.1.1

  • Dictation works again. 0.1.0 packed the keyterm list into a single value, which ElevenLabs
    read as one oversized keyterm and refused - every fresh install failed on its very first
    recording. Keyterms now go out as repeated parameters, and a term the API would reject is
    dropped instead of killing the request.
  • A rejected request is no longer invisible: the stop message stopped overwriting the error that
    explained it.
  • The status bar now shows the microphone, the STT backend's actual state, a key-present
    indicator, the character count and the running version.
  • Prebuilt command buttons: the edits you dictate word for word every day are a click, with no
    microphone and no transcription round trip.
  • A blank model or effort in the config can no longer downgrade a command; it falls back to Opus
    at high effort.

What is in this build

  • mumblr . creates dictated-<timestamp>.md in the folder you pass, with the WAV next to it
  • Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch, no_verbatim on,
    auto language detection, user maintained keyterms and dictionary replacements
  • Channel 2: hold the command key, speak an edit ("delete the last sentence", "clean this up"),
    and a local claude -p applies it to the file - with a command log, a snapshot and a revert hotkey
  • Explicit microphone choice with a level meter; mumblr never follows the Windows default device
  • Global hotkeys that work while your IDE has focus

Before the first run

Set your ElevenLabs key as an environment variable - mumblr never reads it from a config file:

setx ELEVENLABS_API_KEY "your-key"

claude must be on your PATH for channel 2.

mumblr 0.1.6

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:11

mumblr

Ultra specific voice recorder for development work: talk, get markdown, hand it to Claude Code.

Portable: download mumblr-<version>-win-Portable.zip, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: mumblr-<version>-win-Setup.exe installs per user and puts mumblr on your PATH,
so mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not
reach one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

Fixed in 0.1.6

  • claude -p runs with the customization layer off (--safe-mode). Until now your own hooks
    fired over the dictation file: a PostToolUse hook that formats or lints edited files would
    reformat a paragraph of spoken German, and an output style would rewrite the summary the log
    shows. The prompt could only ask for that to be ignored; the flag enforces it.
  • A command that changed nothing says so. claude can succeed and still do nothing - ask a
    question, decide there is nothing to change - and the log reported that as "done".
  • The prompt sent with each command was rewritten. It no longer forbids what the tool cannot do
    anyway, and it now says the things nothing else enforces: the command came through
    speech-to-text and may be garbled, there is nobody to ask, and the summary should say what
    changed rather than repeat the request.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the moment channel 1 is
    being paused - that could run two claude -p processes on one file.
  • A typo in keytermsEncoding falls back to the encoding that works instead of the one that made
    every request fail.

Fixed in 0.1.2

  • Release assets carry their version in the filename.
  • The update check no longer claims to be the latest build when it never managed to ask.

Fixed in 0.1.1

  • Dictation works again. 0.1.0 packed the keyterm list into a single value, which ElevenLabs
    read as one oversized keyterm and refused - every fresh install failed on its very first
    recording. Keyterms now go out as repeated parameters, and a term the API would reject is
    dropped instead of killing the request.
  • A rejected request is no longer invisible: the stop message stopped overwriting the error that
    explained it.
  • The status bar now shows the microphone, the STT backend's actual state, a key-present
    indicator, the character count and the running version.
  • Prebuilt command buttons: the edits you dictate word for word every day are a click, with no
    microphone and no transcription round trip.
  • A blank model or effort in the config can no longer downgrade a command; it falls back to Opus
    at high effort.

What is in this build

  • mumblr . creates dictated-<timestamp>.md in the folder you pass, with the WAV next to it
  • Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch, no_verbatim on,
    auto language detection, user maintained keyterms and dictionary replacements
  • Channel 2: hold the command key, speak an edit ("delete the last sentence", "clean this up"),
    and a local claude -p applies it to the file - with a command log, a snapshot and a revert hotkey
  • Explicit microphone choice with a level meter; mumblr never follows the Windows default device
  • Global hotkeys that work while your IDE has focus

Before the first run

Set your ElevenLabs key as an environment variable - mumblr never reads it from a config file:

setx ELEVENLABS_API_KEY "your-key"

claude must be on your PATH for channel 2.

mumblr 0.1.5

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:07

mumblr

Ultra specific voice recorder for development work: talk, get markdown, hand it to Claude Code.

Portable: download mumblr-<version>-win-Portable.zip, unzip anywhere, put the folder on your PATH,
then run mumblr . in the repo you are working in.

Installer: mumblr-<version>-win-Setup.exe installs per user and puts mumblr on your PATH,
so mumblr . works from any folder. Open a new terminal afterwards - a PATH change does not
reach one that is already running. In-app updates need a release feed the app can read; see the
repository if the version button reports that it could not reach one.

Fixed in 0.1.5

  • The installer puts mumblr on your PATH. It did not, and neither did unzipping the
    portable build, so the one command the whole app exists for - mumblr . in a repo folder -
    answered "The term 'mumblr' is not recognized". Uninstalling removes the entry again. Open a new
    terminal after installing.
  • The status line is no longer squeezed out by the hotkey hint next to it, and both carry a
    tooltip with their full text. The window can no longer be resized until the toolbar's right-hand
    controls leave the screen.

Fixed in 0.1.4

  • A key press on the command key while another command was running derailed it. The release
    ended whatever command happened to be active - not the one it started - marking it failed,
    unlocking the editor and resuming dictation underneath a claude call that was still writing to
    the file. A second one could start a second transcription backend on top of the first.
  • A hold shorter than the pause it triggers is no longer swallowed. Stopping the realtime
    backend takes up to five seconds; a quick press and release fell entirely inside that window and
    left the session stuck with the microphone running.
  • Copy is refused while claude is editing the file. It flushed the buffer straight over the
    edit in progress.
  • The prebuilt command button is called Grammar, not "Grammatik". The window is English; the
    command it sends is still German, because the text it edits is. A config.json written by an
    earlier version keeps the old label - rename it there, or delete the entry and let it be
    recreated.
  • The update button says it will restart, and refuses to while a command is running.
  • The command log keeps the effort next to the model, and the batch backend can report an error
    state at all.
  • Closing the window during a recording no longer leaves a websocket open, and running the tests
    no longer creates a folder in your home directory.

Fixed in 0.1.3

  • Dictations are no longer written into the app's own install folder. Started from the start
    menu shortcut, mumblr wrote into the Velopack current directory, which the next update
    replaces wholesale - the file and its WAV would have been deleted by the first update that
    landed. A target inside the application directory now falls back to Documents\mumblr.
  • A rejected transcription survives everything that happens afterwards. Copying, reverting or
    reloading the config mid-recording used to erase the error message, and the stop line then
    reported a clean stop over an empty buffer.
  • A failing command warns instead of reporting in informational grey, and the "Recording resumed."
    message no longer overwrites it.
  • The command log names the model that actually answered, read out of the CLI's own envelope,
    rather than the one the config asked for.
  • The character count follows what you type, not only what mumblr writes.
  • A prebuilt button and the hold key can no longer both start a command in the moment channel 1 is
    being paused - that could run two claude -p processes on one file.
  • A typo in keytermsEncoding falls back to the encoding that works instead of the one that made
    every request fail.

Fixed in 0.1.2

  • Release assets carry their version in the filename.
  • The update check no longer claims to be the latest build when it never managed to ask.

Fixed in 0.1.1

  • Dictation works again. 0.1.0 packed the keyterm list into a single value, which ElevenLabs
    read as one oversized keyterm and refused - every fresh install failed on its very first
    recording. Keyterms now go out as repeated parameters, and a term the API would reject is
    dropped instead of killing the request.
  • A rejected request is no longer invisible: the stop message stopped overwriting the error that
    explained it.
  • The status bar now shows the microphone, the STT backend's actual state, a key-present
    indicator, the character count and the running version.
  • Prebuilt command buttons: the edits you dictate word for word every day are a click, with no
    microphone and no transcription round trip.
  • A blank model or effort in the config can no longer downgrade a command; it falls back to Opus
    at high effort.

What is in this build

  • mumblr . creates dictated-<timestamp>.md in the folder you pass, with the WAV next to it
  • Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch, no_verbatim on,
    auto language detection, user maintained keyterms and dictionary replacements
  • Channel 2: hold the command key, speak an edit ("delete the last sentence", "clean this up"),
    and a local claude -p applies it to the file - with a command log, a snapshot and a revert hotkey
  • Explicit microphone choice with a level meter; mumblr never follows the Windows default device
  • Global hotkeys that work while your IDE has focus

Before the first run

Set your ElevenLabs key as an environment variable - mumblr never reads it from a config file:

setx ELEVENLABS_API_KEY "your-key"

claude must be on your PATH for channel 2.