The CLI

Work on a theme in your editor instead of uploading a zip. Only what changed moves.

Install

npx @eldorados/cli theme list --site <site-id>

Commands

CommandWhat it does
theme listThe themes on a site, newest first, with the live one marked
theme pull [dir]Download a snapshot. Only files that differ are fetched
theme push [dir]Upload what changed. Only new content is sent
theme publishMake a snapshot the one the public sees

Useful flags: --dry-run says what would happen and changes nothing, --json is for CI, --publish publishes straight after a push, and --force pushes over a theme that moved since you pulled.

Settings

Three sources, in order of precedence:

  1. flags — --token, --site, --theme, --api
  2. environment — ELDORADOS_THEME_TOKEN, ELDORADOS_SITE, ELDORADOS_THEME, ELDORADOS_API
  3. .eldorados.yml
development:
  token: eld_theme_...
  site: site_abc123
  api: https://admin.el-dorados.com

production:
  token: eld_theme_...
  site: site_xyz789

That file holds a credential that can change a live website. Add it to .gitignore. In CI use ELDORADOS_THEME_TOKEN from a secret. The CLI never prints the token, never puts it in a URL and never echoes it back.

Why a push is fast

The theme store is content-addressed, so a push is two steps and the second usually does not happen: send a sha256 per file, and only if the server replies that it is missing blobs send those files’ contents. A one-line CSS change moves one file. An unchanged theme moves nothing and says so.

What gets uploaded

Only the eight theme directories. Everything beside them — package.json, node_modules/, .env, your tooling — is not looked at. That is not a filter to remember; it is the only thing the walker reads.

Binary assets are reported as skipped; upload those through the admin’s media screen.