Skip to main content

amagi-screen

Send Claude a video of your bug, not a paragraph describing it.

demo

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 named frame_<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.
  • --threshold needs tuning per app: dense, animated UIs need a higher threshold than static dashboards, or you'll get too many near-duplicate frames.

If amagi-screen saves you a round trip explaining a bug, a star helps other people find it.

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)

Source distribution for amagi-screen 0.1.0
File Size Uploaded Provenance
amagi_screen-0.1.0.tar.gz 9.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for amagi-screen 0.1.0
File Interpreter ABI Platform
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page