Private · On-device · Apple Neural Engine

Live captions for
whatever your Mac is playing.

Videos, calls, podcasts: transcribed as they play and drawn as an always-on-top overlay. Nothing is uploaded, nothing is recorded, nothing is written to disk.

14-day refund, no questions asked

One-time $9, every future update included · macOS 14.2 or later · Apple Silicon
Unlimited captions, for as long as you like. No minutes to buy, no account, no subscription.

Switch apps and the captions stay: the overlay is above every window, and lets clicks through.

Click a window to bring it forward. Hold and drag the captions to move them, as you would in the app.

Point at the captions and they dissolve under you. Hold to stack the last few back up. Both work here exactly as they do in the app.

Live subtitles for any app on your Mac

Subtitles captions any audio your Mac can play, because it taps the app itself rather than integrating with any one service. Whether you are deaf or hard of hearing, listening in a second language, or just working somewhere loud, three situations come up again and again.

01

Meetings and calls

Zoom, Google Meet, Teams, a Slack huddle, a call in a browser tab: all of it is just audio coming out of an app, so all of it gets captioned. Second language or not, it earns its place the moment an accent is unfamiliar, someone's microphone is bad, or two people talk over each other: reading a word you only half-heard is faster than asking for it again, and it doesn't interrupt anyone.

02

Keeping the thread while you work

Audio doesn't wait. The moment you switch to your notes, your editor or a browser window, you start losing the conversation. The overlay is always on top of every window and click-through, so it stays where it is while you work in front of it. You can take notes, look something up, and still follow what's being said. A notepad like Granola writes the meeting up afterwards; this is the half that has to happen while it is still going on.

03

Videos, podcasts and lectures

A video with no captions, or with automatic ones that are worse than none. A podcast in a language you're still learning. A recorded or a streaming lecture, an interview, a film with quiet dialogue. Captions appear over whichever window is playing it, at whatever text size you set, in nine languages with the language detected for you.

All three have the same thing in common: a meeting, a call and a private recording are none of a server's business. None of this audio is uploaded, because none of it has to be: the model runs on your Mac.

Built around three constraints

Live audio can't be paused, can't be re-run, and shouldn't have to leave your machine. Everything here follows from that.

Nothing leaves the Mac

It runs locally and offline: no network calls, no accounts, no telemetry. Audio goes from the tap straight into the recogniser and is discarded. The only thing ever downloaded is the model itself, once.

Neural Engine, not CPU

Roughly 0.15 real-time factor: six seconds of speech transcribed per second of compute. The same model on the CPU measured about 100× too slow to keep up with a live stream.

Any app, one at a time

Pick a source from the menu bar and it captures that app and every helper process it spawns, which is what makes it work for browsers and Electron apps, where audio never comes from the main process.

Music doesn't become lyrics

A voice detector runs ahead of the recogniser so backing tracks never reach it. Without it, music fills the model's context and the first words after it are lost.

A new box per speaker

Optionally start a fresh subtitle when someone else starts talking, the same way a pause does. Off by default: it runs a second model alongside the first.

Nine languages

The default model detects the language itself. English gets seven dedicated checkpoints on top, trading latency against accuracy from 160 ms upward.

The overlay stays out of the way

Something on top of every window only works if it never becomes the thing you are working around. It takes no clicks, it dissolves where you point, and it gives you back the line you looked away from.

A hole where you point

Move the pointer near the box and it fades away underneath it, so the sentence you are reading never covers the sentence you are writing. How much of it goes and how wide the hole reaches are both yours to set. Hold to keep it solid.

Hold ⌥ for what you missed

The box pages like broadcast subtitles: it fills, clears and starts again, so a line you glanced away from is gone. Hold and the last finished boxes stack back up above the live one, up to thirty of them, scrollable for the older ones. Let go and they are gone again. Nothing is written anywhere.

The overlay is the preview

