Skip to content

v1.1.0 — Screen capture and verifiable notes

Choose a tag to compare

@jej2k5 jej2k5 released this 01 Aug 19:00
· 50 commits to main since this release

Meetey now captures what was on screen, and its notes tell you where every claim came from.

Upgrade

npx jej2k5/meetey update

Then 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 Friday

The 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.en and 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.