Variable Recognition

Last updated: July 30, 2026

Available on: Mac, Windows

Variable Recognition helps Flow recognize code symbols — function, class, and variable names — from your active IDE editor, so dictation matches your codebase. In Cursor and Windsurf, Flow can also tag files (@filename) in AI chat.


What it is

When you dictate in Cursor, Windsurf, or VS Code, Flow uses your code context to improve recognition accuracy for the symbols you actually work with.

In Cursor and Windsurf, Flow also tags files in AI chat when you say a filename. In VS Code, Flow reads code context to improve recognition, but file tagging is not available.

Important: Flow does not enable Screen Reader Mode for you — you must run the command in your IDE. See the setup steps below.


When to use it

Use this feature when you want to:

  • Dictate commit messages or PR descriptions that reference code symbols.

  • Write documentation or notes that mention functions and variables.

  • Tag specific files by name in Cursor or Windsurf AI chat while dictating.


How it works in Flow

Overview

Flow reads code from your active editor and extracts function, class, and variable names for supported languages. Those names are added to the transcription context so Flow can recognize them more accurately when you say them. This improves recognition only — it does not automatically format the names in any special way.

Key behaviors

  • Symbol extraction: Flow recognizes function, class, and variable names from your code so they can be matched more accurately when you say them.

  • File name caching: File names from previously opened tabs are remembered across dictation sessions, so you can reference files you've worked with recently even if they're not currently active.

  • Supported IDEs: File tagging works in Cursor and Windsurf only. VS Code is supported for code-context reading but not file tagging. VS Code Insiders is not supported.

  • Supported languages: JavaScript, TypeScript, Python, Java, Swift, C++, C, Rust, and Go. Code in other languages does not have symbols extracted.

  • Case flexibility: Flow matches spoken filenames to their camelCase or separator-based forms (e.g., "my script dot py" matches myScript.py).

  • Terminal behavior: In the integrated terminal, file tagging autocomplete is suppressed, but dictated text — including recognized variable names — is still inserted.

  • Independent settings: Variable Recognition has no on/off toggle; you configure it by running Toggle Screen Reader Accessibility Mode in your IDE. File Tagging in Chat has an independent on/off switch (on by default). Disabling one does not affect the other.

  • File extension required for tagging: Only files with extensions can be tagged.

How file tagging works

  • Full filename: Say the filename with extension (e.g., "index dot tsx") and Flow tags it as @index.tsx — no trigger word needed.

  • Base filename: To tag without saying the extension, use a trigger word ("at", "tag", "tagged", or "@") followed by the base filename.

  • Dot-prefixed files: For files like .env or .github, say "dot" (or "punto") before the name. Dot-prefixed files may not tag reliably unless the file is currently open in a tab.

  • Longest match wins: If multiple filenames could match, Flow picks the longest match.

  • Custom Dictionary priority: If a Custom Dictionary substitution fires on the same transcript, file tagging is skipped for that transcript. Variable recognition still works.

Best practices

  • Keep the relevant code file open in your active tab for best recognition. File names from the sidebar are also recognized, and recently closed files may still match.

  • Say variable names clearly and without filler words for more accurate matching.

  • Avoid overlapping Custom Dictionary substitutions with file tagging — when a substitution fires, file tagging is skipped for that transcript.


How to set it up

  1. Open Flow and go to Settings → Vibe coding.

  2. Click the Variable Recognition setup button to start the guided flow.

  3. Open the command palette in your IDE — Cmd+Shift+P on Mac or Ctrl+Shift+P on Windows.

  4. Run Toggle Screen Reader Accessibility Mode.

  5. Return to Flow and complete the final step in the setup guide.

Note: If you're new to the feature, you can also launch setup from the Get started button on the Home page. This button appears only if Flow detects you've recently used Cursor or Windsurf.


Examples

Tagging a file in AI chat

You say: "open at index dot tsx"

Flow types: open @index.tsx

Tagging without saying the extension

You say: "review at my script"

Flow types: review @myScript.py

Tagging a dot-prefixed file

You say: "check at dot env"

Flow types: check @.env


FAQs

Why isn't file tagging working in my IDE?

Check that File Tagging in Chat is enabled in Settings → Vibe coding, you're in a supported IDE (Cursor or Windsurf — VS Code does not support file tagging), the file is open in a tab or was recently opened, and no Custom Dictionary substitution fired during that dictation.

Does this work with VS Code or VS Code Insiders?

Standard VS Code supports code-context reading only — no file tagging. VS Code Insiders is not supported.

What is File Tagging in Chat?

File Tagging is a separate setting in Settings → Vibe coding that automatically tags files in your IDE's AI chat. It's on by default and works in Cursor and Windsurf only. See How file tagging works above for the spoken patterns.

Does Custom Dictionary affect this feature?

If a Custom Dictionary substitution fires during your dictation, file tagging is skipped for that transcript. If no substitution triggers, file tagging runs normally. Variable name recognition is unaffected either way.


Limitations and notes

  • This feature is available on Mac and Windows only.

  • File tagging works in Cursor and Windsurf only. VS Code supports code-context reading but not file tagging. VS Code Insiders is not supported.

  • Supported languages: JavaScript, TypeScript, Python, Java, Swift, C++, C, Rust, and Go.

  • Recognition accuracy depends on code structure, language support, and speech clarity.

  • Password and secure text fields are never read by Flow.

  • If your IDE has a heavily customized UI, Flow may be unable to detect whether Screen Reader Mode is on or off.