AppbrewDevelopers
Reference

CLI reference

The milo command surface for external developers.

The commands available to external developers, by group. Every command prints one JSON value to stdout (errors go to stderr with a non-zero exit). Pipe to jq, never scrape help text. Run everything through pnpm exec milo … in your repo. Setup and login are covered in Set up milo; the config workflow in Config with milo.

auth

CommandPurpose
login <shop>Browser sign-in; 24h session per shop. --pick forces the store picker
logout [shop]End a session
switch <shop>Point this directory at another signed-in store
auth statusSession, email, and active app — offline

theme

CommandPurpose
theme listLive, draft, and scheduled themes
theme create "<name>"New draft cloned from live (--base <themeId> to clone another)
theme use <themeId>Set the active theme for config commands (use reset to clear)
theme previewPreview link + QR code for the active theme
theme rename / theme archiveHousekeeping

config

CommandPurpose
config pull [themeId]Sync the theme's config to .milo/sync/<themeId>/draft/
config statusDirty/missing/read-only state, offline
config show / entities / search <term>Inspect entities without opening files
config diff [--release]What changed vs the snapshot (or last release)
config commit <kind> <entityId>Save one entity (--new to create)
config create-screen "<name>"Scaffold a new screen entity
config pushMerge the draft into its theme
config refresh <kind> <id> --forceRe-pull one entity (conflict recovery)
config create-backup / list-backups / restore-backup <ts>Config backups
config list-releases / restore-release <id>Released config history

integration

CommandPurpose
integration catalog [term]Search the integration catalog
integration listIntegrations enabled on this app
integration info <id>Manifest and README for one integration
integration get <id>Its current settings (values masked; --reveal unmasks — treat output as secret)
integration add / update / removeManage integration settings
integration backups / restoreSettings history

blueprint

CommandPurpose
blueprint list / show <id>Curated theme templates usable as theme create --blueprint bases

shopify

CommandPurpose
shopify queryAdmin GraphQL, read-only (mutations are blocked)
shopify storefront-queryStorefront GraphQL
shopify discounts / discount <gid>Store discounts

push

CommandPurpose
push list / getScheduled and sent notifications
push create / update / cancelManage campaigns
push testSend a test push to a device

More groups

GroupPurpose
appwhich, preflight, brand-context (brand voice/colors for agent-written copy), metadata, cache-clear
bundleRemote JS bundles: build, promote <buildId>, current
analyticsmetrics and query over app analytics
discountApp-created discounts: list, get
onelinkSmart links: list, get, subdomains
filesStore file uploads: list, upload, upload-icon
skillsAgent-skill management: status, sync, list, get (Set up milo)

Seeing “not available”?

A command that answers <group> <cmd> is not available is outside the external surface — nothing is broken. If you believe you need it, contact Appbrew.

On this page