Skip to main content

Optimize

llms.txt

Every NookDocs tenant ships an auto-generated llms.txt (sitemap-style index) and llms-full.txt (full content dump) for AI crawlers. No configuration — the files regenerate on every page sync.

llms.txt is the llmstxt.org standard for pointing LLM crawlers at the canonical, machine-readable version of a documentation site. NookDocs hosts two files on every tenant automatically:

  • /llms.txt — sitemap-style index: H1 + tagline + list of [title](url) links to every docs page, grouped by section.

  • /llms-full.txt — the entire MDX body of every page concatenated, ready to paste into a prompt or ingest into a vector DB.

Both regenerate whenever a page syncs from the repo. No nookdocs.config.json flag to set; no build step to run; no plugin to install.

Where to find them

Every tenant exposes them at the docs root:

https://{your-subdomain}.nookdocs.site/llms.txt
https://{your-subdomain}.nookdocs.site/llms-full.txt

Custom domains serve them from the same path:

https://docs.yourcompany.com/llms.txt
https://docs.yourcompany.com/llms-full.txt

Try it on this very site: /llms.txt, /llms-full.txt.

What's inside

llms.txt format

Follows the llmstxt.org spec: Markdown H1 + blockquote tagline + grouped list of H2 sections with [title](url) links. Example:

# Acme Documentation

> Build, deploy, and scale with Acme.

## Getting started

- [Introduction](https://docs.acme.com/introduction)
- [Quickstart](https://docs.acme.com/quickstart)

## API

- [Authentication](https://docs.acme.com/api/authentication)
- [Rate limits](https://docs.acme.com/api/rate-limits)

Hidden pages (hidden: true in frontmatter) are excluded. Section grouping comes from your navigation config.

llms-full.txt format

Every page's MDX body, concatenated with # {title} headings as section markers:

# Introduction

Acme Docs is the fastest way to ship API documentation...

# Quickstart

Sign up at acme.com, then...

Binary assets (images, PDFs) are skipped. Frontmatter is stripped. The file is plain UTF-8, no HTML escaping.

How AI tools discover the file

Most LLM products that support documentation fetching will probe /llms.txt at the root of the domain you give them. Tested clients:

  • Claude.ai Projects — paste your docs URL; Claude checks /llms.txt + /llms-full.txt automatically.

  • ChatGPT Custom GPTs — set the openapi_url to your docs root; GPT Actions crawler follows /llms.txt links.

  • Cursor / Windsurf / Claude Code — use the contextual menu "Open in …" items, which deep-link these tools to your docs with $path / $mdx placeholders.

  • Perplexity — indexes /llms.txt as a sitemap alongside /sitemap.xml.

Customising with contextual menu

The Copy page dropdown that appears next to every page title exposes both files as one-click operations. See contextual menu for how to enable additional items (Cursor, VS Code, Grok) and custom template variables.

Limitations

  • No HTTP discovery headers yet. Mintlify advertises llms.txt via an X-Llms-Txt response header and an HTML <link rel="describedby"> tag. NookDocs ships the files but doesn't yet advertise them in headers — on the roadmap. Crawlers that probe /llms.txt directly work fine today.

  • No custom llms.txt override. The generated file reflects your navigation. If you need a custom sort, drop a file at public/llms.txt in your repo and we'll start respecting it (planned).

  • Non-public pages excluded. Pages with seo.indexing: "noindex" or frontmatter hidden: true are excluded from both files.

Related

  • Markdown export — companion /<slug>.md URL convention for per-page raw MDX

  • Contextual menu — "Open in ChatGPT / Claude / Cursor" dropdown

  • SEO — sitemap.xml + robots.txt + canonical URLs

  • Copy for LLMs — user-facing overview of the AI discovery stack

Was this page helpful?

Last updated August 11, 2026