CLI Reference

whatalo deploy

Build and deploy a new version of your plugin to the Whatalo marketplace.

Syntax

whatalo deploy [options]

Options

FlagTypeDescription
--forcebooleanSkip the confirmation prompt (required in CI/CD)
--no-buildbooleanSkip the build step
--message <msg>stringChangelog entry or release note for this version
--set-version <ver>stringOverride the version (default: reads from package.json)
--jsonbooleanOutput results as JSON
--portal-url <url>stringDeveloper Portal URL

Deployment Flow

  1. Auth check — Verifies your session. Unlike whatalo dev, there is no auto-login; run whatalo login if your session has expired.
  2. Read config — Loads whatalo.app.toml from the current directory.
  3. Build — Runs the command defined in build.build_command in your config. Timeout: 120 seconds. The CLI verifies the output_dir exists after the build completes.
  4. Determine version — Uses --set-version if provided, otherwise reads the version field from package.json.
  5. Confirm — Shows a summary and asks for confirmation (skipped with --force or --json).
  6. Deploy — Sends POST /api/plugins/{plugin_id}/deploy with the version, manifest, and message.

Version Rules

  • Must be a valid semver string (e.g., 1.0.0, 1.2.0-beta.1)
  • Cannot be lower than the current deployed version

Status After Deployment

Deployment does not automatically publish your plugin. The status transition depends on the current state:

Current statusStatus after deploy
draftdraft (submit via dashboard when ready)
approvedpending_review (changes trigger re-review)
rejectedpending_review

CI/CD Usage

In non-interactive environments (GitHub Actions, Railway, etc.), always use --force:

whatalo deploy --force --message "Fix order sync bug"

Without --force, the CLI will hang waiting for confirmation input that never comes in a CI environment.

Example GitHub Actions step

- name: Deploy plugin
  run: whatalo deploy --force --message "${{ github.event.head_commit.message }}"
  env:
    WHATALO_DEVELOPER_PORTAL_URL: ${{ secrets.PORTAL_URL }}

Examples

Deploy with a message and skip build (already built):

whatalo deploy --no-build --message "Add bulk order export"

Deploy a specific version:

whatalo deploy --set-version 2.0.0 --message "Major rewrite — new UI"

Deploy with JSON output for scripting:

whatalo deploy --force --json

On this page