Shipseal

Open source CLI and GitHub Action

Your release, as an image. Automatically.

Shipseal is a command line tool that reads your repo, then renders a folder of ready-to-post images for a release, a milestone or a benchmark. Your colours, your logo, correct size for every platform. Every number on the card comes from a real source, never from a model.

$ npx shipseal@latest init
Shipsealv2.0.0

QR and barcode support

Render scannable codes in any PDF component

npm i shipseal1,042 stars
v2.0.0 from the git tagheadline from CHANGELOG.md1,042 from the GitHub APIsealed. every number has a source

The problem

Shipping got faster.
Announcing it did not.

Every release wants an OG image, an X card, a LinkedIn card, a GitHub preview. So you skip them, or lose an hour in Figma, or let an image model invent a number that was never true and mangle the text on the way.

Shipseal takes the hour back, and refuses to invent anything.

What you get

One command, one folder, eight images

.shipseal/output/v2.0.0/
├── og.png                 1200x630   link previews
├── github-social.png      1280x640   repo preview
├── x.png                  1200x675   X posts
├── linkedin.png           1200x627   LinkedIn
├── highlights.png                    what changed
├── code.png                          API snippet
└── manifest.json                     every fact, and where it came from

How it works

Five steps, no browser

  1. 01

    Read

    Facts already in your repo: the tag, the changelog, contributors, stars, downloads.

  2. 02

    Decide

    Optional AI picks the highlights and writes the headline. Words only, never numbers.

  3. 03

    Design

    Facts drop into templates wearing your brand colours, fonts and logo.

  4. 04

    Render

    Takumi rasterises to PNG in milliseconds. No browser, no image model.

  5. 05

    Deliver

    Files land in a folder, attach to the GitHub release, or both.

Verified facts

The manifest is the proof

An AI writes words. Code writes numbers. Every figure on a card comes from git, the GitHub API, npm or your own CI, and lands in manifest.json with the exact reference it came from. If a fact is missing, the element is hidden. Nothing is estimated and nothing is invented.

"metrics.stars": {
  "value": 1042,
  "source": "github-api",
  "ref": "GET /repos/akii09/pdfx
          stargazers_count",
  "fetchedAt": "2026-09-11T10:00:00Z"
}

One event, every size

Sized for the places you post

og1200x630Link previews
github-social1280x640Repo preview
x1200x675X posts
linkedin1200x627LinkedIn

Plus square, portrait, Product Hunt and README banner sizes.

For your agent

Reading docs? In this economy?

Copy the prompt, paste it into your coding agent, go get a coffee. It reads the real API and wires Shipseal into your repo. We will not tell anyone.

Take the prompt

Humans welcome too. The docs are right there.

Your next release deserves better than a text post.

$ npx shipseal@latest init

MIT licensed. Node 22 or newer. No account, no server, and the CLI sends no telemetry. What this site measures.