Shopify CLI for themes
Shopify CLI helps you build Shopify apps. It quickly generates Node.js, Ruby on Rails, and PHP apps, app extensions, Shopify Scripts (beta), and Shopify themes. You can also use it for Shopify themes and when automating many common development tasks.
This documentation explains how to use Shopify CLI for theme development. To learn how to use Shopify CLI for app development, refer to Shopify CLI for apps.
Choosing between Shopify CLI and Theme Kit
Shopify CLI replaces Theme Kit for most Shopify theme development tasks. You should use Shopify CLI if you're working on Online Store 2.0 themes. You should use Theme Kit instead of Shopify CLI only if you're working on older themes or you have Theme Kit integrated into your existing theme development workflows.
Shopify CLI accelerates your theme development process with the following features:
- Safely preview, test, and share changes to themes using development themes
- Hot reload CSS and section changes, or automatically refresh a page on file change, when previewing a theme
- Initialize a new theme using Dawn as a starting point
- Push and publish themes from the command line
- Run Theme Check on your theme
- Populate test data for your theme, including products, customers, and draft orders
Development themes are temporary, hidden themes that are connected to the Shopify store that you're using for development. When you connect your theme to a store as a development theme, you can use that store's data for local testing.
You can create a development theme using the
shopify theme serve command.
You can use development themes on a Shopify store or a development store. Development themes don't count toward your theme limit, and are deleted from the store after seven days of inactivity.
Your development theme is deleted when you run
shopify logout. If you want a preview link for the theme that can be accessed after you log out, then you should push your development theme to an unpublished theme on your store.
Your development theme can be used to perform the following tasks:
To learn how to install Shopify CLI on Windows, macOS, or Linux, refer to Install Shopify CLI.
Review the getting started with Shopify CLI guide to learn about topics including:
- Requirements for using Shopify CLI
- Connecting to a store
- Creating a new theme
- Previewing a theme
- Checking a theme for errors
You can run certain theme commands, such as
shopify theme serve, only if the directory you're using matches the default Shopify theme directory structure. This structure represents a buildless theme, or a theme that has already gone through any necessary file transformations. If you use build tools to generate theme files, then you might need to run commands from the directory where the generated files are stored.
The default Shopify theme directory structure is as follows:
Excluding files from Shopify CLI
If you have files in the same repository as your theme that you don't want to interact with using Shopify CLI, then you can add them to a
.shopifyignore at the root of the theme.
.shopifyignore accepts references to files in the following formats:
- Simple file names:
- Regular expressions:
You can also exclude specific files or patterns during a
pull using the
--ignore flag. If files are excluded using
.shopifyignore, then both the contents of
.shopifyignore and the
--ignore flag are respected.
Shopify CLI offers basic commands for authenticating and communicating with Shopify, and specific commands for theme development.
To learn how to upgrade Shopify CLI, migrate from a legacy version, and uninstall Shopify CLI, refer to Troubleshooting Shopify CLI.
Contributing to Shopify CLI
Shopify CLI is open source. Learn how to contribute in our GitHub repository.