Skip to main content

theme push

Uploads your local theme files to Shopify, overwriting the remote version if specified.

If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.

You can run this command only in a directory that matches the default Shopify theme folder structure.

This command returns the following information:

  • A link to the editor for the theme in the Shopify admin.
  • A preview link that you can share with others.

If you use the --json flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.

Sample output:

{
"theme": {
"id": 108267175958,
"name": "MyTheme",
"role": "unpublished",
"shop": "mystore.myshopify.com",
"editor_url": "https://mystore.myshopify.com/admin/themes/108267175958/editor",
"preview_url": "https://mystore.myshopify.com/?preview_theme_id=108267175958"
}
}

The following flags are available for the theme push command:

Anchor to --listing <value>
--listing <value>
string
env: SHOPIFY_FLAG_LISTING

The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.

Anchor to --no-color
--no-color
env: SHOPIFY_FLAG_NO_COLOR

Disable color output.

Anchor to --password <value>
--password <value>
string
env: SHOPIFY_CLI_THEME_TOKEN

Password generated from the Theme Access app or an Admin API token.

Anchor to --path <value>
--path <value>
string
env: SHOPIFY_FLAG_PATH

The path where you want to run the command. Defaults to the current working directory.

Anchor to --strict
--strict
env: SHOPIFY_FLAG_STRICT_PUSH

Require theme check to pass without errors before pushing. Warnings are allowed.

Anchor to --verbose
--verbose
env: SHOPIFY_FLAG_VERBOSE

Increase the verbosity of the output.

Anchor to -a, --allow-live
-a, --allow-live
env: SHOPIFY_FLAG_ALLOW_LIVE

Allow push to a live theme.

Anchor to -d, --development
-d, --development
env: SHOPIFY_FLAG_DEVELOPMENT

Push theme files from your remote development theme.

Anchor to -e, --environment <value>
-e, --environment <value>
string
env: SHOPIFY_FLAG_ENVIRONMENT

The environment to apply to the current command.

Anchor to -j, --json
-j, --json
env: SHOPIFY_FLAG_JSON

Output the result as JSON.

Anchor to -l, --live
-l, --live
env: SHOPIFY_FLAG_LIVE

Push theme files from your remote live theme.

Anchor to -n, --nodelete
-n, --nodelete
env: SHOPIFY_FLAG_NODELETE

Prevent deleting remote files that don't exist locally.

Anchor to -o, --only <value>
-o, --only <value>
string
env: SHOPIFY_FLAG_ONLY

Upload only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.

Anchor to -p, --publish
-p, --publish
env: SHOPIFY_FLAG_PUBLISH

Publish as the live theme after uploading.

Anchor to -s, --store <value>
-s, --store <value>
string
env: SHOPIFY_FLAG_STORE

Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).

Anchor to -t, --theme <value>
-t, --theme <value>
string
env: SHOPIFY_FLAG_THEME_ID

Theme ID or name of the remote theme.

Anchor to -u, --unpublished
-u, --unpublished
env: SHOPIFY_FLAG_UNPUBLISHED

Create a new unpublished theme and push to it.

Anchor to -x, --ignore <value>
-x, --ignore <value>
string
env: SHOPIFY_FLAG_IGNORE

Skip uploading the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.

Examples

theme push

shopify theme push

shopify theme push --unpublished --json
Was this page helpful?