--- title: theme push description: "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](/docs/themes/tools/cli#directory-structure). \ This command returns the following information: \ - A link to the [editor](/docs/themes/tools/online-editor) for the theme in the Shopify admin. \ - A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) 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: \ ```json \ { \ \"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\" \ } \ } \ ``` \ " api_name: shopify-cli source_url: html: https://shopify.dev/docs/api/shopify-cli/theme/theme-push md: https://shopify.dev/docs/api/shopify-cli/theme/theme-push.md --- # theme pushcommand 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](https://shopify.dev/docs/themes/tools/cli#directory-structure). This command returns the following information: * A link to the [editor](https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin. * A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) 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: ```json { "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" } } ``` ## Flags The following flags are available for the `theme push` command: * \--no-color env: SHOPIFY\_FLAG\_NO\_COLOR Disable color output. * \--password \ string env: SHOPIFY\_CLI\_THEME\_TOKEN Password generated from the Theme Access app. * \--path \ string env: SHOPIFY\_FLAG\_PATH The path where you want to run the command. Defaults to the current working directory. * \--strict env: SHOPIFY\_FLAG\_STRICT\_PUSH Require theme check to pass without errors before pushing. Warnings are allowed. * \--verbose env: SHOPIFY\_FLAG\_VERBOSE Increase the verbosity of the output. * -a, --allow-live env: SHOPIFY\_FLAG\_ALLOW\_LIVE Allow push to a live theme. * -d, --development env: SHOPIFY\_FLAG\_DEVELOPMENT Push theme files from your remote development theme. * -e, --environment \ string env: SHOPIFY\_FLAG\_ENVIRONMENT The environment to apply to the current command. * -j, --json env: SHOPIFY\_FLAG\_JSON Output the result as JSON. * -l, --live env: SHOPIFY\_FLAG\_LIVE Push theme files from your remote live theme. * -n, --nodelete env: SHOPIFY\_FLAG\_NODELETE Prevent deleting remote files that don't exist locally. * -o, --only \ string env: SHOPIFY\_FLAG\_ONLY Upload only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards. * -p, --publish env: SHOPIFY\_FLAG\_PUBLISH Publish as the live theme after uploading. * -s, --store \ string env: SHOPIFY\_FLAG\_STORE Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, ). * -t, --theme \ string env: SHOPIFY\_FLAG\_THEME\_ID Theme ID or name of the remote theme. * -u, --unpublished env: SHOPIFY\_FLAG\_UNPUBLISHED Create a new unpublished theme and push to it. * -x, --ignore \ 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 ##### theme push ```bash shopify theme push shopify theme push --unpublished --json ```