Just shipped

Flo: Private Voice Assistant for Mac

Flo is a private voice assistant for macOS, with Windows and Linux in beta, that lives in the MacBook notch. Hold a key to dictate clean text into any app, ask an assistant about your screen, take live meeting notes and track agent sessions. Speech runs on device and your data stays encrypted on your machine. Designed and built end to end by Naman.

Role
Founder and sole engineer: product, Rust core, UI and privacy model
Year
2026
Stack
Tauri, Rust, React, TypeScript, Whisper, SQLCipher, Ollama, LLM APIs

The problem

People think far faster than they type, and the tools that help either stream every word to someone else's server or charge by the word. Asking AI about what is already on screen takes five steps of copy and paste, meeting action items go unwritten, and a Claude Code session can sit finished for ten minutes before anyone notices.

How it was built

01A notch, not another window

Flo lives in the MacBook notch, and in a small capsule in the bottom-right corner on Windows and Linux. It stays out of the way until a push-to-talk key is held, then the notch expands to show it is listening, thinking or done. Hold control to dictate and fn to ask; on Windows, Right Ctrl and Right Alt.

02Dictation that cleans up after you

Speech is recorded, transcribed on device with Whisper, tidied (filler words, false starts, punctuation, the spellings you taught it) and pasted where the cursor is. Short, clean sentences are tidied locally without calling a model at all, so most dictation costs nothing and never leaves the machine.

03An assistant with context, sent sparingly

The assistant sees projects, to-dos, notes, the selected text and, when asked to go deeper, the current window via on-device OCR. It replies with structured actions (add a to-do, rewrite this, start meeting notes, open an app) that Flo executes. Only the few relevant lines of your context library are sent, never the whole library.

04Meetings, attention and agents

Meeting notes produce a live transcript, a rolling summary and action items that become to-dos. An opt-in attention mode reads the focused window on device and spots asks like 'send the deck by Friday'. Claude Code, Codex and Cursor hooks put finished or waiting sessions in the notch, one click from the right window.

05Private by design, not by promise

There is no telemetry and no sync. Every network call passes through one egress guard with an allow list and appears in a network log with its host, reason and token count. History lives in an encrypted SQLCipher database whose key sits in the macOS Keychain or Windows Credential Manager, and screenshots are read in memory and never written to disk.

Stack decisions

Why each piece was chosen, rather than just what was used.

Tauri + Rust

A native shell with a small footprint and direct access to hotkeys, audio, accessibility paste and OCR on each platform, without shipping a whole browser runtime like Electron.

Whisper on device

Multilingual speech to text, including Hindi and Gujarati, without sending audio anywhere. Cloud speech is available only with your own key.

Bring your own model, or Ollama

Claude, OpenAI, Gemini, Groq, OpenRouter, MiniMax and Qwen with your key, or fully local models through Ollama and LM Studio. No vendor lock-in and no word caps.

SQLCipher

Notes, to-dos and history are personal; an encrypted local database with the key in the OS keychain keeps them that way even if the disk is copied.

React

The notch island and the glass dashboard (home, to-dos, projects, notes, analytics, history, settings) share one UI codebase across macOS, Windows and Linux.

What it does

  • Push-to-talk dictation into any app, with hands-free mode
  • Screen-aware assistant: go deeper on the current window or search the web with sources
  • Live meeting transcript, rolling summary and action items
  • Attention to-dos found on screen, on device and off by default
  • Claude Code, Codex and Cursor sessions in the notch
  • Slack DMs and mentions turned into to-dos, with confirmed replies
  • Learns your spellings after one correction
  • Analytics and a typing test that measure speed against your own typing
  • Egress guard and network log for every request

Questions this raises

Does Flo send my voice to the cloud?

Not by default. Speech is transcribed on device with Whisper. If you choose a cloud speech or AI provider, Flo sends text straight to that provider with your own key, and every request shows up in the network log.

Which AI models does Flo support?

Claude, OpenAI, Gemini, Groq, OpenRouter, MiniMax, Qwen and Ollama Cloud with your own key, or local models through Ollama and LM Studio.

How is Flo different from other dictation apps?

It combines dictation, a screen-aware assistant, meeting notes, to-dos and an agent tray in one app, keeps history on your machine, and lets you choose the model or run fully local.

Can you build something like this for my team?

Yes. Flo is the kind of desktop AI product I build: native capture, on-device processing where it matters, LLM actions with guardrails and a privacy model you can audit. A free 30-minute scoping call is the place to start.

Related work

Building something similar?

Naman Gundaniya takes on full stack and AI projects like this one. Available for hire, replies within 24 hours.