llms.txt Generator

Build a valid llms.txt for your site — summary, background, and the links you want a model to read first. Everything runs in your browser; nothing is uploaded.

Your llms.txt

Save this as llms.txt at the root of your domain — it must be reachable at /llms.txt.

# Your Project

## Docs

- [Getting started](https://example.com/docs): Install and first run

What is llms.txt for?

It gives a model a curated, LLM-readable map of your site so it does not have to guess from your homepage. Search crawlers have all the time in the world; a language model answering a question about your product has a context window, and it fills that window with whatever it happens to fetch first — which, on most sites, is a marketing page full of navigation and social proof and very little of what the product actually does. llms.txt is a single Markdown file that fixes that: an H1 with your name, a one-line summary in a blockquote, optional background, then curated sections of links with a short note on each.

The format is deliberately boring. It is Markdown so a model can read it without a parser, it is at a predictable path so nothing has to guess, and it is short so it costs almost nothing to include. The file itself stays small enough to fit in context; the detail lives behind the links and is fetched only when needed.

What exactly goes in an llms.txt file?

Six things, in a fixed order, and only one of them is required. The spec is unusually precise for something this small — it is Markdown so a model can read it, but structured enough that a regex can parse it — so it is worth matching exactly rather than approximately.

The llms.txt file structure, in the order the specification requires
ElementStatusWhat it is
Byte-order markOptionalAllowed, first if present. You almost certainly do not want one.
H1 with the project or site nameRequiredThe only required element in the entire spec.
Blockquote summaryOptionalA short summary carrying the key information needed to understand the rest of the file.
Markdown sections (no headings)Zero or moreParagraphs and lists giving more detail about the project and how to interpret the files listed below.
H2 sections containing file listsZero or moreEach list item is a required markdown link [name](url), then optionally a colon and notes about that file.
An H2 named “Optional”By conventionSecondary information — links an agent can skip when a shorter context is needed.

The generator above emits exactly this shape, so what you download is valid without editing. The one rule worth internalising is the Optional section: the spec defines it as links an agent can skip when a shorter context is needed, so it is the part you are volunteering to lose. Put your changelog and legal pages there, and nothing you would mind being dropped.

Does anyone actually read llms.txt?

Yes — the AI labs publish their own. On 25 August 2026 we fetched each of the following and got real llms.txt markdown back, not a soft 404. Chrome’s Lighthouse also audits sites for one as part of its agentic browsing checks.

Organisations serving an llms.txt file, verified on 25 August 2026
OrganisationFile
OpenAIdevelopers.openai.com/llms.txt
Anthropicdocs.anthropic.com/llms.txt
Google (Gemini API)ai.google.dev/gemini-api/docs/llms.txt
Perplexitydocs.perplexity.ai/llms.txt
Stripedocs.stripe.com/llms.txt
Vercelvercel.com/llms.txt
Next.jsnextjs.org/llms.txt
GitHub Docsdocs.github.com/llms.txt
Cloudflarewww.cloudflare.com/llms.txt

What none of that proves is that a model will fetch your file on a given question, and anyone telling you otherwise is selling something. The honest case for shipping one is that it costs five minutes and a single file, it cannot hurt you, and it is useful documentation for anything that fetches your site — including your own tooling. We publish our own at /llms.txt, generated from the same format this tool emits.

How is llms.txt different from robots.txt and sitemap.xml?

robots.txt is a permission file, sitemap.xml is an inventory, and llms.txt is a briefing. robots.txt is read before crawling to decide what a bot may touch; llms.txt is read on demand, when an agent already needs information about your product and wants the shortest path to it. Publishing an llms.txt grants no access that robots.txt denies.

Against a sitemap the distinction is about size and curation. The spec gives three reasons a sitemap cannot stand in: it usually does not list the LLM-readable versions of your pages, it never includes external URLs even when those would help, and in aggregate it covers far more than fits in a context window — most of it irrelevant to understanding the site. A sitemap is written for a crawler that will read everything eventually. An llms.txt is written for a reader that will read one file, once.

What changed in llms.txt v2?

Three things worth acting on, from the v2 spec published on 10 August 2026. First, the file no longer belongs only at the site root: /docs/llms.txt covers everything under /docs/, and where several files apply an agent should use the most specific one. That matters if you only control a path on a shared host.

Second, discovery via standard link relations: rel="alternate" type="text/markdown" points at a page’s markdown version and rel="describedby" points at the llms.txt that covers it. Both work as HTML <link> elements or as an HTTP Link: response header — and the header form can be added at the CDN without touching a single page.

Third, the .md companion pages, which is the half almost everyone skips. The spec proposes serving a clean markdown version of each important page at the same URL with .md appended or the extension replaced, so the links inside your llms.txt lead somewhere a model can read cheaply rather than back into HTML.

What should you put in yours?

Aim for the ten links that would let a competent stranger explain your product back to you. In practice that is your docs index, a quickstart, an API or pricing reference, one or two representative examples, and your changelog under Optional. Write the notes for a reader who has never heard of you: “Getting started” means nothing on its own, while “Getting started: install the CLI and index your first repo” carries real information at almost no token cost.

Skip anything gated, anything that 404s for logged-out visitors, and anything you would not want quoted back at you. And keep it current — a stale llms.txt is worse than none, because it confidently describes a product you no longer ship. If your file is generated from live data rather than hand-maintained, it cannot drift; that is why ours is generated from the categories and posts the site actually serves and rebuilt daily.

While you are shipping files

The same instinct applies to your meta tags and your social preview — machines read your site far more often than people do, and each of these is a five-minute job. If your product is live, list it on Launchory so humans can find it too, or browse what other founders have shipped and the developer tools category.

Questions people ask

What is llms.txt?

A plain-Markdown file at /llms.txt that gives language models and agents a curated, LLM-readable map of your site: an H1 with your name, a blockquote summary, optional background prose, and H2 sections of annotated links. It was proposed by Jeremy Howard on 3 September 2024; version 2 of the spec was published on 10 August 2026.

Where do I put the llms.txt file?

At the root of your domain, reachable at https://yourdomain.com/llms.txt, served as text/plain or text/markdown. The spec also allows it at any subpath — /docs/llms.txt covers everything under /docs/ — and says agents should use the most specific file that applies. In Next.js, drop it in /public or generate it from a route.

Does anyone actually read llms.txt?

Adoption is real and no longer speculative. On 25 August 2026 we fetched llms.txt files served by OpenAI, Anthropic, Google’s Gemini API, Perplexity, Stripe, Vercel, Next.js, GitHub Docs and Cloudflare, all returning real markdown. Chrome’s Lighthouse now audits sites for one as part of its agentic browsing checks. What no provider does is guarantee that a given model will fetch yours on a given query.

What is the exact llms.txt format?

In order: an optional byte-order mark, an H1 with the project name (the only required element), a blockquote summary, zero or more heading-free markdown sections, and zero or more H2-delimited sections containing file lists. Each list item is a required markdown link [name](url) followed optionally by a colon and notes.

What should go in the Optional section?

Anything a model can skip when it is short on context — changelogs, archived posts, legal pages. The spec is explicit that "Optional" means links an agent can skip when a shorter context is needed, so treat it as the part you are choosing to sacrifice first and put nothing important there.

How is llms.txt different from robots.txt?

They answer different questions. robots.txt tells automated tools what access to your site is acceptable — it is a permission file, read before crawling. llms.txt is used on demand, when an agent already needs information about your product and wants the fastest path to it. One gates access; the other guides comprehension. Publishing llms.txt grants no access that robots.txt denies.

How is llms.txt different from sitemap.xml?

A sitemap lists every indexable page for a search crawler; llms.txt is a curated overview for a model with a finite context window. The spec gives three concrete reasons a sitemap is not a substitute: it usually does not list the LLM-readable versions of pages, it never includes helpful external URLs, and in aggregate it covers far more than fits in a context window.

What changed in llms.txt v2?

The v2 spec, published 10 August 2026, formalised placing llms.txt at any subpath rather than only the site root, and it recommends standard link relations so clients can find these files: rel="alternate" type="text/markdown" pointing at a page’s markdown version, and rel="describedby" pointing at the llms.txt that covers it. Both can be sent as HTML link elements or as an HTTP Link: response header, which means a CDN can add them without touching any page.

Should I also publish .md versions of my pages?

The spec proposes it, and it is the half most sites skip. The recommendation is to serve a clean markdown version of each important page at the same URL with .md appended (page.html.md) or the extension replaced (page.md), and for URLs without a filename to use index.md. The point is that the links inside llms.txt should lead to LLM-friendly content, not back into HTML wrapped in navigation.

Is llms.txt about training or about answering questions?

Answering questions. The spec’s own expectation was that llms.txt would be used for inference rather than training, and that is how it has been used in practice — an agent fetches it while helping someone, not while a model is being built. Publishing one is not consent to be trained on, and withholding one is not a way to opt out.

How long should my llms.txt be?

Short enough to fit comfortably in a context window alongside the question being asked. Aim for roughly ten links: the docs index, a quickstart, an API or pricing reference, one or two representative examples, and the changelog under Optional. Detail belongs behind the links, which are fetched only when needed.

Is this generator free, and does it upload my content?

It is free with no sign-up, and it uploads nothing. The file is assembled in your browser from what you type and never leaves it — you can disconnect from the network after the page loads and it still works.

More free founder tools.