Free & open source · CLI · GitHub Action

Every release deserves
an announcement video.

shipreel reads your GitHub release notes or CHANGELOG.md and renders a branded 15–30 second video, ready for X, LinkedIn, Instagram and YouTube Shorts. Set it up once and every release gets a video.

npx shipreel --changelog CHANGELOG.md

Live demo

Paste any release notes. The preview runs in your browser with the same scenes the CLI renders to MP4.

Samples:
0.0s

Selected highlights

    To get the MP4 files, run npx shipreel or add the GitHub Action (see below).

    Real output

    Rendered by shipreel in CI from the changelogs in the repo's test fixtures. These are actual MP4 files.

    minimal · Keep a Changelog
    terminal · conventional-changelog
    bold · release-please

    Install & use

    Pick one. Both are free.

    A GitHub Action recommended

    Add this file as .github/workflows/release-video.yml. Each time you publish a release, the videos get attached to it.

    name: Release video
    on:
      release:
        types: [published]
    permissions:
      contents: write
    jobs:
      video:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v7
          - uses: 99proteam/shipreel@v1
            with:
              template: minimal

    B CLI (Node.js 20+)

    Run it on your machine, no install needed:

    # one-time: download the headless browser
    npx playwright install chromium
    
    # render from your changelog
    npx shipreel --changelog CHANGELOG.md -o videos
    
    # or from a GitHub release
    npx shipreel --release v2.4.0 --repo owner/name
    
    # preview scenes in the browser
    npx shipreel preview

    Or add it to your project: npm i -D shipreel, then "video": "shipreel" in package.json scripts.

    Make it yours: shipreel.config.json

    {
      "template": "bold",
      "brandColor": "#ff5a1f",
      "logo": "./assets/logo.svg",
      "font": "Archivo",
      "sizes": ["landscape", "square", "vertical"],
      "cta": "npm i my-lib@latest",
      "music": "./assets/music.mp3"
    }

    Full reference, custom templates and library API: README on GitHub.

    How it works

    1. ParseGitHub release bodies, Keep a Changelog, conventional-changelog, release-please, changesets or any markdown.
    2. PickUp to 5 highlights, features first. PR links, commit hashes and @mentions are stripped and long lines shortened.
    3. RenderHTML/CSS scenes are captured frame by frame in headless Chromium, so the same input always gives the same video.
    4. Shipffmpeg encodes H.264 MP4s that every platform accepts. The Action attaches them to your release.