Setting Up a Voice-First Developer Workflow
Developers spend a surprising amount of time writing text that is not code: commit messages, PR descriptions, code review comments, Slack messages, documentation, issue reports, and meeting notes. These tasks interrupt your flow, require context switching, and slow you down.
A voice-first workflow lets you speak these artifacts instead of typing them. You stay in your editor, hit a hotkey, say what you need, and get polished text in your clipboard. This guide walks through setting up Ummless for a complete developer workflow.
Key Takeaways
Step 1: Install Ummless
Download Ummless from the download page. The installer is a standard .dmg file for macOS.
- Open the downloaded
.dmgand drag Ummless to your Applications folder - Launch Ummless from Applications
- macOS will ask you to confirm opening an app from an identified developer -- click Open
- Sign in with your account or create one
Ummless runs as a menu bar application. You will see the Ummless icon in your menu bar after launching. There is no main window -- the app is designed to stay out of your way until you need it.
System requirements
Ummless requires macOS 14 (Sonoma) or later. Speech recognition uses Apple's on-device Speech framework, which requires a Mac with Apple Silicon or an Intel Mac with at least 4GB RAM.
Step 2: Grant Permissions
On first launch, Ummless requests two permissions:
Microphone Access
Ummless needs microphone access to capture your speech. macOS will show a system dialog asking for permission. Click Allow. Without this, recording will not work.
You can verify or change this later in System Settings > Privacy & Security > Microphone.
Accessibility (Optional)
If you want Ummless to paste refined text directly into the active application, it needs Accessibility permission. This is optional -- without it, refined text is copied to your clipboard and you paste manually with Cmd+V.
Privacy first
Your audio never leaves your Mac. Speech recognition runs entirely on-device using Apple's Speech framework. Only the transcribed text is sent to Claude for refinement. No audio is stored, uploaded, or logged.
Step 3: Learn the Core Workflow
The daily workflow is three steps: activate, speak, use.
Activate
Press Cmd+Shift+Space from anywhere. The Ummless palette appears as a floating overlay. It shows your selected preset and a recording indicator.
If the default hotkey conflicts with another app, you can change it in Ummless settings. Open the menu bar icon, click Settings, and set your preferred keyboard shortcut.
Speak
Start speaking naturally. You do not need to dictate punctuation or say "new paragraph." Talk as you would to a colleague. Ummless handles filler words, false starts, and rambling -- that is what the refinement step is for.
When you are done, press Cmd+Shift+Space again or click the stop button. Ummless transcribes your speech, sends the text to Claude for refinement, and copies the result to your clipboard.
Use
Press Cmd+V to paste the refined text wherever you need it -- your editor, terminal, Slack, GitHub, email, or any other application.
The entire cycle takes seconds. Speak for 30 seconds, wait briefly for refinement, and paste. For a typical Slack message or commit message, this is significantly faster than typing.
Step 4: Choose the Right Presets
Ummless includes six built-in presets. For developer workflows, these three are the most useful:
Developer Preset
The Developer preset is built for technical content. It preserves code terminology, formats technical concepts correctly, and uses language natural to software engineering.
Best for: Code review comments, technical discussions, architecture decisions, debugging notes.
Example input (spoken):
"So I refactored the user service to use dependency injection instead of the singleton pattern because it was making unit testing really hard um the constructor now takes a database connection and a cache client and we can mock both in tests"
Example output (refined):
Refactored the user service from singleton pattern to dependency injection. The constructor now accepts a database connection and cache client as parameters, enabling both to be mocked in unit tests.
Concise Preset
The Concise preset strips everything down to essentials. It removes filler, shortens sentences, and eliminates redundancy.
Best for: Commit messages, quick Slack updates, issue titles, short-form communication.
Example input (spoken):
"I fixed that bug where the login page was showing an error even when the credentials were correct because the token validation was checking the expiry time in the wrong timezone"
Example output (refined):
Fixed login error on valid credentials. Token validation was comparing expiry time against wrong timezone.
Technical Docs Preset
The Technical Docs preset structures content with headers, lists, and clear steps. It produces documentation-ready output.
Best for: README sections, API documentation, runbooks, onboarding docs, architecture docs.
Step 5: Integrate Into Your Daily Tasks
Here is how voice input fits into common developer activities. Start with one or two tasks and expand from there.
Commit Messages
Instead of staring at a commit message prompt trying to summarize your changes, speak them. Use the Concise preset.
- Stage your changes in Git
- Press Cmd+Shift+Space
- Describe what you changed and why
- Paste the refined message into your commit
This works especially well for larger commits where the message needs to capture multiple changes. Speaking a summary is faster than writing one.
PR Descriptions
PR descriptions benefit enormously from voice input. They require prose -- context, motivation, implementation details -- and that is exactly where voice outperforms typing.
Use the Developer preset or create a custom PR Description preset.
- Open your PR template
- Press Cmd+Shift+Space
- Walk through what the PR does, why, and how
- Paste the refined description
A 2-minute spoken explanation produces a thorough PR description that would take 5-10 minutes to type.
Code Review Comments
Code review comments need to be clear, constructive, and specific. Speaking your feedback naturally and letting Ummless polish it saves time and often produces better comments than hastily typed ones.
- Read the code you are reviewing
- Press Cmd+Shift+Space
- Explain the issue and suggest a fix
- Paste the comment on the PR
Slack Messages
For anything longer than a quick "sounds good," voice input is faster. Status updates, technical explanations, meeting follow-ups -- speak them with the Developer or Concise preset.
Documentation
Documentation is the highest-leverage use case for voice input. Most developers avoid writing docs because typing long-form prose is tedious. Speaking it is not.
Use the Technical Docs preset and speak through the topic as if explaining it to a new team member. The preset adds structure, headers, and proper formatting.
Issue Reports
Bug reports and feature requests require describing context, reproduction steps, and expected behavior. Speak through each section using the Developer preset. The output is clearer than what most people type under time pressure.
Tips and Best Practices
These patterns will help you get the most from a voice-first workflow.
Think Before You Speak
Take 5 seconds to organize your thoughts before pressing the hotkey. You do not need a script, but knowing your main point prevents rambling. For structured outputs like PR descriptions, mentally run through the sections: what, why, how.
Speak in Complete Thoughts
Rather than trying to dictate perfect sentences, speak in complete ideas. If you are describing a bug fix, cover the bug, the cause, and the fix as three distinct thoughts. Pauses between thoughts help the transcriber and the refinement model identify structure.
Use Short Recordings for Short Outputs
Match recording length to output length. A commit message needs 10-15 seconds of speech. A PR description needs 1-2 minutes. A documentation page might need 3-5 minutes. Longer recordings produce longer outputs, so keep it proportional.
Speak Technical Terms Clearly
Speech recognition handles common programming terms well, but unusual library names or acronyms may need emphasis. Speak them slightly slower and more clearly. If a term is consistently misrecognized, the refinement model usually corrects it from context, but you can also add it to a custom preset's preservation list.
Custom term preservation
If you work with unusual technical terms, create a custom preset that includes: "Preserve these terms exactly: [your terms]. If the transcript contains a close approximation, correct it to the exact term." See the preset guide for details.
Build the Habit Gradually
Do not try to voice-input everything on day one. Start with one task -- Slack messages are a good first choice because they are low-stakes and frequent. Once that feels natural, add commit messages. Then PR descriptions. Then documentation.
Within a week or two, you will reach for the hotkey instinctively for any prose-heavy task.
Know When to Type
Voice input is not always the right tool. These tasks are still faster typed:
- One-word or one-line responses. Typing "LGTM" is faster than activating voice input.
- Code. Ummless refines prose, not code. Write code in your editor.
- Sensitive environments. Open offices or coffee shops where speaking aloud is not practical.
- Highly formatted content. Tables, complex markdown, or content requiring precise formatting is easier to type directly.
Recommended Setup Summary
| Task | Preset | Recording Length |
|---|---|---|
| Commit messages | Concise | 10-15 seconds |
| PR descriptions | Developer | 1-2 minutes |
| Code review comments | Developer | 15-30 seconds |
| Slack messages | Concise or Developer | 10-30 seconds |
| Documentation | Technical Docs | 2-5 minutes |
| Issue reports | Developer | 30-60 seconds |
| Meeting notes | Developer | 1-3 minutes |
Keyboard Shortcut Reference
| Shortcut | Action |
|---|---|
| Cmd+Shift+Space | Toggle recording on/off |
| Cmd+V | Paste refined text from clipboard |
Both shortcuts work globally -- from your terminal, editor, browser, or any other application.
Next Steps
- Building Custom Presets -- Create presets for your specific workflow needs
- The Complete Guide to Speech-to-Text -- Understand the technology behind the transcription
- Keyboard Shortcuts Reference -- Full list of keyboard shortcuts
- Settings Documentation -- Configure Ummless to match your preferences