Two ways to consume Brand Atoms: the brandatom CLI for terminals
and CI, or direct HTTP fetch for AI agents and runtimes. Pick one and skip to
How to use.
brandatom CLI
A single static binary. Browses the catalog, inspects a brand, and applies a
brand to your local project — Tailwind, Xcode, Android, or vanilla CSS.
git clone https://github.com/convergent-systems-co/branding-library
cd branding-library/src/brandatom
go build -o brandatom ./cmd/brandatom
./brandatom --version
Verify:
brandatom --version prints a SemVer string. If it doesn't, the
shim isn't on your PATH.
HTTP fetch — for AI agents and runtimes
No install. Every atom is reachable as a static file under
https://brand-atoms.com/dist/ with deterministic paths. Pick the
emitter that matches your runtime.
Catalog index
shell
curl https://brand-atoms.com/dist/index.json
Lists every brand, palette, and font with version, slug, and identity colors.
Use this to discover what's available before fetching a specific atom.
Path shape:
/dist/<kind>/<slug>/<version>/<emitter>/<file>.
Nine emitters per brand — see the full list under
How to use → Output formats.
The atom model — the 60-second version
Three concepts. Everything else is mechanical.
Atoms
The leaves. A palette is swatches + light/dark role mappings;
a font is family, weights, classification, source, and CDN
URLs. Every atom lives at
<kind>/<slug>/<version>/atom.yaml and is
versioned with semver.
Brands
The compositions. A brand picks one palette and a set of
fonts by reference, adds semantic role overrides
(primary, identity, accent), and
attaches structured assets (logos, favicons, og-images).
Rules
The contracts. A brand declares typed constraints —
contrastRatio, colorChoice,
forbiddenTreatment, fontPairing, and seven more
— that an AI iterates programmatically. No opaque prose: every rule has a
target, parameters, severity, and rationale.