Format guide

llms.txt specification.

This is a practical reading of the official llms.txt proposal, v2 (August 2026), by Jeremy Howard. The authoritative document is llmstxt.org. Use this page when you need implementation notes without replacing the source.

Several unofficial write-ups still say H2 sections are required, that the file may only live at the origin root, or that a heading named Optional is skipped by parsers. Those claims are not in v2. This page follows llmstxt.org.

Required order

Markdown in a fixed sequence.

  1. 1. Optional UTF-8 byte-order mark
  2. 2. H1 with the project or site name — the only required section
  3. 3. Optional blockquote summary
  4. 4. Optional preamble: any Markdown except headings
  5. 5. Zero or more H2 sections, each a file list of Markdown links
Format sketch
# FastHTML
> FastHTML is a python library which brings together Starlette, Uvicorn, HTMX,
> and fastcore's FT "FastTags" into a library for creating server-rendered
> hypermedia applications.

Important notes:
- It is not compatible with FastAPI syntax.
- It works with vanilla JS components, not with React, Vue, or Svelte.

## Docs
- [FastHTML quick start](https://fastht.ml/docs/tutorials/quickstart_for_web_devs.html.md): A brief overview of many FastHTML features.

## Optional
- [Starlette notes](https://example.com/starlette.md): Background useful for FastHTML development.

How to read the structure

A few parts do most of the work.

# Title

Use a level-one heading for the organization, product, or website name. This is required.

> Summary

Add a short blockquote that orients the reader in one or two sentences.

Preamble

Extra notes may follow, but they cannot introduce new headings.

## File lists

Each H2 contains list items with a required [name](url), then an optional colon and notes.

Location

Root or subpath, most specific wins.

v2 places llms.txt at the site root or at any path within it. /docs/llms.txt covers pages under /docs/. That is why the proposal rejects /.well-known/llms.txt as the only home: many authors control a path, not the origin.

https://example.com/llms.txt

Covers the whole origin. The usual request if you only publish one file.

https://example.com/docs/llms.txt

Covers documentation under /docs/. Preferred when docs are the main agent use case.

Both published

Agents should use the most specific file that applies to the URL they care about.

Discovery

Link relations, Markdown twins, and Link headers.

Pages agents might need should also offer a clean Markdown version at the same URL with .md appended or the extension replaced. Use page.html.md or index.md as described on llmstxt.org.

rel="alternate" type="text/markdown"

Points to the Markdown version of that page.

rel="describedby"

Points to the llms.txt file that covers the page.

HTTP Link header
Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"

Implementation checklist

Stay inside the proposal.

The specification is deliberately lightweight. These choices keep the result useful without inventing extra required sections.

Keep the H1 accurate

It is the only required section. Do not skip it.

Prefer Markdown link targets

llms.txt should point to LLM-friendly content when those copies exist.

Use Optional as a convention

Secondary links belong there. Parsers are not required to drop the section.

Do not require llms-full.txt

That filename is ecosystem practice, not the official spec.

Leave out private information

Only include pages and details intended to be public.

Do not confuse the files

Three files, three jobs.

robots.txt

Crawler access rules. It can allow or disallow paths, but it does not explain the meaning of a page.

sitemap.xml

URL discovery. It helps crawlers find pages, but it is not an editorial guide to where a reader should begin.

llms.txt

Human-readable orientation for agents, used on demand rather than as a training or ranking feed.

Common questions

Specification questions, answered.

Is llms.txt an official web standard?

No. It is a proposal by Jeremy Howard, documented at llmstxt.org. It is not a W3C or IETF standard and browsers do not enforce it. Documentation platforms and some audits already look for the file.

What is required in the llms.txt format?

Only the H1 with the project or site name is required. Everything else is optional but useful: a blockquote summary, a heading-free preamble, and H2 sections of file lists.

Does the file have to live at the website root?

No. v2 allows /llms.txt at the origin root or at any subpath, such as /docs/llms.txt. A file covers URLs under its path. When more than one file applies, agents should use the most specific one.

Is a heading named Optional a parser rule?

No. By convention, an H2 titled Optional holds secondary links an agent can skip when context is tight. It is not a mechanical skip flag in the spec.

Is llms-full.txt part of the specification?

No. Some tools emit a larger companion file named llms-full.txt. That name is not defined on llmstxt.org. The official file is llms.txt.

How should agents discover the file?

They can request /llms.txt or a more specific subpath file. Authors can also advertise it with rel="describedby", and point to Markdown page copies with rel="alternate" type="text/markdown", in HTML or as an HTTP Link header.