Claude Code vs Cursor vs Codex for Shopify Development
A hands-on comparison of Claude Code, Cursor, and OpenAI Codex for Shopify theme work — Liquid editing, section generation, MCP integration, and when to use each tool.
Every "Claude Code vs Cursor vs Codex" article published in 2026 benchmarks the same things: React components, Python scripts, generic refactors. None of them test what matters if you build Shopify themes for a living.
Shopify theme development is a genuinely different AI stress test. Liquid has far less representation in public training data than JavaScript or Python. Section schemas have rigid JSON structures that break silently when an AI hallucinates a property. And Shopify's own MCP server has changed how these tools can interact with the platform — but not everyone has caught up.
I have been using these tools on production Shopify theme work. Here is what actually matters.
Liquid is where AI tools fall apart
Most AI coding tools were trained on millions of open-source JavaScript and Python files. Liquid exists in a fraction of that volume. The result: Claude Code, Cursor, and Codex all start at a disadvantage when generating Shopify theme code.
The failures are specific and predictable:
Hallucinated filters. All three tools invent Liquid filters that do not exist. I have seen | collection_url instead of the correct | url, | money_format instead of | money, and completely fabricated filters like | sort_by_price. The Cursor community solved this by shipping .cursorrules files that include a catalog of valid Liquid filters — because the models cannot be trusted to know them.
Broken schema JSON. Ask any of these tools to generate a {% schema %} block and you will get properties that Shopify does not support. Common hallucinations include required, description, validation, and placeholder — properties borrowed from JSON Schema or React prop types that have no meaning in a Shopify section schema.
Here is what a correct range setting looks like:
{% schema %}
{
"name": "Featured collection",
"settings": [
{
"type": "collection",
"id": "collection",
"label": "Collection"
},
{
"type": "range",
"id": "products_to_show",
"min": 2,
"max": 12,
"step": 2,
"default": 4,
"label": "Products to show"
}
],
"presets": [
{
"name": "Featured collection"
}
]
}
{% endschema %}Without explicit context about valid schema keys, all three tools will add fields like "description": "How many products to display" or "required": true — and the section will silently fail to render its settings in the theme editor.
Missing theme editor events. AI-generated sections almost never include shopify:section:load event listeners. This means they work on first page load but break when a merchant rearranges sections in the theme editor. You catch it in QA if you are thorough. If you are not, your merchant catches it.
CSS scoping confusion. Ask an AI tool to add section-specific styles that use merchant settings and it will reach for {% stylesheet %}. Reasonable guess — but wrong. The {% stylesheet %} tag concatenates CSS into a single global file and does not support Liquid inside it. For instance-specific styles that reference section settings (like a merchant-chosen color), you need the {% style %} tag — which renders an inline <style data-shopify> element, supports Liquid variables, and live-updates in the theme editor without a page refresh. AI tools almost never reach for {% style %} unprompted.
Design token guessing. Instead of reading values from settings_schema.json or CSS custom properties, AI tools guess hex codes. One developer documented a lessons-learned file where Claude guessed #404040 for a hover state when the actual token was #737373. This class of error is invisible until a designer notices.
The Shopify Dev MCP server changes everything
This is the single biggest shift in AI-assisted Shopify development, and most comparison articles do not mention it.
Shopify ships an official MCP server (@shopify/dev-mcp) that gives AI tools direct access to Shopify's documentation, API schemas, and Liquid validation. It runs locally, requires no authentication, and works with Claude Code, Cursor, and Codex.
What it provides:
| Tool | What it does |
|---|---|
search_docs_chunks |
Searches all shopify.dev documentation |
fetch_full_docs |
Retrieves complete doc pages by path |
introspect_graphql_schema |
Explores the Admin API schema with version selection |
validate_graphql_codeblocks |
Validates generated GraphQL against the real schema |
| Liquid support | Searches Liquid docs and runs theme-check validation |
That last row is the one that matters most for theme work. Since October 2025, the MCP server includes Liquid documentation search and built-in theme-check integration — Shopify's official linter that catches syntax errors, deprecated tags, and best-practice violations in generated Liquid.
With the MCP server connected, the AI stops guessing about Liquid filters and schema properties. It pulls from the actual Shopify documentation and validates its output against theme-check before you even see it. This eliminates most of the hallucination problems described above — the same problems that make unassisted AI tools dangerous for Shopify work.
As Vitalii Ponomarov put it in the "i only speak liquid" newsletter: "Most AI-assisted coding fails on Shopify projects because the model doesn't have the right context about Liquid, the API schema, or object patterns. MCP fixes that."
Three tools, three workflow models
With MCP leveling the playing field on Shopify knowledge, the real difference comes down to how each tool wants you to work.
| Aspect | Claude Code | Cursor | Codex |
|---|---|---|---|
| Interface | Terminal agent | VS Code fork | Desktop app (macOS) |
| Workflow | Autonomous — give a task, it plans and executes | Interactive — you drive, AI assists | Multi-agent — run parallel agents, review queue |
| Context config | CLAUDE.md + skills files |
.cursorrules + open tabs + indexing |
Skills + Automations |
| Multi-file edits | Autonomous across files | Composer mode with manual review | Parallel agents across files |
| Tab completion | None (agent model) | On every keystroke | None (agent model) |
| Shell access | Native | Requires switching to terminal | Native via agents |
| MCP support | Native, first-class | Supported via settings | Supported |
| Git integration | Full workflow + worktrees | Basic via editor | Full workflow + worktrees |
Claude Code is a terminal-first autonomous agent. You describe a task — "build a featured-collection section with a product limit range setting and lazy-loaded images" — and it reads your existing sections, generates the new one, and can run shopify theme check to validate it. The entire loop happens without you switching contexts.
Cursor is a fast pair programmer. You get tab completion while writing Liquid, inline suggestions as you type schema JSON, and Composer for bigger multi-file edits. The speed of autocomplete matters when you are making dozens of small changes across a theme.
Codex is a mission control layer. Launched as a macOS desktop app in February 2026, it runs multiple AI agents in parallel — each in its own git worktree. You can assign one agent to build a new section, another to refactor your CSS architecture, and review both outputs in a unified queue. It also supports reusable Skills (similar to Claude Code's skills) and Automations for scheduled tasks like issue triage or CI failure summaries.
For Shopify theme work specifically, the multi-agent model matters less than you might expect. Most theme tasks are sequential — you build a section, test it, then move on. Where Codex's parallelism shines is larger storefront projects: building multiple sections simultaneously or running a theme migration while separately updating metafield definitions.
Configuring each tool for Shopify work
All three tools perform dramatically better with explicit project context. Without it, you are relying on general training data — and for Shopify, that means frequent hallucinations.
CLAUDE.md for Claude Code
Shopify is already shipping CLAUDE.md files in new projects. When you run shopify theme init, it prompts you about AI coding assistants. For existing projects, write your own:
# CLAUDE.md
## Project
- Shopify theme based on Horizon
- Online Store 2.0 architecture
## Section conventions
- All sections must include `shopify:section:load` event handling
- Schema settings use sentence-case labels
- Range settings always include min, max, step, default
- Use `{% style %}` for instance-specific CSS with Liquid variables
- Use `{% stylesheet %}` only for static CSS (concatenated globally, no Liquid)
## Valid schema setting types
collection, product, blog, page, link_list, url, video_url,
richtext, html, article, color, color_background,
font_picker, image_picker, text, textarea, number, range,
select, checkbox, radio, header, paragraph, liquid
## Commands
- `shopify theme dev` — local development
- `shopify theme check` — lint Liquid and JSON.cursorrules for Cursor
The community has built extensive Cursor rules for Shopify. The most useful ones include a full catalog of valid Liquid filters, since the model hallucinates them frequently:
# Shopify Theme Development Rules
## Valid Liquid Filters (partial list)
Cart: item_count_for_variant, line_items_for
HTML: class_list, time_tag, inline_asset_content
Media: image_url, image_tag, media_tag
Money: money, money_with_currency, money_without_trailing_zeros
## Section Schema Rules
- Never add "required", "description", or "placeholder" to settings
- Always include "presets" for sections that appear in the theme editor
- Block types must use valid Shopify type identifiers
Skills for Codex
Codex uses reusable Skills — bundled instructions that agents can reference. You can create a Shopify Theme Skill that encodes the same conventions as a CLAUDE.md. The advantage is that Skills persist across agents and projects, so if you work on multiple Shopify stores, the Shopify context follows you without per-project setup.
Where each tool wins
After using all three on real Shopify theme projects, here is the pattern.
Claude Code wins at:
- Building new sections from scratch. Its autonomous planning produces the best first drafts. It reads your existing sections, mirrors the patterns, and validates with theme-check — all in one loop.
- Multi-file debugging. A section not rendering the right metafield? Claude Code reads the template, section, snippet, and schema, traces the data flow, and proposes a fix across files.
- Refactors and migrations. Moving from an older theme architecture to Online Store 2.0 sections, renaming settings across files, updating deprecated Liquid tags. It handles cross-file coordination and runs verification commands.
Cursor wins at:
- Daily Liquid editing. Tab completion while writing template logic, object access, and filter chains. When you know what you want to write, autocomplete gets you there faster than describing it to an agent.
- Quick schema tweaks. Adding a setting, changing a default, adjusting a range. Inline editing with immediate feedback.
- CSS and styling. Visual diffs and fast iteration on design changes.
Codex wins at:
- Parallel workstreams. Building multiple sections at once, running separate agents for different parts of a storefront build. Both Codex and Claude Code support git worktrees for isolation, but Codex's desktop UI makes managing multiple parallel agents more visual.
- Scheduled automation. CI failure summaries, issue triage, routine code reviews — Codex Automations handle recurring tasks that Claude Code and Cursor require manual triggering for.
- Team review workflows. The built-in review queue means multiple developers can assign, review, and approve agent outputs in one place.
| Task | Best tool | Why |
|---|---|---|
| New section from scratch | Claude Code | Autonomous planning, reads existing patterns |
| Quick Liquid edits | Cursor | Tab completion is faster for small changes |
| Schema modifications | Cursor | Inline editing with immediate preview |
| Multi-file debugging | Claude Code | Traces data flow across sections/snippets |
| Building multiple sections at once | Codex or Claude Code | Both support worktrees; Codex has visual multi-agent UI |
| Theme migrations | Claude Code | Cross-file coordination + shell access |
| CSS and styling | Cursor | Visual diffs and fast iteration |
| Build pipeline / CI | Claude Code or Codex | Both have native shell and git integration |
| Scheduled maintenance tasks | Codex | Automations run recurring tasks on schedule |
| Code review prep | Claude Code or Codex | Both can analyze changes and generate summaries |
The setup that actually works
The answer for most Shopify developers is not picking one tool. It is a layered stack:
- Shopify Dev MCP server on all your tools — eliminates hallucinations about Liquid, schemas, and APIs
- Project context files (
CLAUDE.md,.cursorrules, Codex Skills) encoding your theme's conventions, valid setting types, and architectural rules - The right tool for the task — Cursor for interactive editing, Claude Code for autonomous work, Codex when you need parallel agents or team coordination
The MCP server handles the knowledge problem. The project context handles the convention problem. The tools handle the execution. Pick the tool that matches the task, not the one that sounds more modern.