# 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](https://llmstxt.org) convention several AI tools already look for by default.

```md
# 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](/docs/configuration/seo-and-sitemap/)).
- **`contextMenu`** — unless it's `false`, every link points at that page's Markdown copy (`/page.md`, see [Copy page / contextual menu](/docs/configuration/context-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.

<Callout type="tip">
  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.
</Callout>