Status: pre-MVP, building in public. The design package and full product spec are in this repo (docs/PROPOSAL.md, design/); the roadmap lives in the MVP epic. Star the repo to follow along.
You're in a meeting, a webinar, or a call that isn't in your first language. LiveCap is a small pane of glass that floats beside it:
- It hears both sides — system audio (them) and your microphone (you) — and shows live captions in whatever language is being spoken, detected automatically.
- Under every sentence, it shows a translation into your language, half a beat later.
- A one-line live summary keeps you oriented; when the meeting ends, a clean Markdown transcript is already saved to a local folder.
- And when you need to speak up, reply suggestions and a quick-translate box give you the words.
Speech never leaves your machine: transcription is on-device Whisper. Translation runs on AI you already have — the Claude or Codex CLI installed on your Mac, or a bundled local model. No new subscription, no API key setup, no cloud account.
Every existing option makes you choose: cloud captioning services that stream your meetings to someone else's servers, OS captions locked to one platform and English, or meeting bots that visibly join your call as a participant. LiveCap is none of those — it's a private overlay only you can see (it's even excluded from screen sharing), it translates between real language pairs, and it works with any app that makes sound: Zoom, Meet, YouTube, a podcast, a person in the room.
┌─ system audio ─┐ ┌─ caption (instant)
│ ├─► VAD ─► Whisper (on-device) ──────┤
└─ microphone ───┘ │ └─ translation (~1s later)
│ finalized sentences
▼
Translation engine (yours — see below)
│
├─ live summary · meeting board · reply suggestions
└─ auto-saved Markdown transcript (~/Documents/LiveCap)
Captions stream in word-by-word as speech is recognized. When a sentence completes, it's handed to the translation engine with rolling context and a glossary, so names and terms stay consistent across the meeting. The window comes in three sizes — a one-line capsule, a TV-style subtitle strip, and the full panel — and snaps to your screen edges.
LiveCap doesn't ship a cloud backend. Translation, summaries, and suggestions run on one of three engines — your choice, switchable mid-meeting:
| Engine | Cost to you | How |
|---|---|---|
| Claude / Codex CLI (auto-detected) | Currently covered by your existing Claude/Codex subscription | LiveCap drives the CLI you've already signed into, the way open-design does for design tools |
| Local model (bundled download) | Free | llama.cpp + a small instruct model, fully offline |
| Your own API key (planned) | Pay-per-use | For heavy users |
CLI usage is covered by your subscription today. If Anthropic's policy changes so that programmatic use starts drawing on Agent SDK credits, LiveCap watches for it and auto-falls back to the free local model — captions never stop mid-meeting. An optional usage indicator in Settings shows where you'd stand if credits ever start to apply.
⏳ Not yet — the first runnable build lands with the MVP epic. When it does:
brew install --cask livecap # plannedOpen LiveCap → grant audio access → pick your language → it finds your Claude/Codex CLI (or offers the local model) → you're captioning. Three steps, under a minute.
This is the part we take personally:
- Audio never leaves your machine. STT is on-device Whisper (Metal-accelerated). There is no LiveCap server, no telemetry, no account.
- Invisible to your audience. The overlay is excluded from screen capture — when you share your screen, others don't see your captions.
- Your transcripts are plain local files in
~/Documents/LiveCap. Grep them, back them up, point Obsidian at them, or turn auto-save off. Optional retention auto-deletes old ones. - The only network traffic is the translation call to the engine you chose — and with the local model, there is none at all.
See the MVP epic for live progress. Headlines: macOS first (Apple Silicon), EN↔KO as the launch pair with auto-detection built in, Strip/Capsule/Panel modes, session archive, then Codex adapter, BYO key, and Windows.
Contributions are welcome once the MVP scaffold lands. The short version of CONTRIBUTING.md:
- Branches:
task/<issue-number>-<slug>, commits:[#<issue>] Short description - No mock/temp/stub code in merged PRs — every PR ships the production implementation of its scope (the epic spells this out)
- Never commit credentials, transcripts, or model weights —
.gitignoreis set up to fight you if you try
LiveCap stands on excellent open source:
- Meetily (MIT) — the audio-capture + live-STT architecture this project builds on
- whisper.cpp (MIT) — on-device speech recognition
- open-design (Apache-2.0) — the local-CLI integration pattern
- llama.cpp (MIT) — local model inference
- Tauri (MIT) — the app shell
MIT — do what you want, just keep the notice.

