Dictate
EARLY ACCESS — macOS

Dictation that understands your screen

Dictate reads the active app, window title, and on-screen text before sending audio. SQL keywords, library names, and CLI flags land correctly — without manual mode-switching.

Get early accessSee how it works
dictate — active context
appVisual Studio Code
windowsrc/api/query.ts
vocabtypescript, react, postgresql
modelcode-optimised
→SELECT * FROM users WHERE id = :userId

THE PROBLEM

Generic dictation was built for documents. Not for development.

BEFORE

  • ×'select star from users where I.D. equals user I.D.' -- garbage output
  • ×Switch apps, update vocabulary, switch back
  • ×Re-dictate after every misfire; breaks flow
  • ×No awareness of terminal vs editor vs browser

WITH DICTATE

  • ✓SELECT * FROM users WHERE id = :userId -- clean
  • ✓App context detected automatically on every keypress
  • ✓First-time accuracy on SQL, TypeScript, bash
  • ✓Same mic, different profiles per active window

HOW IT WORKS

Context captured once. Correct output every time.

01

Capture what's on screen

On each keypress dictate snapshots the focused app, window title, and visible text. This context travels alongside your audio — not after.

02

Route to the right model

A lightweight context router picks the transcription profile that matches: code editor, terminal, browser, docs, or free-form prose. Vocabularies are injected at this layer.

03

Land clean text, immediately

Output is streamed inline to the active field. No clipboard round-trips, no pop-up windows. Results match what the screen says you're working on.

FEATURES

Built around how developers actually work

◈

Screen-aware context

Active app, window title, and on-screen tokens are sampled per dictation event — not once at install. Switch tasks; the context follows.

◎

Vocabulary routing

Per-app vocabulary files let SQL keywords, library names, and CLI flags take priority. Add a plain-text file; changes take effect on the next dictation.

⊞

Multi-model dispatch

Different transcription profiles can call different models. Code context routes to a model tuned for identifiers; prose routes to one tuned for fluency.

⊘

Offline fallback

A local on-device model handles dictation when you're offline or on a metered connection. Same API surface, no configuration change required.

⊙

Inline streaming

Text lands where your cursor is — no clipboard swap, no secondary panel. Works in every macOS text field including Xcode, VS Code, and Terminal.

⊛

Privacy by design

Screen content never leaves your machine except as routing metadata alongside audio. Transcription calls include only what's needed for context.

COMPARISON

What makes Dictate different

DICTATEGENERIC
Reads active app / window title
✓
✕
Per-app vocabulary files
✓
✕
Multi-model dispatch
✓
✕
Offline on-device fallback
✓
~
Inline streaming (no clipboard)
✓
✕
Works in Terminal & Xcode
✓
~

PRICING

Simple, flat pricing

One plan. Unlimited dictation. Bring your own keys or use ours.

EARLY ACCESS

$9/ mo

Full access while we're in early access. Lock in this price permanently.

  • ✓Unlimited dictation
  • ✓Screen-aware context
  • ✓Vocabulary routing
  • ✓Offline on-device fallback
  • ✓Bring your own API keys
  • ✓macOS native app
Get early access
COMING SOON

TEAM

$19/ seat / mo

Everything in Early Access, plus shared vocabulary libraries and admin.

  • ✓Everything in Early Access
  • ✓Shared vocabulary libraries
  • ✓Team admin & usage dashboard
  • ✓Priority transcription routing
  • ✓Slack & Jira context plugins (beta)
  • ✓Dedicated support
Join waitlist

FAQ

Common questions

Which macOS versions are supported?

Dictate requires macOS 13 Ventura or later. It is built as a native macOS app and uses screen-capture APIs introduced in Ventura.

Does my screen content get sent to a server?

No full screenshots are transmitted. Only the active app name, window title, and a short on-screen text sample travel alongside audio to inform model routing. Transcription calls never include raw pixels.

How do vocabulary files work?

Create a plain-text file per app (e.g. vscode.txt) with one term per line. Dictate detects the active app on each event and injects the matching vocabulary as a hint to the transcription model.

Can I use my own API keys?

Yes. Bring-your-own-key mode is available on all paid plans. You supply a key from any supported provider and Dictate routes calls through that key.

Request early access

Limited seats during private beta. Leave your email and we'll reach out with download instructions.