onmax-vitepress-plugin-llms
v0.0.7
Published
π A VitePress plugin for generating LLM-friendly documentation
Maintainers
Readme
π vitepress-plugin-llms
π Report bug β’ Request 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
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'
},
depth: 2 // Generate llms.txt and llms-full.txt in root and first-level subdirectories
})
]
}
})This configuration does the following:
generateLLMsFullTxt: false: Disables the generation of thellms-full.txtfile.ignoreFiles: ['sponsors/*']: Ignores all files in thesponsorsdirectory.customLLMsTxtTemplate: Uses a custom template for thellms.txtfile.title: Sets a custom header inllms.txt, for your custom variables usecustomTemplateVariables.customTemplateVariables: Sets custom variables for the template, replaces{foo}withbar.depth: 2: Generates bothllms.txtandllms-full.txtfiles in the root directory and all first-level subdirectories, with each directory containing only files from that specific directory and its subdirectories.
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>π 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.txtwith section links - π Generates
llms-full.txtwith 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 | | llms.txt | llms-full.txt |
| Vue.js |
| llms.txt | llms-full.txt |
| Slidev |
| llms.txt | llms-full.txt |
| Elysia |
| llms.txt | llms-full.txt |
| Rolldown |
| llms.txt | llms-full.txt |
| shadcn/vue |
| llms.txt | llms-full.txt |
| Fantastic-admin |
| llms.txt | llms-full.txt |
| Vue Macros |
| llms.txt | llms-full.txt |
| oRPC |
| llms.txt | llms-full.txt |
| tsdown |
| llms.txt | llms-full.txt |
| GramIO |
| 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!