, from the menu opens settings: how many lines a box fills before it clears, how solid it is, how far the pointer reveal reaches, how far back goes. Every slider applies to the overlay as you drag it, so you set these by watching them rather than by picking a number.

How it works

A realtime audio thread that only ever copies, a portable core that never transcribes, and a model running where it belongs.

  1. 1

    Core Audio process tap

    48 kHz stereo, a callback every 10.7 ms. The realtime thread copies into a lock-free ring buffer and does nothing else.

  2. 2

    Resample and gate

    Down to 16 kHz mono on a worker thread, silence skipped, with about a second replayed ahead of speech so no word starts cold.

  3. 3

    Parakeet on the Neural Engine

    A streaming model, not a 30-second-window one: the difference between captions that track the audio and captions that arrive seconds late.

  4. 4

    Overlay

    Three-line pages that clear and restart the way broadcast subtitles do, fading four seconds after the last new text rather than after the audio stops.

Everything from the ring buffer to the model boundary is portable Rust that deliberately doesn't transcribe: it hands out frames. The tap and the overlay are the only Mac-specific parts.

14-day refund, no questions asked.

Nothing to review, nothing to opt out of

The reason you can point this at a work call is that it is not a service. There is no server, no account and no transcript, so there is nothing to send and nobody else in the loop. The source is published, so none of it has to be taken on trust.

  • No bot joins the call. It captures the audio your Mac is already playing, so nothing appears in the participant list and nobody is told anything is running. Most of this category sends a visible participant instead, which plenty of companies disallow outright.
  • Nothing is recorded, and nothing is written to disk. Audio goes from the tap into the recogniser and is discarded on the spot. Captions are on screen and then they are gone; the boxes brings back are held in memory until you quit, and there is no file to find afterwards, on your Mac or anywhere else.
  • The microphone is never opened. It only ever hears what your Mac plays. That is a real limit, and it is also why nothing you say can go anywhere.
  • No account, no telemetry, no network. Nothing to sign into and no usage reported anywhere. The model downloads once, about 633 MB, and after that there is no network call left to make: pull the Wi-Fi and it keeps captioning.
  • There is nothing to train on. No transcript exists to be sent, so there is no training setting to hunt for and no default to check, and no processor to name in a data agreement. Whether that clears your own policy is your call, but there is no third party in it to review.
  • The one exception is buying it. Gumroad takes the payment and sees your email, as any shop does, and emails you when the app is updated. The app itself never asks you for either.

Pick a language, not a model

Language is the first thing that rules a model in or out, so it's the top level of the menu. Switching within a pack is instant; crossing between packs fetches the other one and keeps whatever you already have.

Change your mind mid-download and it cancels and starts the new one straight away. Switch back later and it resumes instead of starting over.

It lives in the menu bar

No Dock icon, no window to manage. The icon tells you what it's doing: indigo while listening, blue while a model downloads, yellow if the pipeline starts falling behind, and never red, because red means recording, and nothing is ever written anywhere. The switches live in the menu, and , there opens a settings window for the dials behind them.

S
Pause and resume
Hold
Make the overlay draggable; it's click-through otherwise
Hold
Stack the last few boxes back up above the live one; scroll for older
,
Settings, from the open menu: lines per box, opacity, the pointer reveal, how far goes
Menu bar
Model, source, text size, overlay position, permission state

Why not Apple's Live Captions?

