Shopify CLI for themes
Shopify CLI is a command-line interface tool that helps you build Shopify apps and themes. It quickly generates Node.js, Ruby on Rails, and PHP apps, app extensions, and Shopify themes. You can also use it to automate 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. You need to use Shopify CLI 2.x for themes, and Shopify CLI 3.x for apps and custom storefronts.
Choosing between Shopify CLI and Theme KitAnchor link to section titled "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.
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 themesAnchor link to section titled "Development themes"
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:
InstallationAnchor link to section titled "Installation"
To learn how to install Shopify CLI on Windows, macOS, or Linux, refer to Install Shopify CLI.
Getting startedAnchor link to section titled "Getting started"
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
Directory structureAnchor link to section titled "Directory structure"
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 CLIAnchor link to section titled "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.
Command referencesAnchor link to section titled "Command references"
Shopify CLI offers basic commands for authenticating and communicating with Shopify, and specific commands for theme development.
Upgrade or uninstall Shopify CLIAnchor link to section titled "Upgrade or uninstall Shopify CLI"
To learn how to upgrade Shopify CLI, migrate from a legacy version, and uninstall Shopify CLI, refer to Upgrade or uninstall Shopify CLI.
Contributing to Shopify CLIAnchor link to section titled "Contributing to Shopify CLI"
Shopify CLI is open source. Learn how to contribute in our GitHub repository.