Appearance
Stayblox CLI
@stayblox/cli is the developer CLI for building and publishing marketplace themes. It validates your theme against the platform's real rules, pushes versions as private drafts, and submits them for review — all from the theme directory.
Building a theme just for your own storefront? You don't need the CLI — upload a
.zipin your admin instead. See Publishing → custom themes.
Install
bash
npm install -g @stayblox/cliRequires Node 18.13+.
Authenticate
bash
stayblox login # production
stayblox login --api https://api.stayblox.local/api --insecure # local developmentlogin prompts for your platform email and password and stores an API token in ~/.config/stayblox/config.json. --insecure accepts self-signed TLS certificates and is remembered for subsequent commands.
The theme commands require your user to belong to a verified partner account. If you belong to several partner accounts, pass --account <id> to any theme command.
The theme.json manifest
Every theme is identified by a theme.json manifest in the theme root — the same contract whether you publish with the CLI or upload a .zip to a site:
json
{
"slug": "breeze",
"name": "Breeze",
"version": "1.0.0",
"description": "A light, airy hotel theme."
}slug— 2–40 chars of lowercase letters, digits and dashes. Permanently yours after the first push; nobody else can publish to it.version— semver (major.minor.patch). Bump it for every release.changelog— optional; stored on the version when present.
Commands
Run these from the theme directory (or point elsewhere with --path <dir>):
bash
stayblox theme validate # server-side validation, nothing published
stayblox theme push # publish a draft version (private until approved)
stayblox theme push --submit # publish and submit for review in one go
stayblox theme list # your themes on the platform
stayblox theme versions # versions + review status for this themevalidate and push upload your theme as a package and return a structured report of errors and warnings — see Publishing → validation for what's checked. push refuses a failing package; warnings don't block.
What gets packaged
Only platform-supported file types are included:
- Text:
twig,css,js,json,svg,html,txt,xml - Binary:
woff,woff2,ttf,eot,png,jpg,jpeg,gif,ico,webp,mp4,webm
.git, node_modules, dist, vendor, and dotfiles are always excluded. The packaged .zip must stay under 20 MB.
Releases are immutable
Draft versions can be re-pushed freely while you iterate. Once a version is approved or rejected it is frozen — bump version in theme.json to push again. The platform rejects a push that reuses a released version name.