For Developers

Write code with your voice.
In your IDE.

DeepFlo understands code syntax. Dictate file references, function signatures, and variable assignments directly into VS Code, Cursor, or any editor. Say "at main dot py" and get @main.py.

VS Code — File reference
🎙️""

Speak naturally. Get syntax.

DeepFlo detects you're in an IDE and formats your speech as code.

📁

File References

Say "at utils slash helpers dot ts" and get @utils/helpers.ts. Perfect for Cursor's @ mentions or code comments.

Symbols & Syntax

Say "arrow function" and get =>. Say "equals equals equals" and get ===. No more hunting for special characters.

🎯

Context-Aware

In your IDE: "dot" becomes .. In Slack: "dot" stays as "dot". DeepFlo adapts to where you're typing.

✏️

Voice Editing

Select code and say "make this async" or "add error handling". AI transforms your code based on natural language.

What developers actually dictate

"function handle submit takes event colon react dot form event returns void"
function handleSubmit(event: React.FormEvent): void
"const open brace user comma set user close brace equals use state of null"
const { user, setUser } = useState(null)
"just fixed the race condition in at use websocket dot ts by adding a mutex"
Just fixed the race condition in @useWebSocket.ts by adding a mutex
"if user dot role equals equals admin then return true"
if (user.role === 'admin') return true

Edit code with commands

Hold fn + control and tell DeepFlo what to change.

"add try catch around this"
Before
const data = await fetchUser(id)
return data.name
After
try {
  const data = await fetchUser(id)
  return data.name
} catch (error) {
  console.error('Failed to fetch user:', error)
  throw error
}
"convert to arrow function"
Before
function calculateTotal(items) {
  return items.reduce((sum, item) => sum + item.price, 0)
}
After
const calculateTotal = (items) => 
  items.reduce((sum, item) => sum + item.price, 0)
"add typescript types"
Before
function getUser(id) {
  return users.find(u => u.id === id)
}
After
function getUser(id: string): User | undefined {
  return users.find((u: User) => u.id === id)
}

Works with your stack

DeepFlo runs at the system level. If you can type in it, DeepFlo works.

VS Code
Cursor
JetBrains IDEs
Vim/Neovim
Terminal
GitHub
Linear
Notion

Questions

Does it work with VS Code extensions like Copilot?

Yes. DeepFlo types text at the system level, so it works alongside any extension. You can dictate a prompt, let Copilot complete it, then use voice commands to edit the result.

Can I dictate multi-line code?

Yes. Say "new line" to add line breaks. Say "new paragraph" for blank lines. For complex blocks, many developers dictate the structure then voice-edit it: "add a for loop that iterates over users".

What about variable naming conventions?

DeepFlo preserves camelCase, snake_case, and other conventions. Say "handle user click" and get handleUserClick. Say "user underscore id" and get user_id.

How fast is it compared to typing?

Most developers find it's faster for documentation, comments, and commit messages. For pure syntax-heavy code, it's about equal—but much easier on your hands. The real power is voice editing: transforming code with natural language instead of manual refactoring.

Does it work offline?

DeepFlo requires an internet connection for transcription. Audio is streamed, processed, and immediately discarded—nothing is stored.

Ready to try voice coding?

Download DeepFlo and start dictating code in your IDE.

Download for macOSFree plan available • macOS 12+