Shopify llms.txt: AI Discovery Files, App Modification, and the Risks of Auto-Updating at Install
- Shopify auto-generates
/llms.txt,/llms-full.txt, and/agents.mdfrom store config — they are not static files. Merchants can override them via Liquid templates. - A Shopify app can write these templates via
themeFilesUpsert, butwrite_themesis a protected scope requiring formal exemption. Most apps that apply are rejected. - The file that actually controls which payment methods AI shopping agents offer at checkout is
/.well-known/ucp— a Shopify-managed JSON Krepling cannot write to directly. - Recommended path: Build as a Checkout Extension first (gets Krepling into
/.well-known/ucpautomatically), then offer merchants a metafield bridge + copy-paste Liquid snippet instead of auto-injecting theme files.
The llms.txt Standard
Created by Jeremy Howard (Answer.AI) in September 2024, llms.txt is a proposed convention — not an IETF or W3C standard — for helping LLMs find concise, structured information about a website. The format is minimal Markdown: an H1 title is the only required element, optionally followed by a blockquote summary, body paragraphs, and H2 sections with link lists.
llms-full.txt is a community convention: a single file concatenating the full content of all pages linked from llms.txt. /agents.md is Shopify's canonical file; the other two mirror it by default.
Major AI shopping crawlers (Google, ChatGPT, Bing) do not consume llms.txt for product discovery or checkout decisions. As of mid-2026 it is actively used primarily by AI dev tools like Cursor and Claude. For Shopify's agentic storefronts, the operative files are /agents.md and /.well-known/ucp.
File relationships
| File | Origin | Who reads it | Affects checkout? |
|---|---|---|---|
/llms.txt | Shopify platform (mirrors /agents.md) | Dev tools (Cursor, Claude) | No |
/llms-full.txt | Shopify platform (expanded mirror) | Dev tools | No |
/agents.md | Shopify platform (canonical) | AI shopping agents, crawlers | Indirectly |
/.well-known/ucp | Shopify internal app graph | Google AI Mode, Gemini, ChatGPT checkout | Yes — directly |
How Shopify Implements These Files
Shopify silently rolled out platform-generated versions of all three files for all stores in late April / May 2026, officially documented May 29, 2026. By default, these files are dynamically generated by Shopify's platform from the store's config (store name, domain, sitemap URL, policy pages). They are not theme files and do not appear in the theme editor or file system.
Merchant customization via Liquid override
Merchants can replace the platform default by creating Liquid templates in their active theme:
templates/agents.md.liquid
templates/llms.txt.liquid
templates/llms-full.txt.liquid
A custom template fully replaces the platform-generated version — there is no merging or append mechanism.
Any template Krepling writes must preserve Shopify's native UCP and MCP links. Omitting them removes the merchant from Google AI Mode and ChatGPT shopping entirely — a significant liability.
What the default /agents.md contains
- Store name and URL
- Sitemap URL (
/sitemap.xml) - Policy page links (privacy, refund, ToS)
- Links to Shopify's UCP and MCP endpoints
- Product catalog feed URL (Shopify Catalog)
The /.well-known/ucp File — The Actual Payment Signal
This is the file that matters for Krepling's core goal. /.well-known/ucp is a Shopify-managed JSON endpoint listing payment methods available for direct in-chat AI checkout. By default it includes "Google Pay" and "Shopify Card". When a merchant installs a payment extension, that extension's identifier is automatically added here by Shopify's internal app graph.
This file cannot be overridden via Liquid or written to via the Theme API. The only legitimate way to get Krepling into this file is to be a registered Shopify Checkout Extension.
Krepling's clearest path to AI checkout discovery is not modifying llms.txt at all — it's building as a Checkout Extension. That's what populates /.well-known/ucp, which Google AI Mode and ChatGPT shopping actually read when deciding which payment options to offer.
Can a Shopify App Modify These Files?
Technically yes — via the themeFilesUpsert GraphQL mutation, writing to key templates/agents.md.liquid on the merchant's active theme. But the required scope is the problem.
The write_themes scope
write_themes has been a protected scope since April 2023. To use it in an App Store app, the app must receive a formal exemption from Shopify Partner support before submission. Shopify grants exemptions to four narrow categories:
- Theme developers (the theme itself modifies its own files)
- Page builder / visual editor apps (Pagefly, Shogun, etc.)
- SEO / sitemap tooling with documented, specific use cases
- Accessibility tools with documented need for DOM-level changes
Krepling's best argument would be "SEO/AI discovery tooling" — plausible but inconsistently enforced. Without exemption, any app submitted with write_themes is automatically rejected.
Runtime requirement even with exemption
Even if Shopify grants the exemption, app review requires a runtime merchant consent prompt. Silent injection at install-time is a violation regardless of scope approval.
App Review Risks
Shopify's app review policy states plainly: "Your app shouldn't add, remove, or edit a merchant's theme files." Apps that do this without a pre-approved exemption are automatically rejected at review — no appeals at that stage.
Risk summary
- No exemption → automatic rejection. Writing
templates/agents.md.liquidat install without prior approval fails review. - Exemption process is slow. Partner support requests take 2–6 weeks; outcome not guaranteed; reviewers are inconsistent.
- Silent injection is banned regardless. Even with exemption, auto-injecting at install without merchant UI consent violates review guidelines separately.
- Template replacement breaks native discovery. A bad template omitting Shopify's UCP links removes the merchant from AI storefronts entirely.
- Theme switch invalidates the write. If a merchant switches themes, the injected template is gone. Re-injection on
themes/publishwebhook adds further complexity and another scope call.
What Krepling Pay Should Actually Do
Steps 1 and 2 are the right move immediately. Step 3 is a future option if fully automatic injection becomes a hard product requirement.
This is what gets Krepling into /.well-known/ucp automatically — the file AI shopping agents actually read for payment options. No theme writes, no exemption, no review risk. Krepling appears as a checkout option in Google AI Mode, Gemini, and ChatGPT in-chat checkout the moment the merchant installs the extension.
At install, Krepling writes a shop-level metafield (requires only write_metaobjects). The onboarding flow shows a one-time copy-paste snippet for templates/agents.md.liquid that reads from this metafield. Krepling can update the metafield content any time — the template reflects it automatically without further merchant action.
If fully automatic injection is a hard requirement: apply to Shopify Partner support framed as "AI discovery tooling" — before App Store submission. If granted: check for existing template before writing, never overwrite a custom template, always include Shopify's native UCP links, delete on uninstall, re-inject on themes/publish webhook. Implement with explicit merchant consent UI.
Automatically updating llms.txt at merchant install carries real app review risk and a high-liability bug surface. The safer and more impactful approach is the Checkout Extension path — it directly populates /.well-known/ucp, the file llms.txt modifications cannot touch anyway.