{
  "markdown": "<div align=\"center\">\n\n<br>\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/Claude_Code_Plugin-8B5CF6?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBvbHlnb24gcG9pbnRzPSIyMyA3IDEyIDIgMSA3IDEgMTcgMTIgMjIgMjMgMTciLz48cG9seWxpbmUgcG9pbnRzPSIxIDcgMTIgMTIgMjMgNyIvPjxsaW5lIHgxPSIxMiIgeTE9IjIyIiB4Mj0iMTIiIHkyPSIxMiIvPjwvc3ZnPg==\">\n  <img alt=\"Claude Code Plugin\" src=\"https://img.shields.io/badge/Claude_Code_Plugin-8B5CF6?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBvbHlnb24gcG9pbnRzPSIyMyA3IDEyIDIgMSA3IDEgMTcgMTIgMjIgMjMgMTciLz48cG9seWxpbmUgcG9pbnRzPSIxIDcgMTIgMTIgMjMgNyIvPjxsaW5lIHgxPSIxMiIgeTE9IjIyIiB4Mj0iMTIiIHkyPSIxMiIvPjwvc3ZnPg==\">\n</picture>\n\n# letmewatch\n\n### Give Claude eyes for video.\n\n[![Sponsor](https://readme.cash/i/4y5sxs7pbj.svg)](https://readme.cash/c/4y5sxs7pbj)\n\nExtract key frames with scene detection.<br>\nClaude sees every meaningful moment — and skips the rest.\n\n<br>\n\n<table>\n<tr>\n<td align=\"center\"><strong>1</strong><br><sub>Skill</sub></td>\n<td align=\"center\"><strong>3</strong><br><sub>Commands</sub></td>\n<td align=\"center\"><strong>Scene<br>Detection</strong><br><sub>via ffmpeg</sub></td>\n<td align=\"center\"><strong>Audio</strong><br><sub>via whisper</sub></td>\n</tr>\n</table>\n\n<br>\n\n```\n/plugin marketplace add BinyaminEden/letmewatch\n```\n\n<br>\n\n[View on GitHub](https://github.com/BinyaminEden/letmewatch) · [Report Issue](https://github.com/BinyaminEden/letmewatch/issues)\n\n</div>\n\n---\n\n## What it does\n\nYou send Claude a video. Claude **watches** it.\n\n```\nYou: /letmewatch:video ~/Desktop/bug-recording.mov\n\nClaude: Extracting frames... 15 scene changes detected.\n\n        At 00m00s: The app loads with the dashboard view.\n        At 00m12s: User clicks \"Submit\".\n        At 00m13s: Loading spinner appears.\n        At 00m18s: Error toast — \"Failed to save\" (500).\n        At 00m23s: Form resets, user input is lost.\n\n        The bug: API returns 500 on submit, and the form\n        clears input instead of preserving it.\n```\n\nInstead of processing video natively, letmewatch uses **ffmpeg scene detection** — it only captures frames where the visuals actually change. No idle screens, no wasted frames.\n\n- A 2-minute screen recording → ~15-20 frames\n- Static moments → skipped entirely\n- Every frame → timestamped (`frame_01m23s.jpg`)\n- Audio → transcribed if whisper is installed\n\n## Install\n\n### 1. Install ffmpeg (required)\n\n```bash\n# macOS\nbrew install ffmpeg\n\n# Ubuntu/Debian\nsudo apt install ffmpeg\n\n# Windows\nwinget install ffmpeg\n# or: choco install ffmpeg\n```\n\n### 2. Install the plugin\n\n**Via marketplace** (recommended):\n```\n/plugin marketplace add BinyaminEden/letmewatch\n/plugin install letmewatch@letmewatch\n```\n\n**Via local clone:**\n```bash\ngit clone https://github.com/BinyaminEden/letmewatch.git ~/letmewatch\n# Then in Claude Code:\n/plugin install --path ~/letmewatch\n```\n\n### 3. Optional: Audio transcription\n\n```bash\n# Standard\npip install openai-whisper\n\n# Apple Silicon (faster)\npip install mlx-whisper\n```\n\n## Commands\n\n| Command | What it does |\n|---|---|\n| `/letmewatch:video <path>` | Analyze a specific video file |\n| `/letmewatch:video-last` | Analyze the most recent video in your configured folder |\n| `/letmewatch:video-dir <path>` | Set/change where `video-last` looks for videos |\n\n## How it works\n\n### Scene detection\n\nThe plugin uses ffmpeg's scene detection filter to find frames where visuals change:\n\n```\nffmpeg -vf \"select='gt(scene,0.1)'\" ...\n```\n\nThis captures page navigations, modal dialogs, form submissions, error states, tab switches — any meaningful UI change. Static moments produce zero frames.\n\n### Smart fallbacks\n\nIf scene detection finds fewer than 3 changes (e.g., a very static video or gradual scrolling), it automatically falls back to extracting frames at regular intervals:\n\n| Video length | Interval |\n|---|---|\n| < 30 seconds | Every 2s |\n| 30s – 3 min | Every 5s |\n| > 3 min | Every 10s |\n\n### Frame processing\n\n- Resized to **720p JPEG** (~50-80KB each)\n- Capped at **40 frames** per video\n- Viewed in **batches of 8** to stay within context limits\n- **Timestamped** in filenames for easy reference\n\n### Audio transcription\n\nIf [whisper](https://github.com/openai/whisper) or [mlx-whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper) is installed, the plugin extracts and transcribes audio automatically. Claude sees both the visual frames and the spoken content.\n\n## Configuration\n\n**Video directory:** The first time you run `video-last`, it asks where your videos live and saves it to `~/.claude/video.conf`. Change it anytime with `video-dir`.\n\n**Scene threshold:** Default is `0.1` (10% pixel change). Lower = more sensitive, higher = fewer frames.\n\n## Use cases\n\n- **Bug reports** — Record the bug, share the video, get a diagnosis with timestamps\n- **UI review** — Show Claude your app flow, get design feedback\n- **Code walkthroughs** — Record a tutorial, get a written summary\n- **Screen recordings** — Anything you'd screenshot, but as a video\n\n## License\n\nMIT — [Binyamin Eden](https://github.com/BinyaminEden)\n",
  "bytes": 5564,
  "sha": "6bcbd2f1126ed12353c26d98f1ee22c60ae29a68dcfdf58829f8d79f3dc42441",
  "repo_slug": "binyamineden/letmewatch",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_binyamineden_letmewatch_letmewatch_b2082d21/readme"
}