Use Flow with Cursor, VS Code, and other IDEs

Last updated: April 30, 2026

Available on: Mac, Windows

Dictate code, comments, and prompts directly into Cursor, VS Code, Windsurf, and terminals. Flow recognizes variable names from your editor and auto-tags files in chat panels.


What it is

Flow integrates with popular IDEs to make voice-driven coding seamless. It reads context from your open editors — variable names, filenames, and code structure — so dictated text matches the code you're working with. You can dictate into editor panes, chat panels, and terminals.


When to use it

Use IDE integration when you want to:

  • Dictate code or comments and have variable names match your existing code

  • Tag files by voice in Cursor or Windsurf chat panels (e.g., "@main.py")

  • Dictate longer prompts to AI coding assistants like Claude Code

  • Write commit messages, documentation, or terminal commands hands-free


How it works in Flow

Overview

Flow has dedicated integrations for Cursor, VS Code, and Windsurf. When enabled, it reads code context from your editor to improve transcription accuracy and lets you reference files by voice in chat panels.

Key behaviors

  • Variable recognition: Flow detects variable, function, and class names from your open editor and uses them as context to improve transcription. Supports JavaScript, TypeScript, Python, Java, Swift, C++, C, Rust, and Go.

  • File tagging (Cursor and Windsurf only): In chat panels, say "at," "tag," "tagged," or "@" followed by a filename to reference files (e.g., "Check at main.py" becomes "Check @main.py"). With a trigger word, you can say just the base filename (e.g., "tag myScript" for myScript.py). Without a trigger word, say the full filename including extension and Flow auto-tags it. When multiple filenames could match, the longest match wins.

  • File detection: Flow detects files from your open IDE tabs and sidebar file tree. Files must have an extension. Filenames starting with special characters (like underscores in __init__.py) may not be fully detected from the sidebar. Filenames starting with numbers are supported.

  • Dot-prefixed files: For files like .env, say "dot" (or "punto" in Spanish) before the filename. If your dictated text already includes the dot character (e.g., ".env"), Flow tags it automatically.

Note: File tagging is disabled in terminal panes within the IDE. It may also not work if a custom dictionary word was substituted in the same dictation.

Best practices

  • Speak variable names phonetically — for userId, say "user I.D." or "user ID."

  • Keep the file you want to tag open in a tab or visible in the sidebar.

  • Close unused editor tabs to keep Flow's context focused and responsive.

  • Use a trigger word ("at," "tag") when filenames are short or ambiguous.


How to set it up

  1. Open the Wispr Flow app.

  2. Go to Settings → Vibe coding.

  3. Enable Variable recognition (VS Code, Cursor, Windsurf).

Note: Variable recognition is off by default. File tagging in chat (Cursor and Windsurf) is on by default.

Dictate in your IDE

Mac

  1. Open your IDE and place your cursor where you want text.

  2. Press your Flow hotkey (default: Fn) to start dictating.

  3. Release the hotkey to stop. Flow pastes the transcribed text automatically.

Tip: If your Fn key is unavailable, Flow uses Ctrl+Option as a backup hotkey.

Windows

  1. Open your IDE and click where you want text.

  2. Press your Flow hotkey (default: Ctrl+Win) to start dictating.

  3. Release the hotkey to stop. Flow pastes the transcribed text automatically.


Terminal and command line

Flow inserts dictated text using your system's paste shortcut. Some terminals expect a different shortcut (such as Ctrl+Shift+V), so Flow's paste may not work the first time.

If paste doesn't work in your terminal

  1. Dictate with Flow as normal.

  2. If text doesn't appear, press Ctrl+Cmd+V (Mac) or Alt+Shift+Z (Windows) to use Paste last transcript.

  3. Try your IDE's integrated terminal — many accept Cmd+V (Mac) or Ctrl+V (Windows) by default. On Windows, Flow may use Shift+Insert when pasting into Cursor, VS Code, or Windsurf terminals.

Warning: Flow restores your original clipboard contents after each paste. If the paste fails, your dictated text may no longer be on the clipboard — use Paste last transcript to recover it.

Using Flow with Claude Code

Claude Code runs in terminal environments. Flow detects when you're dictating into Claude Code and splits long dictations into smaller chunks so your text appears verbatim, instead of being collapsed into a hidden block. Short dictations are unaffected.

  1. Dictate your prompt with Flow.

  2. Check if the text appears. Flow attempts to paste using the standard method first.

  3. If not, press Ctrl+Cmd+V (Mac) or Alt+Shift+Z (Windows) to use Paste last transcript.


Examples

Dictating with variable recognition

You say: "set user ID to none"

Flow types: set userId to None

Flow matches "user ID" to the userId variable in your open editor.

Tagging a file in Cursor chat

You say: "Check at main.py for errors"

Flow types: Check @main.py for errors

Dictating a commit message

You say: "fix null pointer exception in user auth module"

Flow types: fix null pointer exception in user auth module


FAQs

Variable names aren't being recognized

  1. Confirm Variable recognition is enabled in Settings → Vibe coding.

  2. Grant Accessibility permissions to Wispr Flow. Flow reads IDE context via accessibility APIs and cannot function without this permission.

  3. Confirm the variable appears in your IDE's open editor. Flow reads context from visible editors only.

  4. Say the variable name clearly, matching its exact spelling.

  5. Restart Flow and your IDE.

VS Code Insiders is not supported for variable recognition or file tagging — use standard VS Code, Cursor, or Windsurf.

File tagging (@filename) isn't working

File tagging works in Cursor and Windsurf chat panels only — not in VS Code. The file must be open in a tab or visible in the sidebar, and you need to say "at" clearly followed by the filename.

I don't see a Cursor integration suggestion in VS Code

The Cursor integration suggestion only appears when you're using a file-tagging app like Cursor. It no longer appears in other editors. To use file tagging, switch to Cursor or Windsurf.

How do I disable Screen Reader Mode?

Variable recognition requires Screen Reader Mode to be enabled in your IDE for optimal context reading. Flow detects whether Screen Reader Mode is active but does not enable or disable it. Turn it off manually in your IDE (e.g., Shift+Option+F1 in VS Code or Cursor). To stop Flow from reading IDE context, disable Variable recognition in Settings → Vibe coding.

Flow feels slow in my IDE

Disable Variable recognition in Settings → Vibe coding if you don't need it, and close unused editor tabs. Flow reads context from open tabs, so fewer tabs means faster processing.


Limitations and notes

  • Variable recognition and file tagging are available on Mac and Windows only.

  • File tagging works in Cursor and Windsurf chat panels only — not in VS Code.

  • VS Code Insiders is not supported for variable recognition or file tagging.

  • Flow preserves your clipboard before pasting and restores it afterwards. These clipboard content types are not preserved: file contents, PDFs, rich text with attachments (RTFD), and audio data.

  • Flow marks dictated text as concealed when pasting, so most third-party clipboard managers (e.g., Pastebot, Pasta) will not store it in their history.

  • The Paste last transcript shortcut can be customized in Flow's keyboard shortcut settings.

  • When dictating into Claude Code, Flow handles long dictations automatically. This applies to dictations over approximately 800 characters or those containing multiple line breaks.


Still need help?

Reach out to our support team if:

  • Vibe coding settings cause crashes or freezes

  • Variable recognition worked before but stopped

  • You're experiencing issues specific to a particular IDE

In the Flow desktop app, click the ? icon, then select Talk to support. Include your IDE name and version, your OS, and what you tried — most issues are resolved in one reply.