llms.txt v2: what an agent actually reads A developer tested the August 2026 revision of the llms.txt proposal, running this site's own /llms.txt through the proposal's roughly twenty-line reference parser (llms_txt/miniparse.py) and finding that it crashed. The v2 changes define how agents discover the file: hierarchical /docs/llms.txt scoping with most-specific-file precedence, .md and .html.md Markdown variants, and rel="alternate" type="text/markdown" plus rel="describedby" link relations delivered via HTML head or HTTP Link headers, while ## Optional loses its special meaning. The note includes a JavaScript port of the parser and helper functions for resolving covering llms.txt files and Markdown URLs. This note has an interactive demo. Try it in the original https://richi.codes/article/2026-10-23-llms-txt-v2-what-an-agent-actually-reads The llms.txt proposal got its first big revision in August 2026, and the changes answer the obvious question nobody could answer before: given a page, how does an agent find the llms.txt that describes it? I read the new text, ran this site's own /llms.txt through the small reference parser that lives in the proposal's repository, and it crashed. The demo above shows both things: what a parser really gets out of the file, and how an agent walks from a page to its llms.txt and its Markdown version. It's a Markdown file that gives agents a curated entry point into a site: a name, a short summary, some context and lists of links to LLM-friendly content. Jeremy Howard published the original in September 2024. It's still a proposal "open for community input", not a W3C or IETF standard. The text is clear about what it's for: robots.txt says what automated access is acceptable, while llms.txt "is instead used on demand, when an agent needs information about a topic while assisting a user". It's meant for inference, not training. The Changes page lists four things: /docs/llms.txt covers everything under /docs/ , and "where more than one file applies, agents should use the most specific one". This is what lets a GitHub Pages project site, which can't touch the host root, take part. .md appended page.html.md . v2 also allows replacing the extension page.md . URLs without a file name use index.html.md or index.md . rel="alternate" type="text/markdown" points to a page's Markdown version and rel="describedby" points to the llms.txt that covers it, either as