How to write an llms.txt for your site (with a copy-paste template)
The spec is one H1, a blockquote, and H2 link lists: five minutes of work. The exact format, a template, three live examples, and what llms-full.txt actually is (not the spec).
You don’t need a generator: an llms.txt is a small markdown file you can write by hand in five minutes. The spec (proposed by Jeremy Howard, September 2024) wants exactly this shape: one H1 with your site’s name (the only required part), a blockquote summary, optional free-form notes, then H2 sections containing link lists. Serve it at /llms.txt. Template below. One calibration before you start: publishing costs nothing, but consumption is still unproven. Write it in minutes precisely because it may only ever be read by the occasional agent someone points at it.
The format, exactly
From the spec at llmstxt.org: a markdown file whose sections come in this order: an H1 with the project or site name (“the only required section”); a blockquote with a short summary; zero or more plain markdown blocks (paragraphs, lists; no headings) with any detail worth having up front; then zero or more H2-delimited link lists, where each entry is [name](url) optionally followed by a colon and a note. An H2 named Optional has special meaning: links there can be skipped when a reader needs shorter context. Put secondary material in it.
A template you can paste
# Acme Widgets > Acme makes self-serve widget hosting for small teams. > Plans start free; paid tiers add SSO and audit logs. Key facts: founded 2024, EU-hosted, SOC 2 in progress. ## Docs - [Quickstart](https://acme.example/docs/quickstart): install and first widget in ten minutes - [Pricing](https://acme.example/pricing.md): current plans and limits, in markdown ## Policies - [Terms of service](https://acme.example/terms) - [Privacy](https://acme.example/privacy) ## Optional - [Changelog](https://acme.example/changelog) - [Blog](https://acme.example/blog)
The spec’s own authoring advice is the kind that applies to all writing: “Use concise, clear language. When linking to resources, include brief, informative descriptions.” Link your most answer-shaped pages (docs, pricing, policies), not your whole sitemap; a curated map is the point, the sitemap already exists.
Three live examples worth imitating (or not)
- llmstxt.org/llms.txt. The spec’s own file, and the textbook minimal case: H1, blockquote, one
## Docslist with annotated links. - docs.openclaw.ai/llms.txt. A good real-world one: a documentation map plus the companion convention of serving every docs page as markdown (append
.mdto any URL). - platform.claude.com/llms.txt. A loose interpretation (no blockquote, bare URLs), which tells you something useful: this is a convention, not a validator. Nothing breaks if you deviate; following the shape just makes the file more predictable to parse.
About llms-full.txt
You’ll see sites shipping an llms-full.txt with entire documentation inlined into one file. Worth knowing: that file is not part of the spec. The proposal never mentions it (it defines tool-generated llms-ctx.txt variants instead). “llms-full” is an ecosystem convention popularized by documentation platforms, and real examples exist (Anthropic’s and OpenClaw’s doc sites both serve one). Ship one if your docs tooling generates it for free; don’t hand-maintain a concatenated copy of your site.
Calibrate your expectations
The spec itself frames consumption as aspirational (“perhaps if llms.txt usage becomes widespread…”), Google has said it doesn’t use the file, and our what-is-llms.txt guide walks the evidence on who actually reads it (fewer than you’ve heard). Two things make it worth five minutes anyway: an agent that’s handed the URL parses it beautifully (it’s a great answer to “where do I point my agent at your docs?”), and it slots into the broader agent-readability checklist as the cheapest item on the list. Generate it from your content registry if you can, and it will never drift.