# LLM-Friendly Documentation Export

Zudoku can generate LLM-friendly versions of your documentation following the
[llms.txt](https://llmstxt.org/) specification.

During build, you can optionally generate:

- **`.md` files** - Individual pages with frontmatter removed (via `publishMarkdown`)
- **`llms.txt`** - Summary with links to all pages
- **`llms-full.txt`** - Complete documentation in one file

Per-page `.md` export is enabled by default. The two aggregate `llms.txt` files are opt-in.

## Configuration

LLM features are configured through the `docs` section in your config:

```tsx title="zudoku.config.tsx"
export default {
  docs: {
    files: "pages/**/*.{md,mdx}", // Your markdown files
    publishMarkdown: true, // Generate .md files
    llms: {
      llmsTxt: true, // Generate llms.txt
      llmsTxtFull: true, // Generate llms-full.txt
      includeProtected: false, // Exclude protected routes
      title: "Acme API",
      description: "Build and operate integrations with the Acme API.",
      instructions:
        "Use these docs when creating or debugging an Acme integration. Start with the quickstart, then consult the API reference for request and response schemas.",
    },
  },
};
```

:::tip

When enabled, markdown files are generated during build and deleted after creating the `llms.txt`
files unless `publishMarkdown: true` is set (see
[`publishMarkdown` docs](/docs/configuration/docs#publishmarkdown)).

:::

### `llmsTxt`

**Type:** `boolean` **Default:** `false`

Generates an `llms.txt` file with links to all documentation pages:

```markdown title="llms.txt"
# Acme API

> Build and operate integrations with the Acme API.

Use these docs when creating or debugging an Acme integration. Start with the quickstart, then
consult the API reference for request and response schemas.

## Documentation

- [Quickstart](/docs/quickstart.md): Get started with Zudoku
- [Writing](/docs/writing.md): A guide to writing documentation
```

### `title`

**Type:** `string` **Default:** the configured site title, or `"Documentation"`

Sets the project or site name in the required H1 at the top of `llms.txt`. It also sets the H1 in
`llms-full.txt` when that file is enabled.

### `description`

**Type:** `string` **Default:** `"Documentation files for Large Language Models"`

Sets the short summary in the blockquote immediately after the H1.

### `instructions`

**Type:** `string` **Default:** `undefined`

Adds optional guidance between the blockquote and the documentation link section. Use it to tell
agents which concrete jobs the documentation is best suited for and how to navigate or call the
product. The value can contain Markdown paragraphs and lists, but should not contain headings;
headings in `llms.txt` are reserved for sections containing link lists.

### `llmsTxtFull`

**Type:** `boolean` **Default:** `false`

Generates `llms-full.txt` containing the complete content of all pages.

### `includeProtected`

**Type:** `boolean` **Default:** `false`

By default, protected routes are excluded. Set to `true` to include them in the generated files.

## Output

Generated files are available in the output directory after build:

```text
dist/
├── llms.txt           # Generated if llmsTxt: true
├── llms-full.txt      # Generated if llmsTxtFull: true
└── docs/
    ├── quickstart.md  # Generated if publishMarkdown: true
    ├── writing.md
    └── ...
```

::if{mode=opensource}

On Vercel builds, this tree is written beneath `.vercel/output/static/` instead of `dist/`. The
deployed public URLs remain the same. See the [Vercel deployment guide](/docs/deploy/vercel) for the
generated routing and Markdown content-negotiation behavior.

::

**Important:** Individual `.md` files are only kept in the final build if `publishMarkdown: true`.
If only `llmsTxt` or `llmsTxtFull` is enabled, the `.md` files are generated temporarily during the
build but deleted after the `llms.txt` files are created.

Redirect pages, error pages (400, 404, 500), and protected routes (unless `includeProtected: true`)
are automatically excluded from all generated files.
