JSPM

  • Created
  • Published
  • Downloads 11052
  • Score
    100M100P100Q135340F
  • License MIT

📜 A VitePress plugin for generating LLM-friendly documentation

Package Exports

  • vitepress-plugin-llms

Readme

Is this plugin useful for your site? Consider sponsoring the developer to support the project's development 😺

Banner

📜 vitepress-plugin-llms

NPM Downloads NPM Version Tests Status Built with Bun Formatted with Biome sponsor

🐛 Report bugRequest feature ✨

📦 Installation

npm install vitepress-plugin-llms --save-dev

🛠️ Usage

Add the Vite plugin to your VitePress configuration (.vitepress/config.ts):

import { defineConfig } from 'vitepress'
import llmstxt from 'vitepress-plugin-llms'

export default defineConfig({
  vite: {
    plugins: [llmstxt()]
  }
})

Now, thanks to this plugin, the LLM version of the website documentation is automatically generated

Plugin Settings

See src/types.d.ts

It is recommended to configure redirects so that AI can use addresses with both .md and .txt extensions

Netlify

public/_redirects:

/llms-full.md    /llms-full.txt 200!
/llms-full.txt   /llms-full.txt 200!

Syntax documentation: https://docs.netlify.com/routing/redirects

Example Configuration

Here is an example of how to configure the plugin with custom settings:

import { defineConfig } from 'vitepress'
import llmstxt from 'vitepress-plugin-llms'

export default defineConfig({
  vite: {
    plugins: [
      llmstxt({
        generateLLMsFullTxt: false,
        ignoreFiles: ['sponsors/*'],
        customLLMsTxtTemplate: `# {title}\n\n{foo}`,
        title: 'Awesome tool',
        customTemplateVariables: {
          foo: 'bar'
        }
      })
    ]
  }
})

This configuration does the following:

  • generateLLMsFullTxt: false: Disables the generation of the llms-full.txt file.
  • ignoreFiles: ['sponsors/*']: Ignores all files in the sponsors directory.
  • customLLMsTxtTemplate: Uses a custom template for the llms.txt file.
  • title: Sets a custom header in llms.txt, for your custom variables use customTemplateVariables.
  • customTemplateVariables: Sets custom variables for the template, replaces {foo} with bar.

Embedding content specifically for LLMs with <llm-only> tag

You can add a content that will be visible in files for LLMs, but invisible to humans, this can be useful for setting special instructions like "Refer to #basic-queries for demonstrations", "NEVER do ....", "ALWAYS use ... in case of ..." etc.

To do this, you need to wrap content with the <llm-only> tag:

<llm-only>

## Section for LLMs

This content appears only in the generated LLMs files without the `<llm-only>` tag
</llm-only>

Or

Check out the Plugins API Guide for documentation about creating plugins.

<llm-only>Note for LLM...</llm-only>

Excluding content for LLMs with the <llm-exclude> tag

You can add a content that will be visible in files for humans, but invisible to LLMs, opposite of <llm-only>:

<llm-exclude>
## Section for humans

This content will not be in the generated files for LLMs
</llm-exclude>

Or

Check out the Plugins API Guide for documentation about creating plugins.

<llm-exclude>Note only for humans</llm-exclude>

GitAds Sponsored

Sponsored by GitAds

🚀 Why vitepress-plugin-llms?

LLMs (Large Language Models) are great at processing text, but traditional documentation formats can be too heavy and cluttered. vitepress-plugin-llms generates raw Markdown documentation that LLMs can efficiently process

The file structure in .vitepress/dist folder will be as follows:

📂 .vitepress/dist
├── ...
├── llms-full.txt            // A file where all the website documentation is compiled into one file
├── llms.txt                 // The main file for LLMs with all links to all sections of the documentation for LLMs
├── markdown-examples.html   // A human-friendly version of `markdown-examples` section in HTML format
└── markdown-examples.md     // A LLM-friendly version of `markdown-examples` section in Markdown format

✅ Key Features

  • ⚡️ Easy integration with VitePress
  • ✅ Zero config required, everything works out of the box
  • ⚙️ Customizable
  • 🤖 An LLM-friendly version is generated for each page
  • 📝 Generates llms.txt with section links
  • 📖 Generates llms-full.txt with all content in one file

📖 llmstxt.org Standard

This plugin follows the llmstxt.org standard, which defines the best practices for LLM-friendly documentation.

✨ Projects where this plugin is used

Project Stars llms.txt llms-full.txt
Vite Stars llms.txt llms-full.txt
Vue.js Stars llms.txt llms-full.txt
Slidev Stars llms.txt llms-full.txt
Elysia Stars llms.txt llms-full.txt
Rolldown Stars llms.txt llms-full.txt
shadcn/vue Stars llms.txt llms-full.txt
Fantastic-admin Stars llms.txt llms-full.txt
Vue Macros Stars llms.txt llms-full.txt
oRPC Stars llms.txt llms-full.txt
tsdown Stars llms.txt llms-full.txt
GramIO Stars llms.txt llms-full.txt

❤️ Support

If you like this project, consider supporting it by starring ⭐ it on GitHub, sharing it with your friends, or buying me a coffee ☕

🤝 Contributing

You can read the instructions for contributing here - CONTRIBUTING.md

📜 License

MIT License © 2025-present Yurii Bogdan

👨‍🏭 Contributors

Thank you to everyone who helped with the project!

Contributors