Turn screen recordings into actionable engineering reports.
Record yourself walking through your app, talk through the bugs and changes you see, and screenscribe transcribes the narration, matches it to what is on screen, and produces a structured report you — or your AI agent — can act on.
How it works
From “watch this” to “fix this”
A single narrated screencast in, a structured report out. Three stages, no manual scrubbing.
Record
Capture your screen and narrate the bugs and changes in plain language. Any format FFmpeg decodes works.
Pipeline
screenscribe runs an STT → LLM → VLM pipeline: transcribe the narration, find the actionable moments, then confirm each against captured frames.
Report
Get findings with timestamps, screenshots, and an executive summary — as JSON, Markdown, and an interactive HTML report.
Features
Built for a clean handoff
Everything the report needs travels with it, so a finding is ready to act on the moment it lands.
Self-contained HTML reports
One interactive file with a synchronized player, subtitle sync, and screenshot annotations — no server, no external requests.
Two analysis modes
review runs the automatic pipeline end to end;
analyze is a human-first dashboard where you drive.
Moment marking & voice notes
Scrub the video, mark the frames that matter, and add voice or text notes to trigger analysis only where it counts.
Hallucination-filtered transcripts
A transcript-first lane produces stable TXT, segments JSON, and WebVTT artifacts — clean enough to hand straight to an agent.
Any OpenAI-compatible backend
Bring a key from OpenAI or any other OpenAI-compatible provider and point screenscribe at that endpoint. Vetcoders ships LibraxisAI as the first-party default.
Install
Get started
Clone the repo, sync dependencies with uv, and initialize
your config. Bring your own OpenAI-compatible key to run a review.
$ git clone https://github.com/vetcoders/screenscribe.git
$ cd screenscribe
$ uv sync
# initialize config, then bring your own OpenAI-compatible key
$ uv run screenscribe config --init