Shipseal

CLI commands

Binary: shipseal. Every command accepts the shared flags below.

FlagMeaning
--cwd <path>Run against another directory
--jsonMachine-readable output
--quietErrors only
--verboseExtra detail

shipseal init

Detects the brand, writes .shipseal/brand.json and .shipseal/config.json, offers to update .gitignore, and renders one sample card using the brand it just found.

Flags: --yes accepts the detections without prompting, --force overwrites existing files.

shipseal release

Generates the release pack.

FlagDefaultMeaning
--tag <tag>latest tagWhich release to build
--from <tag>previous tagCompare base
--formats <list>from configFor example og,x
--templates <list>from configFor example release-hero
--themes <dark|light|both>brand themeWhich themes to render
--no-copyoffForce deterministic copy, no LLM
--out <dir>from configOutput directory
--strictoffExit 2 on any fit warning
--dry-runoffPrint facts, render nothing
--package <path>repo rootPick a workspace package

shipseal milestone

Reads the current metric and renders a card for the highest threshold you have crossed. If nothing has been crossed it exits 0 with a message and generates nothing.

Flags: --metric <stars|downloads|contributors>, --threshold <n>.

shipseal bench

Renders benchmark cards from a JSON file. Percentages are computed by code, never written by a model.

{
  "title": "Rendering got faster",
  "metrics": [
    { "label": "Render time", "before": 420, "after": 87, "unit": "ms", "better": "lower" }
  ],
  "note": "vitest bench, M4, 2026-09-10"
}

Flags: --file <path>. A regression is rendered honestly as a regression.

shipseal doctor

Checks Node, git, shallow clones, the brand file, fonts, the logo, GITHUB_TOKEN and the renderer.

Exit codes

CodeMeaning
0Success. Warnings allowed unless --strict
1Error: invalid config, missing required fact, render failure
2Fit warnings present and --strict was set