Shopify AI Discovery Brief

Enter your access token to view this document.

Krepling Pay — Research Brief

Shopify llms.txt: AI Discovery Files, App Modification, and the Risks of Auto-Updating at Install

Deep research · 15 primary sources July 10, 2026 Re: Basab's question in #krepling
Key Findings
  • Shopify auto-generates /llms.txt, /llms-full.txt, and /agents.md from store config — they are not static files. Merchants can override them via Liquid templates.
  • A Shopify app can write these templates via themeFilesUpsert, but write_themes is 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/ucp automatically), 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.

Important caveat

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

FileOriginWho reads itAffects checkout?
/llms.txtShopify platform (mirrors /agents.md)Dev tools (Cursor, Claude)No
/llms-full.txtShopify platform (expanded mirror)Dev toolsNo
/agents.mdShopify platform (canonical)AI shopping agents, crawlersIndirectly
/.well-known/ucpShopify internal app graphGoogle AI Mode, Gemini, ChatGPT checkoutYes — 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.

Critical implementation risk

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.

Strategic insight

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

Hard rule — automatic rejection

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.liquid at 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/publish webhook 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.

1
Build as a Shopify Checkout Extension Do first

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.

2
Metafield bridge + copy-paste Liquid snippet Safe, no review risk

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.

3
Apply for write_themes exemption (optional, future) Optional

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.

Bottom line

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.