amagi-screen
Send Claude a video of your bug, not a paragraph describing it.
amagi-screen turns a screen recording into something Claude can actually
read: it detects every moment the screen changes, saves a frame for each
one, reads any on-screen text with OCR, and flags frames that look like an
error or exception. Everything lands in one index.md in timestamp order.
Everything runs locally. There are no API keys and nothing leaves your machine.
Install
pipx install amagi-screen
You also need ffmpeg on your PATH. OCR is optional and needs the tesseract binary — without it, amagi-screen still extracts the frame timeline, just without on-screen text or error flags.
Usage
amagi-screen <recording> [-o OUTDIR] [--threshold 0.12] [--max-frames 60] [--no-ocr]
| Option | What it does |
|---|---|
-o, --outdir |
Where run folders go (default amagi_screen_out) |
--threshold |
Scene-change sensitivity, 0–1 (default 0.12; lower catches subtler UI changes) |
--max-frames |
Most key frames to keep (default 60) |
--no-ocr |
Skip OCR even if tesseract is installed |
Example:
amagi-screen ./bug_repro.mp4 -o runs
The last line of stdout is the path to the run folder, so scripts and agents can pick it up.
Output
Each run writes <outdir>/<recording_name>/:
index.md: the file to read. Each detected frame, in time order, with its OCR'd text and a⚠ possible <word>flag when the text looks like an error, exception, or failure.events.md: just the flagged frames — usually the fastest way to find the moment something broke.frames/: JPEG frames namedframe_<seconds>s.jpg, 1280 px wide.metadata.json: title, source path, duration, frame count, and whether OCR ran.
Real output from a 6-second test clip with two scene changes (no tesseract installed in this run, so no on-screen text — see Limitations):
# demo_recording
- Source recording: demo_recording.mp4
- Duration: 00:06
- OCR: unavailable (install tesseract for on-screen text)
## Timeline
**[00:02]** see frame: frames/frame_00002s.jpg
**[00:04]** see frame: frames/frame_00004s.jpg
Use it as a Claude Code skill
The repo includes a SKILL.md. Copy it into your skills folder:
mkdir -p ~/.claude/skills/amagi-screen
cp SKILL.md ~/.claude/skills/amagi-screen/SKILL.md
When you paste a screen recording and ask what went wrong, Claude runs
amagi-screen, reads index.md and events.md, and opens the frames it
needs.
Limitations
- OCR needs tesseract on PATH. Without it, frames still get extracted, but there's no on-screen text and no error flagging.
- Scene detection finds a different number of frames depending on how much the UI actually changes. A very static recording (one screen, no clicks) falls back to a fixed interval sample instead.
- Frames are stills. Fast cursor movement, animation, and quick modal flashes between two detected frames are lost.
--thresholdneeds tuning per app: dense, animated UIs need a higher threshold than static dashboards, or you'll get too many near-duplicate frames.
Related AmagiLabs projects
- amagi-watch — give Claude a video URL and get back a transcript + key frames.
- amagi-listen — give Claude a podcast or meeting recording and get back a chaptered transcript.
- legal-review-skills
- More tools at github.com/amagilabs.
If amagi-screen saves you a round trip explaining a bug, a star helps other people find it.
Legal
amagi-screen only reads files you point it at. It doesn't upload, store, or transmit recordings anywhere.
License
MIT. Copyright (c) 2026 AmagiLabs (Amagisolutionsgroup, Inc.). See LICENSE.
Built by AmagiLabs.
Metadata
Release files for amagi-screen 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| amagi_screen-0.1.0.tar.gz | 9.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| amagi_screen-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / amagi_screen-0.1.0.tar.gz
| Download URL | amagi_screen-0.1.0.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f5e20b664624161851ca7a9f2177a533eeaf717855ad28946bb1a2e749d5587
|
|
BLAKE2b-256 checksum How to use checksums |
e83c9dfa52117a43320edec8897abfdce9cc0f26ae921239ca28790da8dc52c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / amagi_screen-0.1.0-py3-none-any.whl
| Download URL | amagi_screen-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f99592b52eca31cabf52052bded7b202ed6016efe4a5732bdc8e04956a46a494
|
|
BLAKE2b-256 checksum How to use checksums |
d8942f02276e5b3672ec4a8f3a2a9683903e74e884492c7165873349609a6986
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for amagi-screen 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for amagi_screen-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.