llms-full.txt is the expanded companion to llms.txt. Where llms.txt is a curated directorythat links out to your pages, llms-full.txt inlines the actual content of those pages into a single file — so an LLM gets your whole documentation in one request instead of fetching each page one by one. Roughly two-thirds of sites with an llms.txt skip it, which makes it both a common mistake and an easy way to stand out.
llms.txt vs llms-full.txt
Same source, two outputs. Ship both.
| llms.txt | llms-full.txt | |
|---|---|---|
| Role | Index / table of contents | Full content, inlined |
| Contains | Links to pages | The pages themselves |
| Agent fetches | Then follows each link | Everything, in one request |
| Path | /llms.txt | /llms-full.txt |
Why ship llms-full.txt?
Fetching context one page at a time is slow and lossy — agents miss pages, hit rate limits, or stop early. A single llms-full.txt lets a model load your entire documentation in one fetch, which improves the accuracy and completeness of anything it generates or answers about your product. It’s the difference between an agent skimming your site and an agent reading all of it.
How do I generate llms-full.txt?
Build it from the same source as your llms.txt, at deploy or request time — don’t hand-maintain it, or it will drift from your real content. Take the pages your llms.txt links to and concatenate their actual content (headings, prose, code) into one file at /llms-full.txt:
// app/llms-full.txt/route.ts
import { getDocPages } from "@/lib/docs";
export async function GET() {
const pages = await getDocPages(); // same source as llms.txt
const body = [
"# Acme — full documentation",
"",
"> The complete Acme docs, inlined for LLM context.",
"",
...pages.map((p) => `## ${p.title}\n\n${p.markdown}`),
].join("\n");
return new Response(body, {
headers: { "Content-Type": "text/plain; charset=utf-8" },
});
}Serve it as text/plain so agents (and the L9 content-type check) treat it as a plain text document, not HTML.
Who should ship it?
Anyone who already publishes an llms.txt and has real documentation worth loading in full — developer tools, APIs, products with guides. If your llms.txt is just a handful of marketing links, the full companion adds little; if it indexes a real docs set, shipping llms-full.txt is one of the highest-leverage things you can do for AI answer quality. Validate both with the llms.txt checker (it covers llms-full.txt as check L10).
Frequently asked questions
- What is llms-full.txt?
- llms-full.txt is the expanded companion to llms.txt. Where llms.txt is a curated directory that links out to your pages, llms-full.txt inlines the actual content of those pages into a single file — so an LLM gets your whole documentation set in one request instead of fetching each page individually.
- How is llms-full.txt different from llms.txt?
- llms.txt is an index: an H1, a summary, and H2 sections of links to your key pages. llms-full.txt is the full text behind those links, concatenated. Think of llms.txt as the table of contents and llms-full.txt as the whole book in one file. They're served at /llms.txt and /llms-full.txt respectively, and a good setup ships both.
- Why does llms-full.txt matter?
- Fetching context one page at a time is slow and lossy — agents miss pages, hit rate limits, or stop early. A single llms-full.txt lets a model load your entire documentation in one fetch, which improves the accuracy and completeness of anything it generates or answers about your product. It's the difference between an agent skimming and an agent reading everything.
- How do I generate llms-full.txt?
- Build it from the same source as your llms.txt at deploy time: take the pages your llms.txt links to and concatenate their actual content (headings, prose, code) into one markdown file at /llms-full.txt. It's a build step or a route handler — not something you hand-maintain, or it will drift from your real content.
- Do scanners check for llms-full.txt?
- Yes. The Agent Ready llms.txt checker validates it as check L10 ('llms-full.txt available') — it's one of the differentiators most llms.txt validators skip. Roughly two-thirds of sites that ship an llms.txt don't ship the full companion, so it's a quick way to stand out.