CLI
npx artbucket login assets.example.com --scope writenpx artbucket brand push brand --publishThe CLI is the artbucket package on npm, for Node 22 and later: npx artbucket runs it anywhere, npm install -g artbucket keeps it. login
takes your server (https:// is assumed without a scheme; give
http://localhost:3000 in full), signs in through the browser with the
device flow, and keeps a key in ~/.config/artbucket/credentials.json
(it lasts an hour, and each command renews it when it has lapsed, for as
long as you use it within 90 days), with that server as the default: later commands go there without
ARTBUCKET_URL, which still wins when set. It asks to suggest (propose),
what an agent gets by default: uploads wait for a person to approve them.
Pushing a brand edits it and --publish releases it, so that takes
--scope write; --scope read asks for less, and the consent screen never
offers more than you have. Signing in never gives admin (keys, invite,
members): those take a key an admin makes in Connections (API keys), as
ARTBUCKET_KEY. Disconnect it from Connections. Or set ARTBUCKET_KEY. From a
clone, pnpm artbucket runs the same CLI, and pnpm link --global puts it
on your path.
Without Node, the CLI is an image too: ghcr.io/pwnera/artbucket/cli, tagged like
the app’s (Docker).
docker run --rm -it -v artbucket:/config ghcr.io/pwnera/artbucket/cli login assets.example.comdocker run --rm -v artbucket:/config -v "$PWD":/work ghcr.io/pwnera/artbucket/cli brand push brand --publishartbucket search sintel posterartbucket search --status deletedartbucket url {id} --width 1200 --format webpartbucket check {id} --channel paid-social --territory DEartbucket ingest ./hero.png https://example.com/logo.png --tag launchartbucket ingest ./v2.png --version-of {id}artbucket reviewartbucket approve {id}artbucket reject {id} --reason "off-brand colors"artbucket rules --context instagram-storyartbucket keys create claude --scope proposeartbucket invite sam@agency.example --scope write --collection {id}artbucket share {collection-id} --uploadartbucket auditSites, and a build deployed to one (Sites): push zips the
folder, hidden files left out, and sends it; --path mounts it beside a brand
portal. check sends a build hosted anywhere for the same check, stores
nothing, and exits 1 when it uses what may not be shown, so it can fail a CI job.
artbucket sitesartbucket site new acme-docs --brand acme --kind docs --createartbucket site push dist --site acme-docsartbucket site push storybook-static --site acme --path /storybook --kind storybookartbucket site push dist --site acme-docs --preview pr-12artbucket site eject acme-guidelines --brand acmeartbucket site check distartbucket site scan src --site acme-app --packages @acme/ui--preview pr-12 keeps the build as a preview at its own address, printed
when it is up, and leaves the live one alone (Preview a pull
request).
site eject starts a guidelines site from the brand’s released pages, built
with the kit (Eject to code).
site new starts a site from the brand (landing, docs or guidelines),
wired to deploy with npm run deploy; brand export writes the release
readers see into a folder a build reads: its rules as JSON, tokens.css and
the files they point at.
artbucket brand export .brand --brand acmeartbucket brand export .brand --brand acme --release 12A brand’s pages, rules and theme, from JSON files in the shapes the API takes:
artbucket templatesartbucket pagesartbucket page logo > logo.mdartbucket page save logo page.jsonartbucket page edit logo ops.jsonartbucket rules set rules.jsonartbucket theme set theme.jsonartbucket publish --note "New accent, and a page on logo use"A brand as files for a Git repository (brand as code):
artbucket brand pull brand --brand acme --assetsartbucket brand diff brandartbucket brand push brand --publish --note "Bluer primary"In CI, with a write key (artbucket keys create ci --scope write) in
ARTBUCKET_KEY: npx --yes artbucket brand push brand --brand acme --publish.
CLI and CI has every flag, and GitHub
Actions and GitLab CI recipes.
--json prints the raw API response. artbucket --help lists every command.