I'm the developer, so treat this as an announcement rather than a recommendation.
Subtitles captions whatever your Mac is playing, and since last version, it can translate it too. Both happen on the machine. It is a menu bar app, $9 once, and it is the thing I built because I kept losing the thread when I switched away from a call to the document being discussed.
Why I built this
Granola live transcript requires you to keep hovering a tiny button to get it; not viable for multitasking. A notch-attached UI is not legible enough for me and takes too much of the screen estate when multitasking and is not click through. This is a real caption experience with the overlay being a big bold text, always easy to read, and taking no click, the overlay dissolves under your pointer to let you see what's behind, so it's never blocking anything.
How it gets the audio
Core Audio process taps, the API that arrived in macOS 14.2. It reads what an app is playing rather than integrating with any service, so a Zoom call, a Slack huddle, a browser tab, a podcast and a video with no subtitle track are all the same thing to it. It captures the helper processes an app spawns as well, which is the part that makes browsers and Electron apps work, since that is where their audio actually comes from.
Transcription is Parakeet on the Neural Engine via FluidAudio, at about a 0.15 real-time factor. The same model on the CPU measured roughly 100x too slow to keep up with live audio, which is why the Neural Engine is not a nice-to-have here.
The overlay
It sits above every window and the app switcher, and it takes no clicks at all, so you work straight through it rather than around it. It fades away under the pointer so it never hides what is beneath. Hold Shift and drag to move it, and it remembers where you put it. Hold Option to bring the last few captions back and scroll through them. Option Command S pauses.
What is new since launch
Version 1.2 took it from eight languages to sixteen: English, Spanish, French, Italian, Portuguese, German, Dutch, Turkish, Russian, Arabic, Hindi, Japanese, Korean, Vietnamese, Ukrainian and Mandarin. The model could always hear them, the menu was what stopped at eight, so it was not a new download for anyone.
Version 1.3 added live translation. Pick a target in Translate To and captions arrive in that language as they are spoken, through Apple's Translation framework, on the machine. It does every ordered pair of the sixteen, which is 240 of them, and none of them route through English. Speech models that translate while they transcribe go to or from English only, which would have left most of those pairs unreachable, so this is a second step rather than a setting on the first.
Two timings, because the real question is what to show mid-sentence. Live, Then Settle dims text that may still change and leaves it alone once it has stopped. Always Live retranslates on every update: no lag, and nothing on screen is final until the speaker stops. Hold Control at any point to see the original underneath.
1.3 also added a ghost mode. Show Overlay In Screen Share / Capture is on by default; uncheck it and the overlay disappears from anything capturing through macOS, so calls, recordings and screenshots do not carry your captions.
What it does not do
Privacy
No account, no telemetry, and no network calls at all after the one-time model download, which is about 600 MB. Translation runs through Apple's on-device framework, so turning it on does not change that. Pull the Wi-Fi and it keeps captioning and keeps translating.
Requirements and price
Apple silicon, macOS 14.2 or later. Live translation is the one feature that needs macOS 15, because Apple's translator arrives there; on 14.2 those two menu rows are simply absent and everything else works.
$9 once, every future update included, no subscription and no account.
14-day refund. Source-available under FSL-1.1-ALv2, which becomes Apache 2.0 two years after each release.
subtitles-live.com
https://github.com/daformat/subtitles
Sold by CSS LABS, my one-person company. Happy to answer anything here.
Subtitles captions whatever your Mac is playing, and since last version, it can translate it too. Both happen on the machine. It is a menu bar app, $9 once, and it is the thing I built because I kept losing the thread when I switched away from a call to the document being discussed.
Why I built this
Granola live transcript requires you to keep hovering a tiny button to get it; not viable for multitasking. A notch-attached UI is not legible enough for me and takes too much of the screen estate when multitasking and is not click through. This is a real caption experience with the overlay being a big bold text, always easy to read, and taking no click, the overlay dissolves under your pointer to let you see what's behind, so it's never blocking anything.
How it gets the audio
Core Audio process taps, the API that arrived in macOS 14.2. It reads what an app is playing rather than integrating with any service, so a Zoom call, a Slack huddle, a browser tab, a podcast and a video with no subtitle track are all the same thing to it. It captures the helper processes an app spawns as well, which is the part that makes browsers and Electron apps work, since that is where their audio actually comes from.
Transcription is Parakeet on the Neural Engine via FluidAudio, at about a 0.15 real-time factor. The same model on the CPU measured roughly 100x too slow to keep up with live audio, which is why the Neural Engine is not a nice-to-have here.
The overlay
It sits above every window and the app switcher, and it takes no clicks at all, so you work straight through it rather than around it. It fades away under the pointer so it never hides what is beneath. Hold Shift and drag to move it, and it remembers where you put it. Hold Option to bring the last few captions back and scroll through them. Option Command S pauses.
What is new since launch
Version 1.2 took it from eight languages to sixteen: English, Spanish, French, Italian, Portuguese, German, Dutch, Turkish, Russian, Arabic, Hindi, Japanese, Korean, Vietnamese, Ukrainian and Mandarin. The model could always hear them, the menu was what stopped at eight, so it was not a new download for anyone.
Version 1.3 added live translation. Pick a target in Translate To and captions arrive in that language as they are spoken, through Apple's Translation framework, on the machine. It does every ordered pair of the sixteen, which is 240 of them, and none of them route through English. Speech models that translate while they transcribe go to or from English only, which would have left most of those pairs unreachable, so this is a second step rather than a setting on the first.
Two timings, because the real question is what to show mid-sentence. Live, Then Settle dims text that may still change and leaves it alone once it has stopped. Always Live retranslates on every update: no lag, and nothing on screen is final until the speaker stops. Hold Control at any point to see the original underneath.
1.3 also added a ghost mode. Show Overlay In Screen Share / Capture is on by default; uncheck it and the overlay disappears from anything capturing through macOS, so calls, recordings and screenshots do not carry your captions.
What it does not do
- It never opens the microphone. On a call you read the other people and never yourself, and a conversation happening in the room in front of you produces nothing at all. Apple's own Live Captions and Live Listen are the right tools for the room.
- No transcript. Nothing is written to disk, ever. Option holds the last few boxes in memory and they are gone when you quit. If you need a record of a conversation, this is the wrong app.
- It writes speech, not sound. No speaker names, no [door closes]. A voice detector runs ahead of the recogniser so music never becomes invented lyrics, and the price of that is you get the speech and nothing about what else was audible.
- It is speech recognition, so names, jargon and crosstalk are where it slips.
- One display, the main one.
Privacy
No account, no telemetry, and no network calls at all after the one-time model download, which is about 600 MB. Translation runs through Apple's on-device framework, so turning it on does not change that. Pull the Wi-Fi and it keeps captioning and keeps translating.
Requirements and price
Apple silicon, macOS 14.2 or later. Live translation is the one feature that needs macOS 15, because Apple's translator arrives there; on 14.2 those two menu rows are simply absent and everything else works.
$9 once, every future update included, no subscription and no account.
14-day refund. Source-available under FSL-1.1-ALv2, which becomes Apache 2.0 two years after each release.
Subtitles · live captions for meetings, videos and podcasts on your Mac
Private, offline captions for any audio your Mac plays, as an always-on-top overlay that stays put while you switch apps. Runs locally on the Apple Neural Engine, so no audio leaves your machine.
Sold by CSS LABS, my one-person company. Happy to answer anything here.