Setting Up a Voice-First Developer Workflow

9 min read·beginner·10 minutes

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.

    1. Open the downloaded .dmg and drag Ummless to your Applications folder
    2. Launch Ummless from Applications
    3. macOS will ask you to confirm opening an app from an identified developer -- click Open
    4. 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.

    1. Stage your changes in Git
    2. Press Cmd+Shift+Space
    3. Describe what you changed and why
    4. 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.

    1. Open your PR template
    2. Press Cmd+Shift+Space
    3. Walk through what the PR does, why, and how
    4. 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.

    1. Read the code you are reviewing
    2. Press Cmd+Shift+Space
    3. Explain the issue and suggest a fix
    4. 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.
    TaskPresetRecording Length
    Commit messagesConcise10-15 seconds
    PR descriptionsDeveloper1-2 minutes
    Code review commentsDeveloper15-30 seconds
    Slack messagesConcise or Developer10-30 seconds
    DocumentationTechnical Docs2-5 minutes
    Issue reportsDeveloper30-60 seconds
    Meeting notesDeveloper1-3 minutes

    Keyboard Shortcut Reference

    ShortcutAction
    Cmd+Shift+SpaceToggle recording on/off
    Cmd+VPaste refined text from clipboard

    Both shortcuts work globally -- from your terminal, editor, browser, or any other application.

    Next Steps