Dictify
Free & open-source dictation for macOS

Hold fn. Speak.
Get polished text.

Dictify is a native macOS app that turns speech into clean, punctuated text and types it straight into whatever app you're focused on. Groq Whisper transcribes; GPT-OSS strips the ums, resolves your backtracks, and punctuates - on the fly.

MIT licensed · macOS 14+ · or install with Homebrew

01How it works

From breath to finished sentence, in one hold

No windows to focus, no modes to switch. A minimal floating indicator at the bottom of the screen shows recording state and elapsed time - the rest happens on its own.

i.

Hold & speak

Hold fn - or any shortcut, or the middle mouse button - and talk. The audio engine is prewarmed, so recording starts the instant you press.

ii.

Whisper transcribes

Audio goes to Groq Whisper, primed with your personal dictionary so your names and terms come back right.

iii.

GPT-OSS polishes

Fillers gone, self-corrections resolved, punctuation added - in a tone matched to the app you're in. Pick Quality (120b) or Fast (20b).

iv.

Lands at your caret

Typed directly into the focused field via macOS Accessibility APIs - with a paste fallback for read-only fields.

02Features

Everything a writing tool should do when you'd rather talk

Dictify stays out of the way - a menu bar icon, a hotkey, a floating pill. Underneath, there's a full toolbox.

Home base

One home for everything

Home, history, dictionary, snippets, and settings live in a single window with a sidebar. The Home tab is a small dashboard of your dictation life.

  • Live stats - session and total words with words-per-minute, current streak, active days, speaking time, peak hour, busiest day.
  • Time saved - an estimate of what you'd have spent typing, plus a GitHub-style contribution graph of daily activity.
  • Close it whenever. The global hotkey keeps working in the background; a menu bar icon is always there for a quick reopen or quit.
Dictify Home tab: ready-to-dictate banner, live word and streak statistics, and a contribution graph
fig. 1The Home tab - stats, streaks, and time saved.
AI refinement

Cleanup that matches where you're typing

GPT-OSS cleans up what you actually said: removes "um" / "uh" / "like", resolves self-corrections ("meet at 2, actually 3" becomes "meet at 3"), and adds punctuation.

  • Match tone to the app - polished for email and docs, casual for chat, literal for code editors. Web apps in a browser stay neutral.
  • Quality - openai/gpt-oss-120b, the best cleanup. Fast - openai/gpt-oss-20b, lower latency.
  • Configurable activation: fn, any custom key or combo, or middle mouse - plus a tap-vs-hold threshold you can tune.
Dictify General settings: activation triggers, tap-vs-hold threshold, refinement model, and match-tone-to-the-app toggle
fig. 2General settings - triggers, refinement model, tone matching.
History

See exactly what the AI changed

Every dictation is saved locally, grouped by day, and searchable across both the raw and the refined text.

  • Word-level diffs - click a refined entry to see each change highlighted, before and after.
  • Edit in place - fix a transcription right there, or copy it with one click.
Dictify History tab: searchable daily transcriptions with word-level before/after diffs of AI changes
fig. 3History - a word-level diff of every refinement.
Snippets

Say a trigger, paste a paragraph

Spoken triggers expand into full text blocks. Say "email sign-off" and get your whole signature, typed where you are.

  • Categories keep them organized - email, contact, general, and yours.
  • Variables like {{date}}, {{time}}, and {{clipboard}} fill themselves in.
Dictify Snippets tab: spoken triggers organized by category that expand into full text
fig. 4Snippets - spoken triggers, organized by category.
Personal dictionary

Teach it your words

Add your custom terms, names, brands, and acronyms - and Dictify stops guessing.

  • Biases recognition - your terms are injected into the Whisper prompt on every request.
  • Fixes sound-alikes - GPT-OSS uses the same list to correct clear near-misses during refinement.
Dictify Dictionary tab: custom terms, names, brands, and acronyms that bias recognition
fig. 5The Dictionary tab - your terms, spelled your way.
Bring your own key

Your Groq key, in the Keychain, verified in a click

Paste your key once - Dictify stores it encrypted in the macOS Keychain and verifies it with a one-click Test Connection. The models in use are shown right in the API tab, and the free tier is enough for typical personal use.

  • Never on disk in plaintext. Keychain-encrypted, always.
  • No middleman. Your audio goes only to Groq's API - nowhere else.
Dictify API settings: Groq API key stored in Keychain with Test Connection button
fig. 6The API tab - your key, your models, one test button.
&The rest of the toolbox

Pause media while dictating

Playing audio or video is paused when you start dictating and resumed after - your music never bleeds into a recording.

Appearance

Follow the system look, or force Light (Dictify's cream palette) or Dark.

Guided onboarding

First launch walks you through permissions; replay the welcome tour anytime from General settings.

Microphone selection

Record from any input device you pick, or follow the system default automatically.

Sound & visuals

Optional start/stop tones and an elapsed-time readout on the floating indicator, so you always know it's listening.

Optional Dock presence

Run as a menu-bar-only app or show in the Dock - your call. Launch at login is one toggle away.

Direct insertion

Types into any text field via Accessibility APIs; falls back to paste when a field is read-only.

Local-first storage

Dictionary, snippets, and history live on your Mac in ~/Library/Application Support/Dictify/.

Redacted diagnostics

Copy or email recent logs to the developer in one click - always scrubbed of API keys and dictated text.

03See it in action

One hold, zero typing

Watch a full round trip: hold, speak, release - and clean text lands in the app.

Dictify demo video thumbnail
04Install

In your menu bar in under a minute

Homebrew if you live in the terminal, a signed & notarized DMG if you don't.

$brew tap aletisunil/tap
$brew install --cask dictify
 # later, to stay current:
$brew upgrade --cask dictify

Prefer a download?

Grab the latest signed, notarized Dictify.dmg, drag the app to Applications, and launch.

Download the DMG
or

Build from source

Open Dictify.xcodeproj in Xcode and press ⌘R. The whole app is MIT-licensed on GitHub.

macOS 14+

Sonoma or later, on any Mac.

A Groq API key

Free from console.groq.com - the free tier covers typical personal use.

Two permissions

Microphone and Accessibility - Dictify walks you through both on first launch.

Private by design, not by promise.

  • No analytics, no telemetry. Audio goes to Groq's API for transcription - and nowhere else.
  • Keychain-encrypted key. Your Groq key never touches disk in plaintext.
  • Local-first. Dictionary, snippets, and history are plain JSON on your Mac.
  • Honest manifest. A privacy manifest declares exactly which system APIs it touches, and why.