January 20, 20264 min read

    Per-App Dictation Profiles: Context-Aware Voice Input on Mac

    One of the biggest problems with dictation tools is that code and conversation require completely different handling. Saying "open paren" should produce ( in your IDE but "(open paren)" in your email.

    Whisperer's per-app profiles solve this by automatically switching dictation modes based on which app you're using.

    How Per-App Profiles Work#

    When you create a profile in Whisperer, you assign it to one or more apps. Whisperer detects which app is in the foreground and activates the corresponding profile — automatically, with no manual switching.

    Default Profiles#

    Out of the box, Whisperer uses a natural language profile for all apps. When you upgrade to Pro Pack, you can create custom profiles:

    AppSuggested ModeBehavior
    VS CodeCode ModeSymbols by voice, casing commands, no autocorrection
    CursorCode ModeSame as VS Code
    TerminalCode ModeHandles dashes, dots, paths correctly
    JetBrains IDEsCode ModeFull IDE support
    SlackChat styleCasual, lowercase-friendly, natural flow
    GmailEmail styleProper sentences, natural punctuation
    Apple NotesNatural languageStandard dictation
    Safari/ChromeNatural languageWeb forms, search queries

    Setting Up Profiles#

    1

    Open Whisperer from the menu bar

    Click the Whisperer icon in your menu bar

    2

    Go to Settings > Profiles

    Navigate to the Profiles section in Settings

    3

    Click Add Profile

    Create a new profile for your app

    4

    Name your profile

    Give it a descriptive name (e.g., "IDE - Code Mode")

    5

    Select the mode

    Choose Code Mode or Natural Language

    6

    Assign apps

    Click Add App and select from your Applications

    Profile-Specific Settings#

    Dictation mode

    Choose Code Mode or Natural Language for each profile

    Language

    Different languages per profile (e.g., English for code, Spanish for personal email)

    Personal dictionary entries

    Different terms for different contexts

    Example Workflows#

    Morning Standup (Slack)#

    You open Slack to post your standup update. Whisperer detects Slack and switches to chat style:

    You say

    Good morning. Yesterday I finished the API migration and opened a PR. Today I'm working on the onboarding flow redesign. No blockers.

    OutputSlack
    Good morning. Yesterday I finished the API migration and opened a PR. Today I'm working on the onboarding flow redesign. No blockers.

    Result: Clean, casual text perfect for Slack.

    Coding Session (VS Code)#

    You switch to VS Code. Whisperer automatically activates Code Mode:

    You say

    async function camel case fetch user data open paren user id colon string close paren colon promise

    OutputTypeScript
    async function fetchUserData(userId: string): Promise

    Result: async function fetchUserData(userId: string): Promise

    Email Break (Gmail)#

    You open Gmail to reply to a client. Whisperer switches to email style:

    You say

    Hi Michael. Thanks for the feedback on the prototype. I've incorporated your suggestions and the updated version is attached. Let me know if you'd like to schedule a walkthrough.

    OutputEmail
    Hi Michael. Thanks for the feedback on the prototype. I've incorporated your suggestions and the updated version is attached. Let me know if you'd like to schedule a walkthrough.

    Result: Professional, properly punctuated email text.

    Terminal Work#

    You switch to Terminal. Code Mode activates:

    You say

    kubectl get pods dash n production dash o wide

    OutputBash
    kubectl get pods -n production -o wide

    Result: kubectl get pods -n production -o wide

    All of this happens without any manual intervention. The profile switch is instant.

    Advanced Tips#

    Create separate profiles for different IDEs

    If you use different languages (e.g., Python snake_case in PyCharm vs. JavaScript camelCase in VS Code)

    Use the personal dictionary per profile

    Add project-specific terms only where they're needed

    Set a smart default profile

    The default profile catches any app without a specific profile, so set it to natural language mode

    Group apps together

    You can assign multiple apps to one profile — group all your IDEs together, all communication apps together, etc.

    Why This Matters#

    Tip

    Without per-app profiles, you'd have to manually switch modes every time you alt-tab between apps. That friction kills the voice dictation workflow. With profiles, the switch is invisible — you just speak naturally and the right behavior happens.

    Related: Dictation for Slack, Gmail & Notion, Code Mode, Voice Coding Guide. See pricing and all features.

    Ready to try voice dictation on your Mac?

    Free download. No account required. 100% offline.

    Download on the Mac App Store

    Related articles

    Ready to ditch typing?

    Join developers and power users who dictate faster than they type. One-time purchase. No subscription. No cloud.

    Free trial included. Pro Pack $14.99 lifetime.