The cartbase app commands

All of them need cartbase login first: the login is bound to one store and every command acts on that store.

Command What it does
cartbase app create <key> [--name] [--description] Writes the app folder: cartbase.app.json, CLAUDE.md, README.md. Inside a storefront project the folder is apps/<key>/.
cartbase app validate [dir] Posts the manifest to the platform and prints its verdict: valid, with the screens it would show, or one line per problem.
cartbase app deploy [dir] Creates or updates the app on the store. Prints the records and screens and the app's admin address. The first deploy prints the app key once and writes it to the project's .env.local.
cartbase app share [dir] Publishes the folder as a public repository under the Cartbase organisation, README and MIT licence added. Sharing again refreshes the same repository.
cartbase app install <owner/name | url> [--dir] Reads a public repository once, creates the app on your store as a fork and writes its files under apps/<key>/. Prints the key once.
cartbase app uninstall <key> [--remove-files] Deletes the app from the store: its record types and records, its settings and secrets, its key, at once. Run cartbase apps export <key> first if you want the data. The local folder stays unless --remove-files.

The app rows are also plain resources of the admin API, so the generated commands work too:

cartbase apps list
cartbase apps get store-locator
cartbase apps settings store-locator
cartbase apps update-settings store-locator --data '{"default_zoom": 9}'
cartbase apps keys store-locator
cartbase apps rotate-key store-locator
cartbase apps disable store-locator
cartbase apps enable store-locator
cartbase apps export store-locator

A rotated key is printed once, in that answer; every older key stops working the moment it is issued.