Releases: 0xMMA/mumblr
Release list
mumblr 0.3.1
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.jsonthat 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 insideconfig.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
prebuiltCommandsheld becomes
files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
left it. The key then leavesconfig.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 -pwith 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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. It did not, and neither did unzipping the
portable bui...
mumblr 0.3.0
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 insideconfig.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
prebuiltCommandsheld becomes
files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
left it. The key then leavesconfig.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 -pwith 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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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...
mumblr 0.3.0-beta.2
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 insideconfig.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
prebuiltCommandsheld becomes
files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
left it. The key then leavesconfig.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 -pwith 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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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...
mumblr 0.3.0-beta.1
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 insideconfig.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
prebuiltCommandsheld becomes
files, text unchanged, in the order you had them - a prompt you edited arrives exactly as you
left it. The key then leavesconfig.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 -pwith 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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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
...
mumblr 0.2.2
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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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...
mumblr 0.2.2-beta.1
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 oneconfig.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.Nare 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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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...
mumblr 0.2.1
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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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 twoclaude -pprocesses on one file. - A typo in
keytermsEncodingfalls 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 .createsdictated-<timestamp>.mdin the folder you pass, with the WAV next to it- Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch,
no_verbatimon,
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 localclaude -pappli...
mumblr 0.2.0
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 todictated-<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
existingconfig.jsonthat 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 fromstt.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
nullanywhere inconfig.jsonnow 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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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 twoclaude -pprocesses on one file. - A typo in
keytermsEncodingfalls 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 .createsdictated-<timestamp>.mdin the folder you pass, with the WAV next to it- Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch,
no_verbatimon,
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 localclaude -papplies 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
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 -pruns 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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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 twoclaude -pprocesses on one file. - A typo in
keytermsEncodingfalls 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 .createsdictated-<timestamp>.mdin the folder you pass, with the WAV next to it- Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch,
no_verbatimon,
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 localclaude -papplies 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
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
mumblron yourPATH. 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. Aconfig.jsonwritten 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 Velopackcurrentdirectory, 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 toDocuments\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 twoclaude -pprocesses on one file. - A typo in
keytermsEncodingfalls 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 .createsdictated-<timestamp>.mdin the folder you pass, with the WAV next to it- Channel 1: dictation through ElevenLabs Scribe v2, realtime (default) or batch,
no_verbatimon,
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 localclaude -papplies 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.