SpinupWP CLI


To get started, require the package globally via Composer:

composer global require spinupwp/spinupwp-cli

In addition, you should make sure the /vendor/bin directory in your global Composer home directory is in your system’s “PATH”. Depending on your operating system this could be either ~/.composer/ or ~/.config/composer/. You can use the composer config --global home command to check this location.


Installing the SpinupWP CLI provides access to the spinupwp command.

spinupwp <command>

You will need to generate an API token to interact with the SpinupWP CLI. After you have generated an API token, you should configure your default profile:

spinupwp configure

You can configure multiple profiles, which is useful if you’re a member of multiple teams:

spinupwp configure --profile=hellfishmedia

To run a command using a specific profile, pass the profile option:

spinupwp servers:list --profile=hellfishmedia

If no profile is supplied, your default profile will be used (if configured).


# Delete a server
spinupwp servers:delete <server_id>

# Get a server
spinupwp servers:get <server_id> --fields=id,name,ip_address,ubuntu_version,database.server

# List all servers
spinupwp servers:list --fields=id,name,ip_address,ubuntu_version,database.server

# Reboot a server
spinupwp servers:reboot <server_id>

# Reboot all servers
spinupwp servers:reboot --all

# Start an SSH session
spinupwp servers:ssh <server_id> <user>

You can pass any properties of the Server Schema to the --fields flag. Nested properties should use dot notation, for example, database.server.


# Restart MySQL on a server
spinupwp services:mysql <server_id>

# Restart MySQL on all servers
spinupwp services:mysql --all

# Restart Nginx on a server
spinupwp services:nginx <server_id>

# Restart Nginx on all servers
spinupwp services:nginx --all

# Restart PHP on a server
spinupwp services:php <server_id>

# Restart PHP on all servers
spinupwp services:php --all


# Create a site
spinupwp sites:create <server_id>

# Delete a site
spinupwp sites:delete <site_id>

# Run a Git deployment
spinupwp sites:deploy <site_id>

# Get a site
spinupwp sites:get <site_id> --fields=id,server_id,domain,site_user,php_version,page_cache,https

# List all sites
spinupwp sites:list --fields=id,server_id,domain,site_user,php_version,page_cache,https

# Purge the page cache for a site
spinupwp sites:purge <site_id> --cache=page

# Purge the page cache for all sites
spinupwp sites:purge --all --cache=page

# Purge the object cache for a site
spinupwp sites:purge <site_id> --cache=object

# Purge the object cache for all sites
spinupwp sites:purge --all --cache=object

# Start an SSH session as the site user
spinupwp sites:ssh <site_id>

You can pass any properties of the Site Schema to the --fields flag.*

Nested properties should use dot notation, for example, backups.next_run_time or git.branch.

*Unfortunately, the site:create option does not support the --fields flag or any of the GitHub options. You must use the SpinupWP UI or API for more advanced options during the site:create The --fields flag also only applies to commands which is pulling and displaying data, such as an index or get call.

# Create a site using field flags instead of interactive prompts
spinupwp sites:create <server_id> --installation-method="<installation_method>" \
  --domain="<domain>" --https-enabled --site-user="<site_user>" --db-name="<database_name>" \
  --db-user="<database_user>" --db-pass="<database_password>" --wp-title="<wordpress_site_title>" \
  --wp-admin-email="<wordpress_admin_user_email>" --wp-admin-user="<wordpress_admin_user_username>" \
  --wp-admin-pass="<wordpress_admin_user_password>" --php-version="<php_version>" --page-cache-enabled

A full reference of the available flags is available anytime.

# Display available Arguments and Options for site:create 
spinupwp sites:create --help


To update the SpinupWP CLI to the latest version, run:

composer global update

Visit the GitHub repo for more.