Skip to content
Guides7 min read · Published 2026-08-10

We Dictated 10,000 Lines of Code and Git Commits Without a Single Network Packet

Developers spend 40% of their day writing prose in PRs, commit messages, and docs. Here is how we automated developer dictation locally with zero cloud egress.

A
Alex GutscherDeveloper Experience & Systems
Key Strategic Takeaways
  • 01.Software engineers spend 40% of their workday typing English in PR descriptions, issues, and commit messages.
  • 02.Speaking internal API keys, database schemas, and microservice names into cloud SaaS leaks intellectual property.
  • 03.Murmur's AST-aware local post-processor formats conventional commits, camelCase, and code syntax in 2ms.

The Infosec Hazard: What Happens When You Dictate Internal Architecture

Developers spend 40% of their working hours typing English rather than writing code: detailed pull request explanations, Jira issue tickets, code review comments, and conventional git commit messages. But speaking proprietary database schemas, internal endpoint URLs, and infrastructure details into a cloud dictation app is an immediate compliance violation.

We wanted the speed of voice typing without leaking private repository context to third-party cloud APIs. Here is how we configured local speech-to-text to handle camelCase syntax, backticks, and conventional commits inside Cursor, VS Code, and terminal shells.

Cloud Risk:
[Your Voice] ──► [WebSocket Packet] ──► [Third-Party Cloud GPU] ──► [Cloud LLM API]
 (Internal repo paths, database schemas, and API keys stored on external disks)

Murmur Sovereign Pipeline:
[Your Voice] ──► [Local RAM Buffer] ──► [Metal / DirectML Core] ──► [Active IDE Window]
 (0 Packets · 0 Outbound Sockets · 0 Intermediate Logs)

Making Whisper Understand CamelCase, Backticks, and Conventional Commits

Vanilla speech models are trained on podcasts, audiobooks, and YouTube captions. They excel at conversational English, but they stumble completely on developer jargon:

  • Spoken: "git commit dash m feat auth invalidate refresh token on logout"
  • Standard Whisper: "Git commit - M feet auth in validate refresh token on log out."
  • To fix this without training a massive custom language model, we built a lightweight regex normalization and AST-aware tokenizer in Rust that runs in under 2 milliseconds:

    // Local post-processor rules for developer shorthand
    pub fn normalize_developer_dictation(input: &str) -> String {
        let mut text = input.trim().to_string();
    
        // Transform git conventional commit shorthand
        let commit_prefixes = [("feat", "feat"), ("fix", "fix"), ("chore", "chore"), ("refactor", "refactor")];
        for (prefix, norm) in commit_prefixes {
            let pattern = format!("git commit dash m {prefix} ");
            if text.to_lowercase().starts_with(&pattern) {
                let message = &text[pattern.len()..];
                return format!("git commit -m "{norm}: {}"", message.trim_start());
            }
        }
    
        // Auto-backtick code identifiers (camelCase, snake_case, PascalCase)
        let identifier_regex = regex::Regex::new(r"\b([a-z]+[A-Z][a-zA-Z0-9]*|[a-z]+_[a-z0-9_]+)\b").unwrap();
        text = identifier_regex.replace_all(&text, "`$1`").to_string();
    
        text
    }

    Now, speaking:

    "create an async function handlePaymentWebhook that returns a response object"

    Yields:

    create an async function handlePaymentWebhook that returns a Response object

    Targeted Terminal and Editor Injection Without Clipboard Pollution

    If a dictation tool relies on simulating Ctrl + V or Cmd + V, it destroys your development workflow:

    1.
    It overwrites whatever snippet, code block, or SHA was previously copied to your system clipboard.
    2.
    It pollutes your clipboard history manager (Alfred, Raycast, Maccy) with dozens of transient speech snippets.

    In Murmur, we bypass the clipboard entirely. On macOS, we issue kAXSelectedTextAttribute calls directly to the focused editor thread in VS Code or Cursor. In the terminal (Alacritty, iTerm2, WezTerm, Windows Terminal), we dispatch atomic UTF-16 character events directly into the shell process.

    # Example: Dictating a Conventional Commit in terminal
    # 1. Hold Alt+Space (or CapsLock macro)
    # 2. Speak: "feat auth add exponential backoff to stripe webhook retries"
    # 3. Release hotkey:
    
    git commit -m "feat(auth): add exponential backoff to stripe webhook retries"
    # Instantly injected at the shell prompt in 165ms without clipboard touch

    Failure Modes We Hit: "Semicolon" vs ";"

    One of our debugging battles involved punctuation ambiguity. If a developer dictates:

    "We need to add a semicolon after the return statement"

    Should the software produce:

    We need to add a ; after the return statement

    or:

    We need to add a semicolon after the return statement

    How we resolved it:

    We implemented an active-window context sniffer. Murmur checks the window class of the active foreground application:

  • Inside chat & documentation apps (Slack, Notion, Jira, Browser): Punctuation words like "comma", "period", and "semicolon" are normalized to punctuation marks (,, ., ;), and English prose casing is preserved.
  • Inside code buffers (VS Code, Cursor, Neovim): Literal punctuation words are preserved in natural prose comments, while programming tokens (arrow, brace, bracket) are mapped to syntax characters (=>, {, [).
  • Short-Form Content Angle
    "Why typing git commit messages and PRs by voice is 3x faster—and how to do it without cloud leaks."
    "Dictating code comments and architecture decisions locally in VS Code and Cursor."

    Experience 100% On-Device Voice Typing

    Murmur runs locally on your Mac or Windows PC. No cloud transcription, no audio uploads, zero subscriptions.

    Download Murmur (Free Forever)