If you’re choosing between Shopify CLI and Theme Kit for theme development in 2026, the decision is mostly made for you: Shopify officially deprecated Theme Kit in 2023 and now directs all developers to Shopify CLI. Theme Kit still works for basic operations on existing projects, but it no longer receives feature updates, won’t support newer Shopify features, and Shopify has stated it will eventually stop functioning entirely. This guide covers what that means in practice, the side-by-side comparison, the commands you’ll actually use, and how to migrate if you’re still on Theme Kit.

Key Takeaways
1
Theme Kit is deprecated as of 2023 - Shopify CLI is now the official theme development tool, and all new projects should use it.
2
Theme Kit still works for existing projects but receives no new features and lacks support for Online Store 2.0 capabilities like JSON templates and app blocks.
3
Shopify CLI provides superior workflow tools: hot reload, real-time previews, theme check, and a faster local development server.
4
Migrating from Theme Kit to Shopify CLI is straightforward - install the CLI, authenticate, and use shopify theme dev or shopify theme pull to start working with existing themes.

Theme Kit Is Deprecated - What That Means for You

In 2023, Shopify officially announced that Theme Kit (also known as themekit, the Go-based CLI tool that developers used for years) is no longer being actively developed. The official Shopify documentation now directs all theme developers to use Shopify CLI instead.

What still works on Theme Kit:

  • Pushing and pulling theme files to and from existing Shopify stores.
  • Watching for local file changes and syncing them.
  • Working with themes that don’t use Online Store 2.0 features.

What does NOT work on Theme Kit:

  • Local theme preview with hot reload - Theme Kit relies on a polling-and-sync model that’s much slower than Shopify CLI’s local dev server.
  • Full support for Online Store 2.0 features - JSON templates, app blocks, theme app extensions, and section-rendering API endpoints work better through Shopify CLI.
  • Modern theme check rules - Shopify’s theme-check linter receives updates only through the CLI.
  • Future Shopify features. Anything new from Shopify’s theme platform from 2024 onward will be CLI-only.

Should you migrate immediately? If you’re starting a new theme project, yes - use Shopify CLI from day one. If you have an existing project on Theme Kit and it’s not broken, you can keep using Theme Kit short-term. But the migration is small (covered later in this guide) and the longer you wait, the more deprecated tooling debt you accumulate.

Quick Comparison Table

Feature Shopify CLI Theme Kit
Status Active, Shopify-recommended Deprecated since 2023
Install npm install -g @shopify/cli Download binary from GitHub
Local dev server with hot reload Yes - shopify theme dev No (file-watch-and-push only)
Theme check (linting) Yes - actively updated Limited, frozen ruleset
Online Store 2.0 support Full Partial
App development Yes (themes + apps) Themes only
Authentication OAuth via browser API password (less secure)
Future development Active None

Migrating From Theme Kit to Shopify CLI

If you have an existing Theme Kit project, here’s the practical migration path. The whole process takes about 15 minutes per theme.

Step 1 - Install Shopify CLI. If you don’t already have it: npm install -g @shopify/cli. Verify with shopify version.

Step 2 - Authenticate. From your theme directory, run shopify theme dev --store your-store.myshopify.com. The first time, it will open a browser window for OAuth login. Theme Kit’s API-password approach is replaced - you authenticate once with your Shopify account.

Step 3 - Confirm the theme structure is compatible. Theme Kit and Shopify CLI use the same theme folder structure (assets, config, layout, locales, sections, snippets, templates). No file restructuring is needed for the migration itself.

Step 4 - Replace your Theme Kit commands. Practical mapping:

  • theme watchshopify theme dev
  • theme deployshopify theme push
  • theme downloadshopify theme pull
  • theme openshopify theme open
  • theme newshopify theme init

Step 5 - Update your config.yml. Theme Kit used a config.yml in the theme root for store URL and API password. Shopify CLI doesn’t need this file at all - store identity is handled through the OAuth session and command flags. You can delete the config file once you’re confident the CLI workflow is working.

Step 6 - Update your CI/CD or deployment scripts. If you’re using Theme Kit in GitHub Actions, GitLab CI, or any deploy automation, swap the binary download for the npm install plus update the commands. Shopify also publishes a GitHub Action that wraps the CLI for theme deployment.

Essential Shopify CLI Commands for Theme Developers

The day-to-day commands you’ll run most often:

shopify theme dev - starts a local development server with hot reload. Edit any theme file and the browser updates immediately. This is the headline feature that Theme Kit can’t match.

shopify theme push - uploads your local theme to a development theme on the connected store. Add --unpublished to push to a brand-new unpublished theme, or --theme=THEME_ID to push to a specific existing theme.

shopify theme pull - downloads a theme from your store to your local directory. Use this to sync changes another developer made via the theme editor.

shopify theme check - lints your theme files for errors, deprecated syntax, and Liquid issues. Run before pushing to catch problems early.

shopify theme list - lists all themes on the connected store with their IDs, useful when you need to push to a specific theme.

shopify theme init - creates a new theme project from Shopify’s Dawn theme starter. Faster than cloning a repo manually.

shopify theme open - opens the current theme in the Shopify admin’s theme editor in your browser.

shopify theme share - generates a temporary preview URL for your unpublished theme that anyone can access without authentication. Useful for sharing work-in-progress with clients.

Workflow Comparison: Speed and Feedback

Shopify CLI workflow. Shopify CLI runs a local development server. You edit a Liquid file in your editor, the CLI detects the change, and the browser updates in milliseconds - no manual push, no waiting for sync. The theme check linter catches errors before you push to production. For solo developers and small teams who prioritize speed, this workflow is significantly faster than anything Theme Kit can do.

Theme Kit workflow (legacy). Theme Kit watches local files and pushes changes to your Shopify store as you save. You then refresh the browser to see changes. The round-trip time is several seconds even on a fast connection. Error detection is limited and most problems surface only after you push to production.

Authentication and Security

Theme Kit used API passwords stored in config.yml files. Anyone who got that file got full access to your store, and rotating credentials meant updating every developer’s local config. Shopify CLI replaced this with OAuth - you authenticate through the browser once, the credentials never sit in a file, and revoking access is one click in the Shopify admin. This is materially better for any team larger than one person.

Troubleshooting Tips

If shopify theme dev hangs on startup: ensure your store URL is correct (no trailing slash, includes .myshopify.com) and that your account has access to the store. The CLI will print a clear error if authentication fails.

If hot reload stops working mid-session: restart the dev server. This is rare but happens after large structural changes (adding new sections, renaming templates).

If theme check reports errors you don’t agree with: the linter has a config file at .theme-check.yml in your theme root where you can disable specific rules. Don’t disable broadly - the rules exist for good reasons - but it’s reasonable to silence one or two that don’t apply to your project.

If you need to fall back to Theme Kit for a specific reason: it still installs and runs, but document why and plan the eventual migration. “We need it for X” is fine; “we’re avoiding Shopify CLI on principle” stops being defensible as more Shopify features become CLI-only.