Skip to main content

mkdocs-llmstxt

ci documentation pypi version gitter

MkDocs plugin to generate an /llms.txt file.

/llms.txt - A proposal to standardise on using an /llms.txt file to provide information to help LLMs use a website at inference time.

See our own dynamically generated /llms.txt as a demonstration.

Installation

pip install mkdocs-llmstxt

Usage

Enable the plugin in mkdocs.yml:

site_name: My project
site_description: Description of my project.
site_url: https://myproject.com/  # Required for the llmstxt plugin to work.

plugins:
- llmstxt:
    markdown_description: Long description of my project.
    sections:
      Usage documentation:
      - file1.md: Description of file1
      - file2.md  # Descriptions are optional.

The resulting /llms.txt file will be available at the root of your documentation. With the previous example, it will be accessible at https://myproject.com/llms.txt and will contain the following:

# My project

> Description of my project.

Long description of my project.

## Usage documentation

- [File1 title](https://myproject.com/file1.md): Description of file1
- [File2 title](https://myproject.com/file2.md)

Each source file included in sections will have its own Markdown file available at the specified URL in the /llms.txt. See Markdown generation for more details.

File globbing is supported:

plugins:
- llmstxt:
    sections:
      Usage documentation:
      - index.md: Main documentation page
      - usage/*.md

Override site_url

Use base_url to point llms.txt to documentation in a specific directory. For example, when using Read the Docs, use base_url to indicate the path to the hosted docs built for a specific language or version.

The resulting llms.txt uses base_url when it is specified, instead of the canonical site_url.

plugins:
- llmstxt:
    base_url: https://productname.hostname.io/en/0.1.34

Full output

Although not explicitly written out in the https://llmstxt.org/ guidelines, it is common to output a llms-full.txt file with every page content expanded. This file can be generated by setting the full_output configuration value:

plugins:
- llmstxt:
    full_output: llms-full.txt
    sections:
      Usage documentation:
      - index.md
      - usage/*.md

Markdown generation

To generate a Markdown page from a source file, the plugin will:

Doing so is necessary to ensure that dynamically generated contents (API documentation, executed code blocks, snippets from other files, Jinja macros, etc.) are part of the generated text files.

Credits to Petyo Ivanov for the original idea ✨.

You can disable auto-cleaning of the HTML:

plugins:
- llmstxt:
    autoclean: false

You can also pre-process the HTML before it is converted back to Markdown:

plugins:
- llmstxt:
    preprocess: path/to/script.py

The specified script.py must expose a preprocess function that accepts the soup and output arguments:

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from bs4 import BeautifulSoup

def preprocess(soup: BeautifulSoup, output: str) -> None:
    ...  # modify the soup

The output argument lets you modify the soup depending on which file is being generated.

Have a look at our own cleaning function to get inspiration.

Sponsors

Metadata

Release files for mkdocs-llmstxt 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mkdocs-llmstxt 0.5.0
File Size Uploaded
mkdocs_llmstxt-0.5.0.tar.gz 33.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mkdocs-llmstxt 0.5.0
File Interpreter ABI Platform
mkdocs_llmstxt-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.9 kB

Release files / mkdocs_llmstxt-0.5.0.tar.gz

Download URL mkdocs_llmstxt-0.5.0.tar.gz
Size 33.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b2fa9e6d68df41d7467e948a4745725b6c99434a36b36204857dbd7bb3dfe041
BLAKE2b-256 checksum
How to use checksums
7ff54c31cdffa7c09bf48d8c7a50d8342dc100abac98ac4150826bc11afc0c9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / mkdocs_llmstxt-0.5.0-py3-none-any.whl

Download URL mkdocs_llmstxt-0.5.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
753c699913d2d619a9072604b26b6dc9f5fb6d257d9b107857f80c8a0b787533
BLAKE2b-256 checksum
How to use checksums
ad2b82928cc9e8d9269cd79e7ebf015efdc4945e6c646e86ec1d4dba1707f215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page