File Tagging
Last updated: June 5, 2026
Available on: Mac, Windows
Tag files in Cursor and Windsurf using just your voice. Say a file name while dictating, and Flow attaches it to your AI chat — no keyboard, no @ menu.
What it is
AI-powered IDEs like Cursor and Windsurf let you attach files to chats so the AI has more context for better code suggestions. Normally you press @, type the file name, and pick from a list. File Tagging skips that — speak the file name and Flow handles the rest.
When to use it
Use this feature when you want to:
Reference files in Cursor or Windsurf AI chat without typing.
Quickly attach multiple files while explaining a coding task.
Stay in flow while pair-programming with AI.
How it works in Flow
Overview
When you dictate in an AI chat window in Cursor or Windsurf, Flow listens for file names and tags them automatically. File Tagging is on by default.
Flow remembers file names from your open IDE tabs across dictation sessions, so recently-closed files may still be matched.
Key behaviors
Full file name: Say the complete file name with extension — for example, "Can you fix the bug in index dot ts please?"
Trigger words: Say "tag," "at," "tagged," or "@" followed by the file name (extension optional) — for example, "Can you explain this code to me, tag my python script."
Multiple files in one utterance: Name more than one file in a single dictation — for example, "look at cron dot py and vad dot py" — and Flow tags each file correctly.
"Dot" as a separator: The word "dot" separates the name from the extension for any file (e.g., "main dot JS" tags main.js), not just dot-files.
Dot-files: For files like .env, say "dot" (or "punto" in Spanish) before the name — "dot env." Dot-files also tag if the full filename appears verbatim in the transcription (e.g., ".env"). Trigger words like "tag" or "at" do not work with dot-files.
No-dot files: Files with no dot in the name (e.g., Makefile, Dockerfile) cannot be tagged.
Smart matching: CamelCase and snake_case file names match naturally spoken words — say "cursor formatting" to match cursorFormatting.ts, or "my script name" to match my_script_name.py.
Ambiguous matches: When multiple files could match your spoken words, longer file names are matched first.
Note: With a trigger word like "tag" or "at," you can say just the base file name without the extension. Without a trigger word, say the full file name including the extension.
Best practices
Use a trigger word ("tag" or "at") when you don't want to say the extension out loud.
Speak CamelCase and snake_case names as natural words — Flow handles the casing.
Turn on Screen Reader Mode in your IDE for the most reliable file and variable recognition.
Demo
Screen Reader Mode and settings
Cursor, Windsurf, and VS Code have a Screen Reader Mode that makes it easier for other apps to read information from them. Flow uses this to better recognize variable names and file names you mention while dictating.
Find these options under Settings → Vibe coding:
Variable recognition (VS Code, Cursor, Windsurf): When enabled, Flow reads code symbols from the IDE to better recognize variable and function names you dictate. Detection works best when Screen Reader Mode is turned on in your IDE. Default: off.
File Tagging in Chat (Cursor & Windsurf): Controls whether file names are auto-tagged in AI chat. Default: on.
Note: When you type @ in Cursor or Windsurf to tag a file manually, Flow may suggest enabling the integration. The suggestion appears occasionally and auto-dismisses on its own. It does not appear in VS Code.
Examples
Tagging a file by its full name
You say: "Can you fix the bug in index dot ts please?"
Flow tags: index.ts is attached to the AI chat automatically.
Using a trigger word without an extension
You say: "Can you explain this code to me, tag my python script."
Flow tags: The matching file from your open tabs (e.g., my_python_script.py) is attached.
Tagging a CamelCase file by speaking naturally
You say: "Look at cursor formatting for the styles."
Flow tags: cursorFormatting.ts is matched and attached.
Tagging multiple files in one dictation
You say: "Look at cron dot py and vad dot py and tell me how they interact."
Flow tags: Both cron.py and vad.py are attached to the AI chat.
FAQs
Does file tagging work in VS Code?
No. VS Code supports variable recognition through Screen Reader Mode, but file tagging is only available in Cursor and Windsurf.
Why didn't my file get tagged?
A few conditions can prevent file tagging:
The focused element is a terminal window inside Cursor or Windsurf.
The app is VS Code (file tagging is only supported in Cursor and Windsurf).
The File Tagging in Chat setting is turned off.
A Custom Dictionary substitution changed the dictated text — a single replacement that modifies the text prevents all file tagging for that dictation. A no-op replacement (one that does not change the text) does not disable tagging.
How do I turn off file tagging?
Open Settings → Vibe coding and toggle off File Tagging in Chat (Cursor & Windsurf).
Limitations and notes
File tagging is available on Mac and Windows only.
File tagging is supported in Cursor and Windsurf — not VS Code, with or without GitHub Copilot.
File tagging does not work in terminal windows within Cursor or Windsurf.
Files with no dot in the name (e.g., Makefile, Dockerfile) cannot be tagged.
File tagging is disabled for any dictation where a Custom Dictionary substitution changes the text.
File tagging requires the File Tagging in Chat setting to be enabled (Settings → Vibe coding) — on by default.