An agent skill · MIT · free and local

Every pull request,
a short film

shipreel turns a pull request into a narrated walkthrough video: diagrams, the code that matters, and the real app in action, in about two and a half minutes. Reviewers watch the change instead of reverse-engineering the diff.

npx skills add theBstar/shipreel
Claude CodeCodexCursorany skills agent
What you get

The change, explained

Each video says what changed and why, in an order that builds understanding, and ends with where a reviewer should look.

Diagrams

Boxes, arrows and moving packets for how the pieces connect.

The code

The lines that matter, as a diff, never the whole file.

Real footage

For UI changes it signs in to your app and records the actual flow.

Finish

Captions, crossfade cuts and a soft music bed, ducked under the voice.

How it works

From diff to MP4

Ask your agent to "make a shipreel for PR 123". It follows the skill step by step, and shows you still frames before it renders.

Checkvoice, browser, ffmpeg
Readthe PR and its diff
Plana few scenes, one idea each
Writescenes and narration
Checkstill frames for layout
Renderan MP4 under 10 MB

Scenes are HTML

Plain HTML on a 1920×1080 stage, with one narration line per beat. Helpers draw boxes, arrows, cards, code and screen recordings.

Every frame, in step

A voice adapter speaks each line; headless Chrome renders every frame to match it, deterministically.

Finished by ffmpeg

Crossfades between scenes, an ambient pad ducked under the voice, loudness normalised, under GitHub's 10 MB limit.

Install

One line

Needs Node 18+, ffmpeg and Chrome (or Chromium, Edge, Brave). On a Mac with those, there is nothing else to set up.

# Claude Code, Codex, Cursor and any agent that reads SKILL.md skills
npx skills add theBstar/shipreel
# inside Claude Code
/plugin marketplace add theBstar/shipreel
/plugin install shipreel@shipreel
# copy the skill into your agent's skills directory
git clone https://github.com/theBstar/shipreel
cp -r shipreel/plugins/shipreel/skills/shipreel ~/.claude/skills/

Then ask your agent: "make a shipreel for PR 123". The video lands in .shipreel/, never in your repository's history; you drop it into the PR.

Customise

One optional file

Put shipreel.yml at your repository root. Every key is optional; the defaults need nothing on a Mac.

instructions: |
  Audience: reviewers. Lead with the user-facing change.
video:
  optimal_seconds: 150   # a guideline, not a wall
voice:
  engine: piper          # say · piper · command
app:
  url: http://localhost:3000
  credentials:
    password: { env: DEMO_PASSWORD }
pronounce:
  kubectl: cube control

A brief and a length

Tell every video who it's for. Aim for 150 seconds by default: shorter for small changes, longer only when needed.

Adapters

Voice (macOS say, Piper, or any command), browser and fonts are all swappable. Found automatically on a Mac.

Your app, safely

Sign-in steps and credentials from the environment or a git-ignored file. A password in the config is refused.

Every key is documented in references/config.md.

By design

Honest, cheap, clean

Facts from the code

Narration describes the current behaviour, never the branch's history, and ends with what a reviewer should check.

Asks before it spends

Local and free by default. Any paid step, like a cloud voice, is estimated and asked about first.

Your repo stays clean

No committed videos, no media branches, no uploads. Credentials are never printed.