Skip to content

Getting Started

Terminal window
npm install -g @mcptoolshop/brand

Requires Node.js 20 or later.

If you already have a logos/ directory and manifest.json:

Terminal window
brand verify

This computes SHA-256 hashes for every image file under logos/ and compares them against the stored manifest. You’ll see a summary of verified, changed, added, and removed files.

Starting fresh or added new logos? Regenerate the manifest:

Terminal window
brand manifest

This scans logos/ for image files (.png, .jpg, .jpeg, .svg, .webp), computes their hashes, and writes manifest.json.

Use check mode to fail the build if the manifest is stale:

Terminal window
brand manifest --check

This is the recommended CI gate — it ensures every logo change is accompanied by a manifest update.

Point Brand at a directory of cloned repos to find broken logo references:

Terminal window
brand audit --repos /path/to/clones

The audit checks for:

  • Broken raw.githubusercontent.com logo URLs
  • shields.io badge URLs that look like brand logos (badge collision)
  • Markdown indentation traps (4+ spaces creating code blocks)

Rewrite logo URLs in other repos to point at the brand repo:

Terminal window
# Preview changes first
brand migrate --repos /path/to/clones --dry-run
# Apply changes
brand migrate --repos /path/to/clones

The migration uses multi-gate regex to distinguish actual brand logos from shields.io badges and other image references. Always dry-run first.

Terminal window
brand stats
brand stats --json

Shows total logo count, format breakdown (PNG vs JPEG vs SVG), and sync status.

Some products need more than one showcase image per slug (a sprite pack’s character turnarounds, a tool’s screenshot set). Register a directory of images as a gallery:

Terminal window
brand add-gallery <slug> /path/to/turnarounds --dry-run # preview
brand add-gallery <slug> /path/to/turnarounds # register + regenerate manifest

Re-run any time the source directory changes — add-gallery reconciles the gallery folder to match (adds, updates, and removes files) rather than only ever appending.

Drop a marker pair anywhere in the consuming repo’s README:

<!-- brand:gallery:start slug="<slug>" -->
<!-- brand:gallery:end -->

Then regenerate the content between the markers from the manifest:

Terminal window
brand sync --slug <slug> --repos /path/to/clones --check # CI gate: exit 1 on drift
brand sync --slug <slug> --repos /path/to/clones # write it

See the CLI Reference for the full option list.