Caption Scribe captures live captions from meetings and conversations using on-screen OCR and stitches them into a running, timestamped transcript. Everything runs locally on your PC — no cloud services, no meeting bot, no accounts.
It was built primarily for Microsoft Teams live captions, but it works with any application whose captions render on screen.
- Live caption capture — point it at a screen region and it OCRs the captions on an interval, de-duplicating and stitching the scrolling text into one continuous transcript.
- Timestamps — optional, either per line or only at the start of each speaker's turn.
- Autosave — periodically appends finalized lines to a rolling file, so a crash loses very little. The startup cache prompt shows combined transcript and audio size and appears above the configured file count or 1 GiB.
- Save & clean up — export to
.txt/.md, with an optional cleanup pass that fixes common OCR mistakes (e.g.f→tmisreads) and collapses repeated speaker names. - Region tools — drag-select a capture region on any monitor, highlight it, and re-select quickly.
- System tray — runs minimized to the tray; Play, Pause, Stop, and New Scribe from the right-click menu, or the same controls in the main window.
- Run on startup — optional; launches in the tray when you sign in to Windows. A later double-click reuses the running instance.
- Participants image (experimental) — optionally builds a PNG of meeting participants (avatar + name) from the captured region. Off by default; enable it under Settings.
- Meeting audio (experimental) — optionally records meeting playback (Teams process loopback when the Teams window is found, otherwise the default playback device) into a crash-safe WAV in the autosave folder. Optional microphone recording is a separate stream (Windows may prompt for permission); denial does not stop captions or loopback. Off by default. Status and a small meter show when audio is actually recording. Stop/Save mixes to one MP3 (or M4A/WAV) next to the transcript and can group files in a meeting folder.
- No cloud dependencies — capture, OCR, and storage all happen on this PC.
- Windows 10, build 19041 (2004) or later, Windows 11
- [.NET 8 SDK]
- Install via winget (quiet, command-line):
winget install --id Microsoft.DotNet.SDK.8 -eOr download and run installer from: https://dotnet.microsoft.com/download/dotnet/8.0
- Install via winget (quiet, command-line):
- A Windows OCR language pack (Settings ▸ Time & language ▸ Language & region). Most English installs already include one.
# from the repository root
dotnet build
dotnet run --project CaptionScribe.csprojOr open CaptionScribe.sln in Visual Studio 2022 and press F5.
- In your meeting app (e.g. Teams), turn on live captions.
- In Caption Scribe, pick a capture region — the Select toolbar button, Settings ▸ Select Capture Region, or click the region readout at the top — then drag a box over the caption area (any monitor).
- Start capturing: the Play button, Space, the centre prompt, File ▸ Active, or tray Play. The transcript fills in live. Pause stops capture without saving; Stop saves and clears.
- Use Save (or Stop) to write a file; you'll be offered a cleanup pass and asked for a meeting title.
Tips for accuracy: increase the caption font size in the source app, draw the region snugly around just the caption lines, and raise the Upscale factor (Settings) if lines are being missed. Very large regions are scaled down before OCR. If capture pauses after repeated errors, check the region and press Play.
While capturing, the window shows the last 200 lines. Show All Output (when idle or paused) shows up to 10,000 lines; the full transcript is always saved.
Defaults live in appsettings.json; your changes are saved per-user under
%APPDATA%\CaptionScribe\settings.json. Notable settings include run on startup (tray at Windows sign-in),
the capture interval, upscale factor, OCR enhancement, timestamps, autosave interval/folder, default save
folder, the experimental participants capture, and experimental meeting-audio capture (off by default).
dotnet testThe suite has unit tests covering transcript aggregation/formatting/cleanup, settings, view-models, OCR pixel conversion, frame-buffer pooling, startup registration, and participant collection.
Core/— cross-cutting infrastructure:Mvvm,Logging,Interop(Win32),Shell(tray).Models/— settings and transcript data types.Services/— capture, OCR, transcript aggregation/cleanup, autosave, and participants.ViewModels/— MVVM view-models.Views/— WPF windows and WinForms overlays.CaptionScribe.Tests/— xUnit tests.
Caption Scribe reads pixels from a screen region you choose and runs OCR locally (Windows OCR). Transcripts are written only to folders you pick (or the per-user autosave folder). Nothing is sent off the machine. The app has no third-party runtime packages.
MIT © 2026 Musters Consulting