Voice to Text for Hammerspoon

You're deep in your Hammerspoon config, tweaking window management or building a custom automation. You just wrote a clever Lua function, but six months from now you won't remember why. Typing out comments and documentation means breaking your flow. Blurt lets you speak your config notes, function documentation, and inline comments directly into your Lua files. Hold a button, say what the code does, release. Text appears at your cursor. Your hands stay on the keyboard. Your automation flow stays intact. Works anywhere you edit Hammerspoon configs — VS Code, Sublime, your terminal editor, anywhere you can type.

First 1,000 words free Works in any text editor macOS only
Download Blurt Free

The Typing Problem

Your init.lua is a cryptic mess to future you

You wrote that window tiling function at 2am. It works perfectly. You have no idea how. Six months later you need to modify it, and you're reverse-engineering your own code. The logic made sense when you wrote it. Now it's hieroglyphics. A thirty-second verbal explanation would have saved an hour of confusion. But typing comments felt like too much effort at the time.

Keybinding notes you never write down

You bound hyper-W to something. What was it? Was it window maximize or workspace switch? You created a dozen custom keybindings and documented exactly zero of them. Every time you forget one, you grep through your config to figure out what hyper-K does. You could have spoken a quick note when you added the binding. Instead you search your own code monthly.

Spoon configurations without context

You configured a Spoon last week. You tweaked the defaults because the standard behavior was wrong for your setup. Why did you change those values? The defaults didn't work — but you can't remember what was broken. The magic numbers in your config have no explanation. Every Spoon setup is an undocumented mystery.

Complex Lua logic that needs explaining

That function chains three callbacks, handles edge cases, and has timing-sensitive code. You understand it now because you just wrote it. But Lua's callback patterns will make no sense later. The mental model is in your head, not in the code. Writing it down means stopping your flow and switching from coding brain to writing brain. So you skip it.

Automation ideas you forget before implementing

You're tweaking your config and think of a perfect automation. You'll implement it later. You don't write it down because you're in the middle of something. A week later, you remember you had a great idea. You have no idea what it was. The thought is gone forever because capturing it required too much friction.

How It Works

Blurt works in any editor where you write Hammerspoon configs — VS Code, Sublime Text, Vim, Emacs, or any app with a text cursor.

1

Hold your hotkey

Press your chosen shortcut while editing your Hammerspoon config. A small indicator shows Blurt is listening.

2

Speak your documentation

Describe what the function does, why you chose those values, or what the keybinding triggers. Blurt handles punctuation automatically.

3

Release and continue

Text appears at your cursor as a Lua comment or documentation. Keep building your automation.

Real Scenarios

Annotating keybinding sections

You're setting up a new keybinding block. Hold button at the top: 'Hyper key bindings for window management. Hyper is caps lock remapped through Karabiner. All window commands use hyper plus a directional key or letter.' Now anyone reading your config understands the pattern before diving into the code.

Explaining Spoon configurations

You configured ReloadConfiguration with custom settings. Hold button: 'Watch these directories for changes and auto-reload. Using a 2 second delay because some editors write temp files first. Excluded the backup folder because dotfiles kept triggering reloads.' The magic numbers now have meaning.

Capturing automation ideas instantly

You're tweaking your config and realize you want an automation that mutes Spotify when Zoom starts. Hold button anywhere: 'TODO: Create a watcher that mutes Spotify when Zoom launches and unmutes when Zoom closes. Could use application watcher callbacks.' Idea captured in 6 seconds. You'll implement it later and actually remember what you wanted.

Writing function docstrings

Your custom function takes three parameters and the names aren't self-explanatory. Hold button: 'Parameters: app is the application name to target, action is the window operation to perform, and fallback is what to do if the app is not running. Returns true if the action succeeded.' Proper documentation without the typing burden.

Noting workarounds and edge cases

You added a 100ms delay to a function because it was firing too fast. Hold button: 'The delay is necessary because some apps report as focused before their window is actually ready to receive commands. 100 milliseconds handles most cases. Slack needs 200.' The workaround is now explained forever.

Describing callback chains

Your automation uses nested callbacks that will be confusing later. Hold button: 'This callback fires when Safari activates. It then waits 500 milliseconds for the URL bar to be ready, reads the current URL, and stores it in the last visited sites table. The delay prevents reading a stale URL from the previous tab.' Complex flow, simple explanation.

Why Hammerspoon users choose Blurt over built-in dictation

Blurt macOS Dictation
Activation Single hotkey, instant start Double-tap Fn or menu bar click
Speed Text appears in under 500ms 2-3 second delay before transcription starts
Technical vocabulary Handles Lua terms and programming jargon Struggles with callback, hotkey, and function names
Reliability Works consistently in any text editor Sometimes fails silently in terminal editors
Price $10/month or $99/year Free (built into macOS)
Free tier First 1,000 words free Unlimited but unreliable

Frequently Asked Questions

Does Blurt work in all text editors?
Yes. Blurt works anywhere you can place a cursor on macOS — VS Code, Sublime Text, Vim, Emacs, TextEdit, your terminal editor, anything. If you can type there, you can dictate there. Your Hammerspoon config can be edited anywhere and Blurt will work.
Can Blurt handle Lua-specific terminology?
Blurt handles programming terminology well. Words like 'callback', 'function', 'hotkey', 'watcher', and common Lua patterns transcribe accurately. For Hammerspoon-specific terms like 'Spoon' or custom function names, occasional minor edits may be needed. Most Hammerspoon users find the accuracy sufficient for comments and documentation.
Will Blurt conflict with my Hammerspoon hotkeys?
No. You choose your own Blurt hotkey during setup. Pick any key combination that doesn't conflict with your existing Hammerspoon bindings. Since you control both, you can ensure they don't overlap. Most users pick a modifier combo they haven't assigned in their config.
Should I use Blurt for writing Lua code?
Blurt is best for prose — comments, documentation, notes, and explanations. Dictating Lua syntax like 'function open paren app comma action close paren' is awkward and slower than typing. Use Blurt for documenting your code, not writing the code itself.
Can I trigger Blurt from Hammerspoon?
Blurt is a separate macOS app with its own hotkey system. You cannot trigger Blurt recordings from Hammerspoon Lua code. However, your Blurt hotkey works system-wide, including while you're editing Hammerspoon configs in any editor.
What if I use a Hackintosh or unsupported macOS version?
Blurt requires macOS 13 or later on genuine Apple hardware. Hackintosh systems and older macOS versions are not officially supported. If you're on a supported Mac running macOS Ventura or newer, Blurt will work with any editor you use for Hammerspoon configs.

Start Typing Faster Today

Free to try — no credit card required

Download Blurt