WritedocsWritedocs

llms.txt and llms-full.txt

Every writedocs site automatically serves two extra routes — no writedocs.json field needed to turn them on, and nothing to configure for the common case.

/llms.txt

A lightweight, one-line-per-page index: a title, a link, and (when the page’s frontmatter sets one) its description, truncated to the first line and 300 characters, under headings that follow your navigation — tabs, versions, languages, products, groups. Follows the llms.txt convention several AI tools already look for by default.

# Site Name

> The site's own writedocs.json description.

## Guides

- [Getting started](https://docs.example.com/getting-started/): Setup steps.

## API Reference

- [Overview](https://docs.example.com/api/): Endpoint list and usage.

A file an AI tool loads whole should stay small, so each file holds at most 100,000 characters. A bigger site’s llms.txt becomes a directory: its largest sections move into their own files under /llms/ (for example /llms/api-reference.md), linked from where they were, and a section still too big is split the same way. Every page stays listed.

Each link’s shape depends on two other fields you may already have set:

  • domain — if set, every link is absolute (https://docs.example.com/...); otherwise links are relative, same as sitemap.xml’s own dependency on domain (see SEO and sitemap).
  • contextMenu — unless it’s false, every link points at that page’s Markdown copy (/page.md, see Copy page / contextual menu) so an AI tool can fetch it directly; with false, links point at the normal HTML page.

A page with frontmatter seo.noindex: true is left out of llms.txt, for the same reason it’s left out of sitemap.xml — both exist to help external tools discover pages, which is exactly what noindex opts out of.

/llms-full.txt

The entire site’s content, concatenated into one file — every page’s title, URL and Markdown body, in navigation order. The body is what the page shows: imported snippets are included and variables are filled in, while code examples stay exactly as written. Meant as a single blob of context for an AI tool that wants everything at once, rather than fetching page by page.

OpenAPI operation pages (generated stubs, or a hand-written page that opts into <ApiPlayground /> via openapi: frontmatter) are included with their operation written out from the spec: method and path, description, parameters, body fields, responses and examples.

Custom overrides

Drop a hand-written llms.txt or llms-full.txt file at your project root (next to writedocs.json) to replace the auto-generated version outright — useful if you want editorial control over ordering, descriptions, or extra sections the generator doesn’t produce. Delete the file to fall back to the auto-generated version again.

See docs.json-examples/00-kitchen-sink/ in the Writedocs repo for a complete, buildable example — including a seo.noindex page (docs/core/2025-09/guides/overview.mdx) and its exclusion from both files.