npm.io
0.4.2 • Published 2d agoCLI

braaand

Licence
MIT
Version
0.4.2
Deps
0
Size
237 kB
Vulns
0
Weekly
0

braaand

CLI for Braaand — brand infrastructure for agentic automation.

Sync your brands to a local folder that coding agents build from, manage brands / assets / templates / creatives, launch ad-production pipelines, and render finished creatives — all from the terminal. AI agents drive the same commands via the braaand skill.

Install

npm install -g braaand
braaand auth login     # device flow, opens your browser

The synced brand folder

Your brands as a local dependency: build-ready design tokens (dist/), real font/logo files, guidelines as markdown, and agent instructions — one canonical folder (default ~/Documents/Braaand).

braaand sync                      # mirror every brand you can access
braaand sync <brandId>            # one brand
braaand sync status --json        # root + per-brand version/staleness — agents run this first
braaand sync set-root <path>      # move the canonical root
braaand sync --all                # ignore the brand's asset policy for one full mirror
braaand path [brandId]            # print the root (or one brand's folder)
braaand skill install             # install the braaand skill for Claude Code (kept fresh by sync)

Each brand folder ships brand.json (everything machine-readable), dist/tokens.json (W3C DTCG), dist/tokens.css, dist/fonts.css, a Tailwind v3 preset + v4 @theme, and a Previews/ surface agents compose visual brand previews into. Every artifact carries a provenance header (Brand · brand v14 · synced … · generated by Braaand), so a rebrand ships like a dependency update: sync, diff, apply.

Brands, assets, knowledge

braaand brands list | info <id> | config <id> | knowledge <id> [sectionId] | portal <id>
braaand brands create <name> | update <id> | delete <id> --yes --confirm-brand-id <id>
braaand assets list <brandId> | get <brandId> <assetId> [--output <path>] | upload <brandId> <file> [--type ...] | delete <brandId> <assetId>
braaand onboard <file.json>                # brand + config + assets in one call (add "website" to auto-seed)
braaand design-system <id> --out ./brand   # tokens bundle over the wire (styles.css + Tailwind @theme)

Images

# Deterministic convert/compress/resize (server-side, no credits):
braaand images convert ./photos --brand <id> --to webp --optimize
braaand images convert ./photos --out ./web --to avif --quality 55

# AI generation (uses the brand's plan credits):
braaand images generate "misty pine forest at dawn, soft light" --brand <id> --aspect 16:9

Templates & creatives

braaand system-templates list | instantiate <id> --brand <brandId>
braaand templates list | get | discover | create | update | update-element | delete
braaand creatives list | get | create <brandId> <templateId> | update | update-element | delete
braaand color-schemes ... | themes ... | brand-fit ... | composition ...
braaand render <brandId> <id> --all-formats
braaand render batch <brandId> <creativeId...>

Workflows, pipelines & collections

braaand workflows start <brandId> --brief "spring campaign for our new espresso line" --count 8 --wait
braaand workflows status <brandId> <workflowId> --watch   # polls until settled, prints phase changes
braaand workflows log <brandId> <workflowId>              # full run diagnostic (stages, scores, cost)
braaand workflows board <brandId> <boardId>               # creatives + render URLs + curation

braaand boards add <brandId> <boardId> --creatives <id,id> --section "Needs review"
braaand pipelines list <brandId>                          # saved node graphs with variable slots
braaand pipelines run <brandId> <templateId> --bindings '{"topic":"winter sale"}'
braaand collections list <brandId> | get <brandId> <collectionId>

workflows start hands braaand a brief: it matches templates, writes on-brand copy, renders and scores a batch on a durable run (survives closing your terminal; uses the brand's plan credits) and returns a share-ready review board. pipelines run does the same through a saved custom node graph. collections get returns everything an agent needs to build from a collection's contents — assets with full metadata and byte URLs.

Output

Commands print JSON to stdout — pipe to jq:

braaand brands list | jq '.[].name'

Docs: braaand.ai/docs · MCP connector (no install): https://mcp.braaand.ai/mcp

Keywords