Use Flow with Cursor, VS Code, and other IDEs
Last updated: June 5, 2026
Available on: Mac, Windows
Dictate code, comments, and prompts directly into Cursor, VS Code, Windsurf, and their terminals. Flow recognizes variable names from your open editor and lets you tag files by voice in chat panels.
What it is
Flow integrates with Cursor, VS Code, and Windsurf to make voice-driven coding feel natural. 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 also dictate into chat panels, integrated terminals, and AI coding CLIs like Claude Code and Codex.
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 and Codex.
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.
Multi-file tagging: Tag multiple files in a single dictation (e.g., "look at cron.py and vad.py" tags both files).
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, Flow tags it automatically.
Long-dictation chunking in AI coding CLIs: In AI coding CLIs like Claude Code and Codex, Flow automatically splits long dictations into smaller chunks. This prevents these CLIs from collapsing long pasted content.
Windows IDE terminal paste: In the integrated terminals of Cursor, VS Code, and Windsurf on Windows, Flow uses Shift+Insert instead of Ctrl+V to simulate paste, since these terminals don't accept Ctrl+V reliably.
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
Open the Wispr Flow app.
Go to Settings → Vibe coding.
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
Open your IDE and place your cursor where you want text.
Press your Flow hotkey to start dictating (default: Fn on Mac, Ctrl+Win on Windows).
Release the hotkey to stop. Flow pastes the transcribed text automatically.
Tip: On Mac, if your Fn key is unavailable, Flow uses Ctrl+Option as a backup hotkey.
Dictate into a terminal
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.
Dictate with Flow as normal.
If text doesn't appear, press Ctrl+Cmd+V (Mac) or Alt+Shift+Z (Windows) to use Paste last transcript.
Try your IDE's integrated terminal — Cursor, VS Code, and Windsurf integrated terminals all support direct paste (Flow uses Shift+Insert on Windows for these specific 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.
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
Tagging multiple files in one dictation
You say: "look at cron.py and vad.py"
Flow types: look at @cron.py and @vad.py
Flow correctly tags each file mentioned in the same dictation.
Dictating a commit message
You say: "fix null pointer exception in user auth module"
Flow types: fix null pointer exception in user auth module
Dictating a long prompt into Claude Code
Dictate a multi-paragraph prompt into Claude Code. Flow automatically splits it into smaller chunks behind the scenes, so the CLI receives the full prompt cleanly instead of collapsing it.
FAQs
Why aren't my variable names being recognized?
Work through these checks in order:
Confirm Variable recognition is enabled in Settings → Vibe coding.
Grant Accessibility permissions to Wispr Flow. Flow reads IDE context via accessibility APIs and cannot function without this permission.
Confirm the variable appears in your IDE's open editor. Flow reads context from visible editors only.
Say the variable name clearly, matching its exact spelling.
Restart Flow and your IDE.
If you're on VS Code Insiders, variable recognition isn't supported — use standard VS Code, Cursor, or Windsurf.
Why isn't file tagging (@filename) 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.
Why don't I see a Cursor integration suggestion in VS Code?
The Cursor integration suggestion only appears when you're using a file-tagging app like Cursor. To use file tagging, switch to Cursor or Windsurf.
How do I disable Screen Reader Mode?
Variable recognition reads code best when Screen Reader Mode is on in your IDE. 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.
Why does Flow feel 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.
My long Claude Code prompt got cut off or collapsed
Flow automatically chunks long dictations for Claude Code and Codex. If you start a new dictation while a previous one is still pasting, wait for the chunking to finish before triggering Flow again. Update Wispr Flow to the latest version if you don't see this behavior.
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 (standard) supports variable recognition but not file tagging. VS Code Insiders supports neither.
In the Cursor, VS Code, and Windsurf integrated terminals on Windows, Flow uses Shift+Insert instead of Ctrl+V to simulate paste.
Flow automatically splits long dictations into smaller chunks in AI coding CLIs like Claude Code and Codex.
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.
If a paste fails, your original clipboard content may not be restored — use Paste last transcript to recover dictated text.
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.
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 hitting an issue specific to a particular IDE.
Include your IDE name and version, your OS, and what you tried. Visit wisprflow.ai/support to get in touch with our team.