macOS has captions built in, free, on every Apple silicon Mac, under System Settings, Accessibility, Live Captions. If that covers what you need, use it. These are the places it stopped covering mine, and there is a row-by-row comparison if you want the long version.

  • Nine languages, detected for you. Apple's is not available in every language, country or region. The default model here works out the language itself, and the menu bar switches between them.
  • You pick the model. Seven English checkpoints trading latency against accuracy from 160 ms upward, plus the multilingual one. Apple gives you captions, not a dial.
  • The overlay is click-through. Apple's is a window you move and resize. This one takes no clicks at all, so you work straight through it. Hold when you do want to move it.
  • It gets out of the way where you point. The box fades under the pointer so you can read what is beneath it, by as much and as wide as you set. Apple's is an opaque window you move somewhere else instead.
  • One app, or all of them. Point it at the tab playing the call and the rest of the machine stays quiet. Apple's transcribes audio from all apps by default.
  • Music doesn't become lyrics. A voice detector runs ahead of the recogniser, so a backing track never reaches it.
  • A new box per speaker. Optional, off by default, and without an equivalent in the built-in one.

Worth knowing before you download

  • First launch takes minutes. The model is about 633 MB and fetches itself on first run. The menu bar shows the progress.
  • macOS will ask to record system audio. Skip that prompt and every sample arrives as digital silence with no error anywhere, so the app keeps a permission check in the menu rather than pretending to know. The download is signed and notarised, so the answer you give it survives every update.
  • Singing counts as speech. The voice detector can't tell the difference, so vocal music comes through as lyrics.
  • Speaker breaks are retrospective. Diarization reports on a cadence, so a word or two of the new speaker can land on the outgoing box before it clears.
  • One display. The overlay uses the main screen.
  • Models stay on disk once you try them. Switching between the eight of them is how you find the one you want, and each one you try is kept. Settings has a button that removes the ones nothing is using, and never the one in use.

Questions people ask first

Does it work with Zoom, Teams and Google Meet?
Yes. It taps the audio an app plays rather than integrating with any one service, so a Zoom window, a Slack huddle and a call in a browser tab all caption the same way. Browsers and Electron apps included: it captures the helper processes those spawn, which is where their audio actually comes from.
Doesn't an overlay get in the way?
It takes no clicks at all, so you work straight through it, and it fades away under the pointer so you can read what is beneath it. How much it fades, how far that reaches, how solid the box is and how many lines it holds are all settings. Hold to keep it solid and drag it somewhere else; where you put it is remembered.
Does it caption my own voice?
No. It only ever hears what your Mac plays, never the microphone. On a call that means you read the other people, not yourself.
Does it need an internet connection?
Once, to fetch the model on first run, about 633 MB. After that it runs entirely offline and makes no network calls at all.
Can I save or export a transcript?
No, and that is deliberate. Nothing is written to disk: captions exist on screen and then they are gone. Holding brings the last few boxes back while the app is running, which is for catching the line you looked away from, not for keeping a record. If you need a record of a conversation, this is the wrong tool.
Does IT have to approve it?
There is no vendor here to approve: no account, no server, no transcript leaving the Mac, and nothing joining the call as a participant, so nobody in the meeting is being recorded by anything. It is one signed, notarised app on one machine, and after the model downloads once it makes no network calls at all. Whether that clears your own policy is your call, but there is no third party in it to review.
Does it work with headphones or AirPods?
Yes. It captures the audio an app produces, not the sound coming out of a speaker, so what you listen on makes no difference.
Will it slow my Mac down?
Transcription runs on the Neural Engine rather than the CPU, at roughly a 0.15 real-time factor, or six seconds of speech per second of compute. The same model on the CPU measured about 100× too slow to keep up at all.
Which Macs does it run on?
Apple Silicon, macOS 14.2 or later. The version floor is Core Audio process taps, which is the API the whole thing is built on.
Is it a subscription?
No. $9 once, every future update included, no account to create and no minutes to buy. If it is not for you, there is a 14-day refund.
Can I see the source?
Yes. It is published under FSL-1.1-ALv2, which becomes Apache 2.0 two years after each release. Read it, or build it yourself, at github.com/daformat/subtitles.

Captions for anything, without sending audio anywhere.

14-day refund, no questions asked

One-time $9, every future update included · macOS 14.2 or later · Apple Silicon
Unlimited live captions, for as long as you own the Mac. No minutes to buy, no account, no subscription.