There are three kinds of "live captions app" for the Mac, and most disappointment comes from buying the wrong one. If the captions are for you — following a meeting or a lecture — use Apple's built-in Live Captions or NotchLive, both free or near enough. If they're for your audience and you stream with OBS, install a free plugin: LocalVocal or CaptionFlow are genuinely good and cost nothing. If they're for your audience and you stream with anything other than OBS — Ecamm Live, Meld, Restream, Wirecast, Streamlabs — the free plugins can't help you, because every one of them is an OBS plugin. That last gap, plus telling speakers apart, is why I built my own.
The three categories (this is the bit everyone misses)
Captions for you sit on your own screen. They exist so the person at the Mac can read what's being said — accessibility, noisy rooms, following a fast talker, translating a foreign-language call. Nobody else ever sees them. Apple Live Captions, NotchLive and most "live captions Mac" search results are this.
Captions for your audience, inside OBS. A healthy set of free, open-source plugins render captions into your OBS scene. They're on-device, actively maintained, and for a solo streamer they are genuinely all you need. The catch is in the name: they are OBS plugins, and they only work in OBS.
Captions for your audience, anywhere. A transparent overlay served as a browser source, so it drops into whatever you actually stream with. This is the only route if you're an Ecamm, Meld, Restream or Wirecast user, and it's the only place you'll find live speaker identification.
Captions for you
Apple Live Captions (built into macOS) — free
Baked into macOS, free, on-device, one click in Control Centre. Captions any system audio into a plain floating window. If you're hard of hearing or just want to follow a call, start here — it costs nothing.
The limits: English-focused, one grey style, no speaker identification, and the caption window exists only on your screen — it can't appear on a stream (screen-sharing the caption window into a scene is technically possible and looks exactly like what it is).
NotchLive — meetings, translation and personal transcripts
A well-made indie app that shows on-device Whisper captions in (or below) your MacBook's notch. It captions any app's audio, translates in real time, and keeps a searchable, exportable transcript. Free for captions; a one-time payment adds translation and transcript export. If you want captions for yourself — following calls, translating a meeting, keeping private transcripts — it's a genuinely good choice and I'd happily point you at it.
The limits: same category boundary as Apple's. No overlay output, no broadcast styling, no telling speakers apart. It cannot put captions on your live show.
Captions for your audience — if you use OBS
If you stream with OBS, start here before you spend anything. These are real tools, actively developed, and free.
LocalVocal — free, open source, on-device
The one I'd try first. Runs Whisper locally inside OBS, transcribes in over 100 languages, translates in real time, and can write captions to a text source, an .srt file, or into the RTMP stream so a platform's own CC button works. Windows, Mac and Linux, needs OBS 30.2 or later. Setup is roughly five minutes once the model downloads.
The limits: model downloads are the common sticking point, documentation is thin, and styling is whatever OBS's text source gives you. It does not identify speakers — the developer has said diarization is a future addition, so if you see a claim that LocalVocal already tells speakers apart, it's wrong.
CaptionFlow — free, open source, on-device
A newer OBS plugin using sherpa-onnx for on-device recognition, with low-latency partial results while you're still speaking, one-click model downloads and an unusual sensitive-word muting feature with an adaptive beep. Windows 10/11 and macOS 11+, OBS 31 or later.
The limits: transcription only, no speaker identification, and captions land in an OBS text source so styling is basic. Packages are unsigned, so you're verifying them yourself.
CaptionsRush — free plugin, pay-per-minute cloud
The most polished captioner of the group: around 180ms perceived latency, a rolling buffer of one to six lines, and proper control over font, size, colour, outline and padding. It also does viewer-toggleable closed captions and translation across 60+ languages. The plugin is free; the cloud captioning is $0.02 a minute with 60 free minutes to start, and a separate desktop client runs fully on-device.
The limits: the OBS plugin is Windows only — there's no macOS build — and the cloud tier meters you by the minute. No speaker identification.
StreamTranslate — freemium, cloud
Browser-source captions with translation into 49 languages and sub-500ms recognition. Useful if translation is your main need and you're happy sending audio to a server.
The limits: cloud-based, so your audio leaves your machine and usage is metered above the free tier. No speaker identification.
Captions for your audience — if you use anything else
Live Show Captions — my app
My own, so judge accordingly. It exists because of two gaps in everything above.
The first is architectural: every free option on this page is an OBS plugin. If you stream with Ecamm Live, Meld Studio, Restream Studio, Wirecast, mimoLive or Streamlabs, none of them will install. Live Show Captions is a native Mac app that serves a transparent overlay URL, so it drops into anything that accepts a browser source.
The second is that nothing else here can tell who is speaking — not the free plugins, not the paid cloud services. Record a few seconds of each person's voice once, and after that every speaker gets their own colour, name and side of the screen, switching automatically as the conversation moves. In an interview or a panel, that's the difference between captions your audience can follow and a wall of grey text.
Everything runs on your Mac — no cloud, no account, no per-minute meter. Eight caption styles, trigger words that fire a graphic on screen, a Stream Deck plugin, and it captures remote guests straight out of Zoom, Ecamm or Chrome. $49 as a one-time purchase, no subscription, on two of your Macs. That's the founder price for the first 50 buyers; it goes to $69 after that.
The limits, plainly: it's Apple Silicon Mac only, while LocalVocal and CaptionFlow are cross-platform. It's the only paid option on this page. It doesn't translate yet, and several of the free tools do. And if you stream with OBS, don't need speaker colours and just want words on screen, LocalVocal is free and will do the job — use it.
MacWhisper — transcription after the fact
The Mac transcription workbench. Drop in a recording, get an excellent transcript. It's for producing text from media, not putting live text on media. Great for show notes on the replay, irrelevant during the broadcast.
So which do you need?
- Follow calls, lectures or videos yourself, free → Apple Live Captions.
- Personal captions with translation and saved transcripts → NotchLive.
- Captions on an OBS stream, free → LocalVocal, or CaptionFlow.
- Captions on an OBS stream with the best styling and translation → CaptionsRush (Windows).
- Transcribe recordings after the fact → MacWhisper.
- Captions in Ecamm, Meld, Restream or anything that isn't OBS → Live Show Captions.
- Captions that show who's speaking → Live Show Captions, which is currently the only one that does.
Frequently asked
What's the best free way to caption a live stream on a Mac?
If you stream with OBS, install LocalVocal. It's free, open source, runs on your own machine, handles over 100 languages and takes about five minutes to set up. CaptionFlow is a good second option. If you don't use OBS, there is no free plugin route, because every one of them is built for OBS specifically.
Can I use LocalVocal or CaptionFlow with Ecamm Live?
No. Both are OBS plugins and only load inside OBS. The same applies to CaptionsRush and most caption tools you'll find in streaming tutorials. For Ecamm, Meld, Restream, Wirecast or mimoLive you need an app that outputs a browser-source overlay, because that's the only thing those programs will accept.
Which option identifies who's speaking?
Only Live Show Captions, at the time of writing. LocalVocal's developer has said speaker diarization is planned but not yet built, and CaptionFlow, CaptionsRush and StreamTranslate are transcription only. If you need each speaker in their own colour on a live show, there isn't a free route to it today.
Can Apple Live Captions or NotchLive put captions on my live stream?
No. Both draw captions on your own screen for you to read — there's no overlay output for streaming software. The only ways to get their text onto a stream are screen-capture workarounds, which look rough and break easily.
Do any of these send my audio to the cloud?
Apple Live Captions, NotchLive, LocalVocal, CaptionFlow and Live Show Captions all transcribe on-device — nothing leaves your Mac. StreamTranslate and the CaptionsRush plugin are cloud-based, and dedicated captioning services charge by the minute, typically $0.25 to $2.50, which adds up quickly on a weekly show.
Is it worth paying when free plugins exist?
Only for two reasons. If you don't use OBS, the free plugins simply won't run and paying is the only route. And if you host interviews or panels, per-speaker colour is something no free tool offers at any price. If you're a solo streamer on OBS who just wants words on screen, the honest answer is no — use LocalVocal.
If you're on OBS and streaming solo, LocalVocal is free and genuinely good. Use it, and spend your money elsewhere.
If you stream with Ecamm, Meld or Restream, or you host guests and want your audience to know who's talking, that's the gap I built mine for. Native macOS, transparent overlay, a colour for every speaker, one payment:
Get Live Show Captions — $49 →