v1.1.0 — Screen capture and verifiable notes
Meetey now captures what was on screen, and its notes tell you where every claim came from.
Upgrade
npx jej2k5/meetey updateThen restart Claude Code so the MCP server reconnects. New installs: npx jej2k5/meetey install.
No new permissions. Screen capture uses the Screen Recording access you already granted for audio.
Screen capture — opt-in, per meeting
Meetey can capture slides, screen shares, code, and diagrams alongside the audio, and fold them into the notes.
/meetey start --video Audio + screen keyframes
/meetey start --audio-only Audio only
It is off by default and asked for every time. There is no setting that turns it on permanently — that's deliberate, because screen capture records everything the target app displays, including other tabs, other windows, and notification banners.
It doesn't record video. It samples once a second and keeps a frame only when the picture materially changes, so an hour-long meeting produces a few dozen keyframes rather than 3,600:
| Storage/hr | Sent to Claude | |
|---|---|---|
| Audio | ~115 MB | ~12K tokens (transcript) |
| Screen keyframes | ~10 MB | ~5K tokens (recognized text) |
Text is recognized on-device with the macOS Vision framework, so the default path sends only text. Claude opens an actual keyframe image only when the text isn't enough — a diagram, a chart, a UI screenshot.
Tuning: --fps, --scene-threshold, --max-frames, --no-ocr. See the README.
Notes you can actually check
The output format was rebuilt around one question: if you doubt a line, how fast can you confirm it?
Every claim carries its timestamp.
### Key Decisions
- **[12:04]** Ship v1.1 without the motion heuristic; revisit next cycle
### Action Items
- [ ] **[31:17]** Draft the migration doc — Priya · due FridayThe transcript moved out of the way. It lives in a sibling -transcript.md as timestamped lines, instead of nine thousand unattributed words buried under your action items. It's no longer printed into chat either.
Bad audio announces itself. Transcript quality is now measured — fragment rate, whisper looping, speech pace against spoken time — and a poor transcript says so instead of being summarized in the same confident voice as a clean one:
> ⚠️ Transcription quality: poor — 80% of segments were silence markers,
> fragments, or repeats. Summary may be incomplete; ggml-base.en.bin was used.
Empty states diagnose. "No decisions recorded" means something different when the transcript was too poor to find any — and only that case is fixable, so the notes tell you how.
Filenames are browsable. 2026-08-01-1402-q3-roadmap.md instead of meetey-1754049600.md. ls is now a meeting history.
Everything else
| v1.0.0 | v1.1.0 | |
|---|---|---|
| Decisions | - [decision] |
- **[12:04]** [decision] |
| Transcript | inline, also printed to chat | sibling file, path only in chat |
| Header | 2026-08-01T14:02:11.123Z → … |
Fri 1 Aug 2026, 2:02–2:47 PM · 45 min |
| Bad audio | silently summarized | quality callout + how to fix |
| Filename | epoch integer | date + slug |
| Screen content | — | opt-in keyframes with on-device OCR |
New MCP tool get_keyframes. transcribe now returns timestamped segments, exact duration read from the WAV header, the model used, and a quality assessment.
What stays local
Recording, transcription, and OCR all run on your machine. The summary is written by Claude, so transcript and OCR text goes to the API — keyframe images only when the text isn't enough to read a diagram. Audio never leaves. No meeting bot joins your call. Full breakdown in the README.
Known limitations
- Camera-heavy calls are a poor fit for screen capture. A moving video tile changes the picture constantly and burns through the frame budget. Use it for slides and screen shares; stay on audio for faces-only discussions.
- Capture is process-level, not tab-level. Targeting Chrome captures all Chrome audio, and with
--video, everything Chrome displays. - English-only by default. The bundled model is
base.enand transcription runs with-l en. - No speaker diarization. The transcript is a single stream with no per-speaker attribution.
Requirements
macOS 13+, Node.js 18+, Xcode Command Line Tools, Claude Code, Homebrew.
Source-only release, as with v1.0.0. The Swift capture binary is compiled and ad-hoc signed on your machine at install time, which is what lets it hold the ScreenCaptureKit entitlement without notarization.
Licensed under the Apache License 2.0.