Plenty of people who run a store already have a coding agent open all day. Until now, the PlatformDTC store builder was the only agent that could work on a PlatformDTC theme. That changes today: you can build and publish your storefront theme with Claude Code, Codex, Cursor, or any client that speaks the Model Context Protocol.
Your agent works on the same theme the dashboard editor opens and the publish pipeline deploys. There is no export and no sync step. A change your agent makes is in the editor the next time you open it, and a publish puts exactly that live.
Connect in one command
The theme server lives at one address. In Claude Code:
claude mcp add --transport http platformdtc-theme https://api.platformdtc.com/mcp/themeThen run /mcp and sign in. In Codex it is codex mcp add followed by codex mcp login; in Cursor, one entry in .cursor/mcp.json. Your browser opens PlatformDTC, you choose which store the connection is for, and you choose what it may do. Leave publishing unticked and the agent can build and preview but never publish. There is no key to paste and no client ID to copy: sign-in is OAuth 2.1, and the access your agent holds is bound to that one store and expires after an hour unless it is refreshed.
The same setup instructions, with copy buttons, are in the dashboard under Settings, then Developer, then Build with your agent.
Ask for what you want
From there you describe the change in plain language — a section under the hero listing what is in your product, a different product page layout, new colours — and the agent works through a fixed loop: create a development theme copied from your live one, read the theme’s manifest and files, write the change, run theme check, and hand you a preview link. Your live store does not change while it works.
Templates are data, sections are React
PlatformDTC themes follow the model Shopify’s Online Store 2.0 made familiar. A page template is JSON: which sections the page has, in what order, with what settings. The sections themselves are React components, each with a settings schema. Because a page is data rather than source code, a template that uses existing sections cannot fail to compile, and you and your agent can edit the same theme without undoing each other’s work — the editor reads what the agent writes, and the agent reads what you save.
When no existing section does what your store needs, the agent writes one. A React component in theme/custom/sections/ with its schema becomes a section type like any other: it appears in the editor’s Add section picker, you edit its settings in the sidebar, and the same component renders the preview and the live store. If a custom section throws, only that section disappears; the rest of the page keeps rendering.
Safe by construction, not by hoping
Letting an outside agent edit a live store needs rules it cannot talk its way past.
- Every file has an owner. Templates, your custom sections, your styles and assets are yours to change. Files the platform maintains for every store are refused the moment an agent tries to write them — with an error it can read and act on — rather than accepted and silently reverted the next time you publish.
- Nobody’s changes are overwritten. An agent sends the checksum of the file it last read. If you saved that file in the editor since, its write is refused instead of replacing your work.
- Every write is a version. Each batch of changes is saved with the name of the agent that made it, and you can roll back to any version.
- Publishing waits for you. By default a publish from an agent is held until you approve it under Theme publish approvals. You can switch a store to publish automatically if that is how you want to work.
- No new dependencies. Custom sections can import React, the storefront’s own components and their own files. An agent cannot add npm packages to your store.
One theme check, everywhere
Before anything is published, the theme is checked against nine rules: JSON and templates are valid, imports resolve, no platform file is overridden, TypeScript compiles, and the store carries no placeholder content — no href="#" links, no lorem ipsum or “Coming soon”, no images without a source. Hard-coded star ratings and review counts are flagged too, because a rating a customer sees should come from real reviews. It is the same check in the CLI, in the local MCP server, in the API and at publish, so a theme that passes on your laptop passes on the server.
Prefer a terminal?
@platformdtc/cli puts a theme in a local folder: dtc login, then dtc theme pull, dev, check, share and publish. A separate local MCP server, @platformdtc/dev-mcp, gives an agent the documentation, the section schemas and theme check without any access to your store at all. For automation, the same operations are REST endpoints on the Agent Gateway, under the scopes read_themes, write_themes and publish_themes.
Get started
The quickstarts for Claude Code, Codex and Cursor take a few minutes each. The overview explains how it fits together, and the custom sections guide has a complete, working section to start from.