Use Flow with Cursor, VS Code, and other IDEs
Last updated: October 7, 2026
Available on: Mac and Windows. Vibe coding features are available on all plans.
Dictate code-related text, comments, commit messages, or prompts. Flow can recognize names visible in your editor and attach files you mention in a supported AI chat.
Where each feature works
Feature | Where it works |
Variable recognition | Cursor, Windsurf, and standard VS Code on Mac and Windows. |
File tagging | Cursor and Windsurf AI chat panels only. |
VS Code Insiders supports neither feature. Standard VS Code, including with GitHub Copilot, does not support file tagging.
Note: On Mac, Flow needs Accessibility permission to read IDE context; without it, code context is unavailable. Secure and password fields are always excluded.
Set up variable recognition
Variable recognition has no on/off toggle in Flow: it relies on Screen Reader Optimized mode, which you enable in the IDE yourself. Recognition quality may be lower on Windows.
Open Flow Settings → Vibe coding, then choose Set up beside Variable recognition for instructions.
Open your IDE's Command Palette: Cmd+Shift+P on Mac or Ctrl+Shift+P on Windows.
Run Toggle Screen Reader Accessibility Mode. Running it again disables the mode.
Confirm that Screen Reader Optimized appears in the IDE's status bar.
Keep the relevant file open and dictate a phrase using a visible variable or function name.
Speak names naturally: "user ID" can match userId. Flow uses visible variable, function, and class names to improve recognition, and recognized names can appear as inline code.
Keep relevant tabs and sidebar files visible; off-screen, placeholder, and very large file content can be skipped. A heavily customized IDE interface can prevent mode detection.
Tag files by voice
File tagging needs no Screen Reader Optimized mode and works unless you turn it off at Settings → Vibe coding → File Tagging in Chat (Cursor & Windsurf).
Note: Any dictionary or snippet substitution disables tagging for the entire dictation, even if it does not change a filename.
Open the file in a tab or make it visible in the sidebar.
Click the AI chat input that supports @-autocomplete.
Say the full filename including its extension, or "tag," "tagged," "at," or "@" before its base name.
Matching filenames become @-tags. Full filenames work with or without a trigger; use a trigger when a name is short or ambiguous. If nothing matches what you said, the dictation is left completely unchanged, including the spoken trigger word.
Eligible names: Filenames must contain a dot, including dot-prefixed names such as .env and names beginning with numbers; names without a dot cannot be tagged. For .env, say "dot" before the name; Spanish "punto" also works.
Quotes, backticks, and markup: These do not prevent tagging; names such as __init__.py or a filename inside markup like <li>live.json</li> still tag.
Overlapping names: The longest matching filename takes priority.
Multiple files: Flow can tag several files in one dictation, but if the autocomplete list is slow to filter it can select the wrong file.
Scope: File tagging does not tag people or create @-mentions in other apps.
Filename examples
Full filename
You say: "Check index dot ts for errors."
Result: Flow tags index.ts.
Base name with a trigger
You say: "Explain this code, tag my python script."
Result: Flow tags my_python_script.py.
CamelCase filename
You say: "Open cursor formatting dot ts."
Result: Natural words can match the visible filename cursorFormatting.ts.
Dictate and paste in editors or terminals
Dictation defaults are Fn on Mac and Ctrl+Win on Windows; a Mac without Apple's Fn key can use Ctrl+Option. In a terminal, use ordinary dictation rather than expecting file attachments: Flow skips tagging in an area it recognizes as a terminal, and it can mistake other fields for terminals or miss a terminal pane.
Warning: Clipboard restoration can exclude files, PDFs, rich text with attachments, and audio.
Click the intended text field.
Hold your Flow shortcut, speak your text, and release it.
Wait for the entire paste before editing or starting another dictation.
Flow notifies you on Mac and Windows when it could not find a focused text box. In Claude Code and Codex CLIs on Mac, Flow pastes long dictations in parts. In supported coding editors on Windows — including Cursor, VS Code, and Windsurf integrated terminals when needed — Flow uses Shift+Insert instead of Ctrl+V, and there is no setting to change it.
When you dictate into an app on your own computer, Flow restores your previous clipboard contents about half a second after the paste, so pressing Ctrl+V right afterwards pastes what you had copied before — and anything you copy during that moment is kept. On Windows, Outlook (classic and new), Word, and WhatsApp keep the dictation on the clipboard for about three seconds, so a Ctrl+V during that time pastes the dictation again. In a remote desktop viewer such as RDP, Citrix, VNC, AnyDesk, or TeamViewer, Flow waits about five seconds so pastes over slow connections still land.
If recognition or tagging fails
After each check, dictate a visible name again; if recognition or tagging works, stop.
Recheck the editor, permissions, visibility, and settings listed above for your feature.
Close unused tabs if context reading feels slow.
Restart Flow and the IDE.
If text is missing
Use Paste last transcript — Cmd+Ctrl+V on Mac or Shift+Alt+Z on Windows — or copy the result and use the terminal's paste command; some terminals use Ctrl+Shift+V instead of Ctrl+V. Custom bindings replace these defaults. For further recovery, follow Fix text not pasting after dictation.
Still stuck?
Contact support if recognition, tagging, or pasting still fails. Include your IDE, operating system, device, what you tried, what you said, and what appeared.