What it is#
A markdown file at /llms.txt listing what your site contains, in prose a model can read directly. No schema to validate against, no required fields, no registry. It is closer to a well-written README than to a specification.
A reasonable one for an API business names what the service does, lists the important endpoints with one line each, points at the documentation, and says how to pay.
What it is good for#
One thing, done well: removing the parsing step for a model that has already arrived.
Without it, a model reaching your domain gets HTML. It has to strip navigation, work out which text is content, decide which of forty links matter, and reconstruct your structure from headings and CSS classes. That works, imperfectly, and burns context doing it.
With it, the model reads a short markdown document that says what you offer and where. The difference is not that one is possible and the other is not. It is accuracy and cost: a condensed, authored summary is more likely to be understood correctly than one reconstructed from markup.
Note
The honest framing is that llms.txt is a courtesy, not an interface. Nothing requires a model to fetch it and plenty do not. Writing one is cheap and the downside is zero, which is a good enough reason without overstating what it does.
What it is not#
It is not discovery. This is the most common misunderstanding. A file at your domain can only be read by something that already knows your domain. It does nothing for an agent that has never heard of you, which is almost all of them. How agents actually find you covers the routes that do.
It is not a standard. It is a convention that spread by adoption. There is no ratified specification, no conformance test and no registry. Documentation describing it as a standard is overstating it.
It is not a payment or capability declaration. It is prose. If you want an agent to know your prices and terms in a form it can act on, that belongs in your 402 response and in catalogue registrations, not in a markdown file.
What should go in it#
Short, specific, and oriented to what a reader would do next.
| Include | Skip |
|---|---|
| What the service does, in one sentence | Marketing copy |
| The handful of endpoints that matter | An exhaustive route list |
| Where the full documentation lives | Duplicating the documentation |
| How to pay, and whether an account is needed | Pricing tiers in detail |
| Links to machine-readable versions of your pages | Anything you would not stand behind |
The last row is the highest-value item and the one most files omit. If you serve a markdown version of each page at its URL plus .md, say so and link some of them. That turns one courtesy file into a map of a whole machine-readable site.
How does it relate to agent cards and well-known files?#
Three different jobs, often conflated.
llms.txtis prose for a model: what this site is.- An agent card is structured JSON for another agent: what this agent can do and how to call it.
/.well-known/x402or a facilitator's equivalent is structured data for a buyer: what is priced here and on what terms.
A site can publish all three and most publish none. If you are picking one, pick whichever matches the reader you want: a model summarising you, an agent delegating to you, or a buyer paying you.
Linking the structured ones from llms.txt is a cheap way to make a model that only reads the prose file aware that the others exist.
Does it help with search and assistant citations?#
Indirectly, and less than its advocates claim.
What demonstrably helps a page get quoted accurately is the page itself: an answer in the opening paragraph rather than after preamble, headings that are the questions people ask, short paragraphs, tables for facts, and claims with a source and a date attached. An llms.txt file helps a model navigate to the right page; it does not make the page quotable.
The one measurable benefit is that a condensed index reduces the chance of a model summarising the wrong part of your site, which is a real failure mode when your navigation is large and your content is deep.
Frequently asked questions#
Does it replace robots.txt or a sitemap?#
No. Those are for crawlers and serve different purposes: access rules and a URL inventory. llms.txt is a human-authored summary for a reader. Publish all three.
How long should it be?#
Short enough to be read in full, which in practice means well under a few thousand words. A file that costs as much context as the site it describes has defeated its own purpose.
Will a model definitely read it?#
No. Some fetch it, many do not, and behaviour changes between versions. Treat it as a cheap improvement rather than a guarantee.
Should I list every page?#
No. List the ones that matter and link the sitemap for the rest. An exhaustive list is a sitemap with worse formatting.
Can I put instructions to the model in it?#
You can write anything, and treating it as a channel for instructions is a mistake. Models vary in how they handle it, and content that reads as an attempt to steer behaviour is likely to be ignored or treated as untrusted. Describe your site.
Where to check this yourself#
Roundhouse publishes its own at /llms.txt, listing every surface on the site including the machine-readable twin of each page. It is a working example of the pattern described above rather than a specification, and the structure is worth copying more than the content.
