This is the full developer documentation for LLMs Full Text
# llms.txt
> Стандарт разметки сайтов для больших языковых моделей (LLM)
## Что такое llms.txt?
[Заголовок раздела «Что такое llms.txt?»](#что-такое-llmstxt)
**llms.txt** — это стандарт markdown-файла, который размещается в корне сайта (`/llms.txt`) и предоставляет структурированную информацию о содержимом сайта для языковых моделей.
Для AI-ассистентов
Помогает Claude, ChatGPT и другим LLM понимать структуру вашей документации
Простой формат
Обычный Markdown с заголовками и ссылками — никаких сложных схем
Дополняет robots.txt
Работает вместе с robots.txt и sitemap.xml, не заменяя их
Экономит токены
Позволяет LLM получить нужную информацию без парсинга всего сайта
## Зачем нужен llms.txt?
[Заголовок раздела «Зачем нужен llms.txt?»](#зачем-нужен-llmstxt)
Контекстное окно LLM ограничено — модель не может обработать весь сайт целиком. Файл `llms.txt` решает эту проблему:
* **Структура** — описывает важные разделы сайта
* **Ссылки** — указывает на ключевые страницы документации
* **Описания** — объясняет назначение каждого ресурса
* **Приоритеты** — выделяет обязательные и опциональные материалы
## Быстрый старт
[Заголовок раздела «Быстрый старт»](#быстрый-старт)
```markdown
# Название проекта
> Краткое описание проекта в одну-две строки
## Документация
- [Быстрый старт](https://example.com/quickstart): Начните здесь
- [API Reference](https://example.com/api): Полное описание API
- [Примеры](https://example.com/examples): Готовые решения
## Optional
- [Changelog](https://example.com/changelog): История изменений
- [Contributing](https://example.com/contributing): Как внести вклад
```
# Продвинутые примеры
> Сложные сценарии использования llms.txt
## Мультиязычный сайт
[Заголовок раздела «Мультиязычный сайт»](#мультиязычный-сайт)
Для сайтов с несколькими языками создавайте отдельные файлы:
### Структура файлов
[Заголовок раздела «Структура файлов»](#структура-файлов)
```plaintext
/llms.txt → Английская версия (default)
/ru/llms.txt → Русская версия
/es/llms.txt → Испанская версия
```
### Пример /llms.txt (English)
[Заголовок раздела «Пример /llms.txt (English)»](#пример-llmstxt-english)
```markdown
# Documentation Hub
> Comprehensive guides and API reference for developers.
## Getting Started
- [Quick Start](https://docs.example.com/en/quickstart): 5-minute setup guide
- [Installation](https://docs.example.com/en/install): System requirements
## API Reference
- [REST API](https://docs.example.com/en/api/rest): HTTP endpoints
- [GraphQL](https://docs.example.com/en/api/graphql): GraphQL schema
```
### Пример /ru/llms.txt (Русский)
[Заголовок раздела «Пример /ru/llms.txt (Русский)»](#пример-rullmstxt-русский)
```markdown
# Документация
> Подробные руководства и справочник API для разработчиков.
## Начало работы
- [Быстрый старт](https://docs.example.com/ru/quickstart): Настройка за 5 минут
- [Установка](https://docs.example.com/ru/install): Системные требования
## Справочник API
- [REST API](https://docs.example.com/ru/api/rest): HTTP-эндпоинты
- [GraphQL](https://docs.example.com/ru/api/graphql): Схема GraphQL
```
## Версионированная документация
[Заголовок раздела «Версионированная документация»](#версионированная-документация)
Для проектов с несколькими версиями:
### Текущая версия
[Заголовок раздела «Текущая версия»](#текущая-версия)
```markdown
# MyLibrary v3.0
> Modern JavaScript utility library (current stable).
## Documentation
- [Migration from v2](https://mylib.dev/docs/v3/migration): Breaking changes
- [What's New](https://mylib.dev/docs/v3/changelog): New features in v3
- [API Reference](https://mylib.dev/docs/v3/api): Complete API docs
## Legacy
- [v2 Documentation](https://mylib.dev/docs/v2/): Previous stable version
- [v1 Documentation](https://mylib.dev/docs/v1/): Legacy version (deprecated)
```
### Ссылка на llms.txt разных версий
[Заголовок раздела «Ссылка на llms.txt разных версий»](#ссылка-на-llmstxt-разных-версий)
```plaintext
https://mylib.dev/docs/v3/llms.txt
https://mylib.dev/docs/v2/llms.txt
https://mylib.dev/docs/v1/llms.txt
```
## Монорепозиторий
[Заголовок раздела «Монорепозиторий»](#монорепозиторий)
Для проектов с несколькими пакетами:
```markdown
# Acme Platform
> Suite of tools for building modern web applications.
## Core Packages
- [@acme/core](https://acme.dev/packages/core): Core utilities
- [@acme/ui](https://acme.dev/packages/ui): React components
- [@acme/cli](https://acme.dev/packages/cli): Command-line tools
- [@acme/server](https://acme.dev/packages/server): Backend framework
## Package Documentation
- [Core API](https://acme.dev/docs/core/api): Core package reference
- [UI Components](https://acme.dev/docs/ui/components): Component gallery
- [CLI Commands](https://acme.dev/docs/cli/commands): Available commands
- [Server Setup](https://acme.dev/docs/server/setup): Backend configuration
## Guides
- [Getting Started](https://acme.dev/docs/start): Initial setup
- [Full Stack App](https://acme.dev/docs/tutorial): Build complete app
- [Deployment](https://acme.dev/docs/deploy): Production deployment
## Optional
- [Changelog](https://acme.dev/changelog): All package updates
- [Roadmap](https://acme.dev/roadmap): Future plans
```
## Микросервисная архитектура
[Заголовок раздела «Микросервисная архитектура»](#микросервисная-архитектура)
```markdown
# Microservices Platform
> Distributed system with multiple services.
## Services
- [API Gateway](https://platform.dev/docs/gateway): Request routing
- [Auth Service](https://platform.dev/docs/auth): Authentication/authorization
- [User Service](https://platform.dev/docs/users): User management
- [Billing Service](https://platform.dev/docs/billing): Payments and subscriptions
- [Notification Service](https://platform.dev/docs/notifications): Email/push notifications
## Infrastructure
- [Kubernetes Setup](https://platform.dev/docs/k8s): K8s deployment
- [Monitoring](https://platform.dev/docs/monitoring): Prometheus/Grafana
- [Logging](https://platform.dev/docs/logging): ELK stack setup
## Development
- [Local Setup](https://platform.dev/docs/local): Docker Compose environment
- [Testing](https://platform.dev/docs/testing): Integration tests
- [CI/CD](https://platform.dev/docs/cicd): GitHub Actions pipelines
## Optional
- [Architecture](https://platform.dev/docs/architecture): System design docs
- [ADRs](https://platform.dev/docs/adr): Architectural decisions
```
## Полный llms.txt + llms-full.txt
[Заголовок раздела «Полный llms.txt + llms-full.txt»](#полный-llmstxt--llms-fulltxt)
### llms.txt (индекс)
[Заголовок раздела «llms.txt (индекс)»](#llmstxt-индекс)
```markdown
# Framework
> Modern web framework for Node.js.
## Core
- [Getting Started](https://framework.dev/docs/start): Quick setup
- [Routing](https://framework.dev/docs/routing): URL routing
- [Middleware](https://framework.dev/docs/middleware): Request handling
## Advanced
- [Database](https://framework.dev/docs/database): ORM integration
- [Auth](https://framework.dev/docs/auth): Authentication
- [Caching](https://framework.dev/docs/cache): Redis caching
## Optional
- [Plugins](https://framework.dev/docs/plugins): Extending the framework
```
### llms-full.txt (полный контент)
[Заголовок раздела «llms-full.txt (полный контент)»](#llms-fulltxt-полный-контент)
```markdown
# Framework
> Modern web framework for Node.js.
## Table of Contents
- [Getting Started](#getting-started)
- [Routing](#routing)
- [Middleware](#middleware)
- [Database](#database)
---
## Getting Started
Source: https://framework.dev/docs/start
Last updated: 2024-01-15
### Installation
\`\`\`bash
npm install @framework/core
\`\`\`
### Quick Example
\`\`\`javascript
import { createApp } from '@framework/core'
const app = createApp()
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(3000)
\`\`\`
---
## Routing
Source: https://framework.dev/docs/routing
Last updated: 2024-01-10
Routes are defined using HTTP method helpers...
[полный контент страницы]
---
## Middleware
Source: https://framework.dev/docs/middleware
Last updated: 2024-01-12
Middleware functions have access to request and response...
[полный контент страницы]
```
## Генерация с помощью CI/CD
[Заголовок раздела «Генерация с помощью CI/CD»](#генерация-с-помощью-cicd)
### GitHub Action
[Заголовок раздела «GitHub Action»](#github-action)
```yaml
name: Update llms.txt
on:
push:
paths:
- 'docs/**'
schedule:
- cron: '0 0 * * 0' # Weekly
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate llms.txt
run: |
npx llmstxt gen https://docs.example.com/sitemap.xml \
-ep "**/blog/**" \
-t "My Docs" \
> public/llms.txt
- name: Generate llms-full.txt
run: |
npx llmstxt gen-full https://docs.example.com/sitemap.xml \
-ep "**/blog/**" \
> public/llms-full.txt
- name: Commit and push
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
git add public/llms.txt public/llms-full.txt
git diff --staged --quiet || git commit -m "Update llms.txt"
git push
```
# Базовые примеры
> Простые примеры llms.txt для разных типов сайтов
## Документация проекта
[Заголовок раздела «Документация проекта»](#документация-проекта)
Минимальный пример для open-source проекта:
```markdown
# FastHTML
> Python library for building fast, interactive web applications with HTMX.
## Documentation
- [Getting Started](https://fastht.ml/docs/): Quick start guide for new users
- [Tutorial](https://fastht.ml/docs/tutorial): Step-by-step walkthrough
- [API Reference](https://fastht.ml/docs/api): Complete API documentation
## Examples
- [Todo App](https://github.com/fasthtml/examples/todo): Basic todo application
- [Blog](https://github.com/fasthtml/examples/blog): Blog with comments
## Optional
- [Changelog](https://fastht.ml/changelog): Version history
- [Contributing](https://github.com/fasthtml/CONTRIBUTING.md): How to contribute
```
## API сервис
[Заголовок раздела «API сервис»](#api-сервис)
Для SaaS продукта с REST API:
```markdown
# Stripe API
> Payment processing platform for internet businesses.
Stripe API uses REST with predictable resource-oriented URLs.
All requests must be authenticated with API key.
## API Reference
- [Authentication](https://stripe.com/docs/api/authentication): API key usage
- [Errors](https://stripe.com/docs/api/errors): Error codes and handling
- [Pagination](https://stripe.com/docs/api/pagination): List pagination
## Core Resources
- [Customers](https://stripe.com/docs/api/customers): Customer management
- [Payments](https://stripe.com/docs/api/payment_intents): Payment processing
- [Subscriptions](https://stripe.com/docs/api/subscriptions): Recurring billing
## SDKs
- [Node.js](https://github.com/stripe/stripe-node): Official Node.js library
- [Python](https://github.com/stripe/stripe-python): Official Python library
- [Ruby](https://github.com/stripe/stripe-ruby): Official Ruby library
## Optional
- [Webhooks](https://stripe.com/docs/webhooks): Event notifications
- [Testing](https://stripe.com/docs/testing): Test mode and fixtures
```
## Персональный сайт
[Заголовок раздела «Персональный сайт»](#персональный-сайт)
Для портфолио или CV:
```markdown
# John Developer
> Full-stack developer specializing in React and Node.js.
Based in San Francisco. Open to remote work.
## Portfolio
- [Projects](https://johndeveloper.com/projects): Featured work samples
- [Blog](https://johndeveloper.com/blog): Technical articles
## Contact
- [About](https://johndeveloper.com/about): Background and skills
- [Resume](https://johndeveloper.com/resume.pdf): Downloadable CV
## Optional
- [GitHub](https://github.com/johndeveloper): Open source contributions
- [LinkedIn](https://linkedin.com/in/johndeveloper): Professional network
```
## Образовательный курс
[Заголовок раздела «Образовательный курс»](#образовательный-курс)
```markdown
# Learn Python
> Complete Python programming course from basics to advanced topics.
Self-paced course with hands-on exercises and projects.
## Fundamentals
- [Introduction](https://learnpython.org/intro): What is Python
- [Installation](https://learnpython.org/install): Setting up Python
- [Variables](https://learnpython.org/variables): Data types and variables
- [Control Flow](https://learnpython.org/control): If/else, loops
## Intermediate
- [Functions](https://learnpython.org/functions): Defining and calling functions
- [Classes](https://learnpython.org/oop): Object-oriented programming
- [Modules](https://learnpython.org/modules): Importing and creating modules
## Projects
- [Calculator](https://learnpython.org/projects/calc): Build a calculator
- [Web Scraper](https://learnpython.org/projects/scraper): Scrape websites
- [API Client](https://learnpython.org/projects/api): Consume REST APIs
## Optional
- [Exercises](https://learnpython.org/exercises): Practice problems
- [Solutions](https://learnpython.org/solutions): Exercise solutions
```
## E-commerce
[Заголовок раздела «E-commerce»](#e-commerce)
```markdown
# TechShop
> Online electronics store with fast shipping.
Free shipping on orders over $50. 30-day returns.
## Products
- [Catalog](https://techshop.com/products): All products
- [New Arrivals](https://techshop.com/new): Latest products
- [Best Sellers](https://techshop.com/best): Top selling items
- [Deals](https://techshop.com/deals): Current promotions
## Customer Service
- [Shipping](https://techshop.com/shipping): Shipping options and times
- [Returns](https://techshop.com/returns): Return policy
- [FAQ](https://techshop.com/faq): Frequently asked questions
- [Contact](https://techshop.com/contact): Get in touch
## Optional
- [About](https://techshop.com/about): Company information
- [Reviews](https://techshop.com/reviews): Customer testimonials
```
## Блог
[Заголовок раздела «Блог»](#блог)
```markdown
# Tech Blog
> Articles about web development, DevOps, and software architecture.
Published weekly. Subscribe for updates.
## Categories
- [Frontend](https://techblog.dev/frontend): React, Vue, CSS
- [Backend](https://techblog.dev/backend): Node.js, Python, Go
- [DevOps](https://techblog.dev/devops): Docker, Kubernetes, CI/CD
- [Architecture](https://techblog.dev/architecture): Design patterns, scaling
## Popular
- [React Hooks Guide](https://techblog.dev/react-hooks): Complete hooks tutorial
- [Docker for Beginners](https://techblog.dev/docker-intro): Getting started with Docker
- [API Design](https://techblog.dev/api-design): REST API best practices
## Optional
- [Archive](https://techblog.dev/archive): All posts by date
- [Authors](https://techblog.dev/authors): Meet the writers
```
## Минимальный вариант
[Заголовок раздела «Минимальный вариант»](#минимальный-вариант)
Абсолютный минимум — только заголовок:
```markdown
# My Project
```
Но рекомендуется добавить хотя бы описание и одну ссылку:
```markdown
# My Project
> Brief description of what this project does.
## Documentation
- [Docs](https://example.com/docs): Main documentation
```
# Начало работы
> Создайте свой первый llms.txt за 5 минут
## Что такое llms.txt?
[Заголовок раздела «Что такое llms.txt?»](#что-такое-llmstxt)
**llms.txt** — это файл в формате Markdown, который размещается по адресу `/llms.txt` на вашем сайте. Он помогает языковым моделям (Claude, ChatGPT, Gemini) понять структуру вашего сайта и найти нужную информацию.
### Проблема
[Заголовок раздела «Проблема»](#проблема)
* Контекстное окно LLM ограничено (обычно 100-200K токенов)
* HTML-страницы содержат много «мусора» (навигация, реклама, скрипты)
* LLM не может обработать весь сайт целиком
### Решение
[Заголовок раздела «Решение»](#решение)
Файл `llms.txt` предоставляет:
* Краткое описание проекта
* Структурированный список важных страниц
* Описание каждого ресурса для LLM
## Создание llms.txt вручную
[Заголовок раздела «Создание llms.txt вручную»](#создание-llmstxt-вручную)
### Шаг 1: Создайте файл
[Заголовок раздела «Шаг 1: Создайте файл»](#шаг-1-создайте-файл)
Создайте файл `llms.txt` в корне вашего сайта:
```markdown
# Мой проект
> Краткое описание проекта — что он делает и для кого предназначен.
Дополнительная информация о проекте, которая поможет LLM понять контекст.
## Документация
- [Быстрый старт](https://example.com/docs/quickstart): Пошаговое руководство для новых пользователей
- [Установка](https://example.com/docs/installation): Требования и инструкции по установке
- [API Reference](https://example.com/docs/api): Полное описание всех эндпоинтов
## Руководства
- [Аутентификация](https://example.com/guides/auth): Как настроить авторизацию
- [Деплой](https://example.com/guides/deploy): Развёртывание в production
## Optional
- [Changelog](https://example.com/changelog): История изменений
- [Contributing](https://example.com/contributing): Как внести вклад в проект
```
### Шаг 2: Разместите на сайте
[Заголовок раздела «Шаг 2: Разместите на сайте»](#шаг-2-разместите-на-сайте)
Файл должен быть доступен по URL:
```plaintext
https://вашсайт.com/llms.txt
```
### Шаг 3: Проверьте
[Заголовок раздела «Шаг 3: Проверьте»](#шаг-3-проверьте)
Откройте URL в браузере и убедитесь, что файл отображается корректно.
## Автоматическая генерация
[Заголовок раздела «Автоматическая генерация»](#автоматическая-генерация)
Для больших сайтов используйте инструменты автоматизации:
```bash
# Генерация из sitemap.xml
npx llmstxt gen https://example.com/sitemap.xml > llms.txt
# Генерация с полным контентом
npx llmstxt gen-full https://example.com/sitemap.xml > llms-full.txt
```
## Интеграции
[Заголовок раздела «Интеграции»](#интеграции)
### Astro + Starlight
[Заголовок раздела «Astro + Starlight»](#astro--starlight)
Используйте плагин `starlight-llms-txt`:
```bash
pnpm add starlight-llms-txt
```
astro.config.mjs
```javascript
import starlightLlmsTxt from 'starlight-llms-txt'
export default defineConfig({
integrations: [
starlight({
plugins: [starlightLlmsTxt()],
}),
],
})
```
### VitePress
[Заголовок раздела «VitePress»](#vitepress)
```bash
npm install vitepress-plugin-llms
```
### Docusaurus
[Заголовок раздела «Docusaurus»](#docusaurus)
```bash
npm install docusaurus-plugin-llms-txt
```
## Следующие шаги
[Заголовок раздела «Следующие шаги»](#следующие-шаги)
* [Формат файла](/specification/format/) — подробная спецификация
* [Секции](/specification/sections/) — обязательные и опциональные разделы
* [Инструменты](/tools/llmstxt-cli/) — автоматизация генерации
# Экосистема llms.txt
> Инструменты, плагины и интеграции
## Официальные ресурсы
[Заголовок раздела «Официальные ресурсы»](#официальные-ресурсы)
| Ресурс | Описание |
| --------------------------------------------------------------- | -------------------------- |
| [llms.txt спецификация](https://llmstxt.org) | Официальный сайт стандарта |
| [AnswerDotAI/llms-txt](https://github.com/AnswerDotAI/llms-txt) | Оригинальный репозиторий |
| [llms-txt-hub](https://llmstxt.com) | Каталог 329+ сайтов |
## Инструменты генерации
[Заголовок раздела «Инструменты генерации»](#инструменты-генерации)
### CLI инструменты
[Заголовок раздела «CLI инструменты»](#cli-инструменты)
| Инструмент | Язык | Описание |
| ---------------------------------------------------------------------- | ------- | ------------------------ |
| [llmstxt](https://github.com/dotenvx/llmstxt) | Node.js | Генерация из sitemap.xml |
| [llmstxt-architect](https://github.com/rlancemartin/llmstxt_architect) | Python | AI-генерация с LLM |
| [llms\_txt2ctx](https://pypi.org/project/llms-txt/) | Python | Конвертация в контекст |
### Веб-сервисы
[Заголовок раздела «Веб-сервисы»](#веб-сервисы)
| Сервис | Описание |
| ---------------------------------- | --------------------------- |
| [llm.codes](https://llm.codes) | Конвертация JS-документации |
| [llmstxt.com](https://llmstxt.com) | Генератор и хаб |
## Плагины для фреймворков
[Заголовок раздела «Плагины для фреймворков»](#плагины-для-фреймворков)
### Astro / Starlight
[Заголовок раздела «Astro / Starlight»](#astro--starlight)
```bash
pnpm add starlight-llms-txt
```
astro.config.mjs
```javascript
import starlightLlmsTxt from 'starlight-llms-txt'
export default defineConfig({
integrations: [
starlight({
plugins: [starlightLlmsTxt()],
}),
],
})
```
### VitePress
[Заголовок раздела «VitePress»](#vitepress)
```bash
npm install vitepress-plugin-llms
```
.vitepress/config.js
```javascript
import llmsPlugin from 'vitepress-plugin-llms'
export default {
vite: {
plugins: [llmsPlugin()],
},
}
```
### Docusaurus
[Заголовок раздела «Docusaurus»](#docusaurus)
```bash
npm install docusaurus-plugin-llms-txt
```
docusaurus.config.js
```javascript
module.exports = {
plugins: ['docusaurus-plugin-llms-txt'],
}
```
### Drupal
[Заголовок раздела «Drupal»](#drupal)
Рецепт для Drupal 10.3+:
* [Drupal llms.txt recipe](https://drupal.org/project/llmstxt)
## Расширения и утилиты
[Заголовок раздела «Расширения и утилиты»](#расширения-и-утилиты)
### Браузерные расширения
[Заголовок раздела «Браузерные расширения»](#браузерные-расширения)
| Расширение | Описание |
| ----------------------------------------------------------------------------- | --------------------------------- |
| [LLMs.txt Checker](https://chrome.google.com/webstore/detail/llmstxt-checker) | Chrome: проверка наличия llms.txt |
### IDE расширения
[Заголовок раздела «IDE расширения»](#ide-расширения)
| Расширение | Описание |
| -------------------------------------------------------------------------- | --------------------------------------- |
| [PagePilot](https://marketplace.visualstudio.com/items?itemName=pagepilot) | VS Code: загрузка контекста из llms.txt |
### Raycast
[Заголовок раздела «Raycast»](#raycast)
```bash
# Raycast extension для llms.txt
raycast://extensions/llmstxt
```
## MCP интеграции
[Заголовок раздела «MCP интеграции»](#mcp-интеграции)
### mcpdoc
[Заголовок раздела «mcpdoc»](#mcpdoc)
Использование llms.txt как источника для MCP:
```json
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"--from", "mcpdoc",
"mcpdoc",
"--urls", "LangGraph:https://langchain-ai.github.io/langgraph/llms.txt",
"--transport", "stdio"
]
}
}
}
```
### Несколько источников
[Заголовок раздела «Несколько источников»](#несколько-источников)
```json
{
"mcpServers": {
"multi-docs": {
"command": "uvx",
"args": [
"--from", "mcpdoc",
"mcpdoc",
"--urls",
"React:https://react.dev/llms.txt",
"Next.js:https://nextjs.org/llms.txt",
"Tailwind:https://tailwindcss.com/llms.txt",
"--transport", "stdio"
]
}
}
}
```
## Библиотеки
[Заголовок раздела «Библиотеки»](#библиотеки)
### Python
[Заголовок раздела «Python»](#python)
```bash
pip install llms-txt
```
```python
from llms_txt import parse_llms_txt, to_context
# Парсинг
with open('llms.txt') as f:
data = parse_llms_txt(f.read())
# Конвертация в контекст
context = to_context(data, include_optional=False)
```
### JavaScript
[Заголовок раздела «JavaScript»](#javascript)
```javascript
import { parseLlmsTxt } from 'llmstxt-parser'
const response = await fetch('https://example.com/llms.txt')
const content = await response.text()
const parsed = parseLlmsTxt(content)
console.log(parsed.title) // "Project Name"
console.log(parsed.description) // "Brief description"
console.log(parsed.sections) // { "Docs": [...], "API": [...] }
```
### PHP
[Заголовок раздела «PHP»](#php)
```php
composer require llmstxt/parser
use LlmsTxt\Parser;
$parser = new Parser();
$data = $parser->parse(file_get_contents('llms.txt'));
```
## Сайты с llms.txt
[Заголовок раздела «Сайты с llms.txt»](#сайты-с-llmstxt)
### По категориям
[Заголовок раздела «По категориям»](#по-категориям)
| Категория | Примеры |
| --------------- | --------------------------------------- |
| AI/ML | Anthropic, Cohere, Hugging Face, CrewAI |
| Developer Tools | Astro, Vercel, Stripe, Resend |
| Databases | DuckDB, Upstash, Turso |
| Integration | Zapier, Make, Activepieces |
### Полный каталог
[Заголовок раздела «Полный каталог»](#полный-каталог)
Смотрите [llms-txt-hub](https://llmstxt.com) для полного списка 329+ сайтов.
## Стандарты и совместимость
[Заголовок раздела «Стандарты и совместимость»](#стандарты-и-совместимость)
### Связь с другими стандартами
[Заголовок раздела «Связь с другими стандартами»](#связь-с-другими-стандартами)
| Стандарт | Назначение | Связь с llms.txt |
| ----------- | --------------------- | ------------------------------ |
| robots.txt | Правила для краулеров | Дополняет, не заменяет |
| sitemap.xml | Список всех страниц | llms.txt — курированный subset |
| humans.txt | Информация о команде | Разные цели |
### Версионирование
[Заголовок раздела «Версионирование»](#версионирование)
Текущая версия спецификации: **1.0**
Спецификация стабильна и обратно совместима.
# Формат файла
> Полная спецификация формата llms.txt
## Обзор
[Заголовок раздела «Обзор»](#обзор)
Файл `llms.txt` использует формат Markdown с определённой структурой. Он размещается в корне сайта по адресу `/llms.txt`.
## Структура файла
[Заголовок раздела «Структура файла»](#структура-файла)
```markdown
# Заголовок H1 (обязательно)
> Блок-цитата с кратким описанием (рекомендуется)
Дополнительный текст описания (опционально)
## Секция H2 (опционально)
- [Название ссылки](URL): Описание ресурса
- [Другая ссылка](URL): Что содержит этот ресурс
## Optional
- [Дополнительный ресурс](URL): Можно пропустить при нехватке контекста
```
## Обязательные элементы
[Заголовок раздела «Обязательные элементы»](#обязательные-элементы)
### Заголовок H1
[Заголовок раздела «Заголовок H1»](#заголовок-h1)
Единственный **обязательный** элемент — заголовок первого уровня с названием проекта:
```markdown
# FastHTML
```
или
```markdown
# Документация API v2
```
## Рекомендуемые элементы
[Заголовок раздела «Рекомендуемые элементы»](#рекомендуемые-элементы)
### Блок-цитата (blockquote)
[Заголовок раздела «Блок-цитата (blockquote)»](#блок-цитата-blockquote)
Краткое описание проекта в 1-2 предложения:
```markdown
> FastHTML — это Python-библиотека для создания быстрых веб-приложений
> с использованием HTMX и современных веб-стандартов.
```
### Описательный текст
[Заголовок раздела «Описательный текст»](#описательный-текст)
Дополнительная информация после блок-цитаты:
```markdown
Важные особенности:
- Не требует JavaScript-фреймворков
- Поддержка Server-Side Rendering
- Интеграция с FastAPI
```
Заметка
В описательном тексте нельзя использовать заголовки (H2 и выше). Разрешены: параграфы, списки, блоки кода.
## Секции со ссылками
[Заголовок раздела «Секции со ссылками»](#секции-со-ссылками)
### Формат H2 секций
[Заголовок раздела «Формат H2 секций»](#формат-h2-секций)
Каждая секция начинается с заголовка H2:
```markdown
## Документация
- [Быстрый старт](https://example.com/quickstart): Начните здесь
- [Установка](https://example.com/install): Системные требования и установка
```
### Формат ссылок
[Заголовок раздела «Формат ссылок»](#формат-ссылок)
Каждая ссылка состоит из:
```markdown
- [Название](URL): Описание
```
| Элемент | Обязательность | Пример |
| -------- | -------------- | -------------------------------- |
| Название | Обязательно | `[API Reference]` |
| URL | Обязательно | `(https://docs.example.com/api)` |
| Описание | Рекомендуется | `: Полное описание эндпоинтов` |
### Примеры ссылок
[Заголовок раздела «Примеры ссылок»](#примеры-ссылок)
```markdown
- [Getting Started](https://docs.example.com/start): Быстрый старт за 5 минут
- [API Reference](https://docs.example.com/api): REST API документация
- [Examples](https://github.com/example/repo/examples): Примеры кода на GitHub
```
## Специальная секция Optional
[Заголовок раздела «Специальная секция Optional»](#специальная-секция-optional)
Секция `## Optional` имеет особое значение:
```markdown
## Optional
- [Changelog](https://example.com/changelog): История изменений
- [Contributing](https://example.com/contributing): Гайд для контрибьюторов
- [Advanced Topics](https://example.com/advanced): Углублённые темы
```
Совет
Ресурсы в секции `Optional` могут быть пропущены, если LLM нужен более короткий контекст. Используйте её для второстепенной информации.
## Расположение файла
[Заголовок раздела «Расположение файла»](#расположение-файла)
### Основное расположение
[Заголовок раздела «Основное расположение»](#основное-расположение)
```plaintext
https://example.com/llms.txt
```
### Альтернативные пути
[Заголовок раздела «Альтернативные пути»](#альтернативные-пути)
Для подразделов сайта можно создавать отдельные файлы:
```plaintext
https://example.com/docs/llms.txt
https://example.com/api/llms.txt
```
## Связанные файлы
[Заголовок раздела «Связанные файлы»](#связанные-файлы)
### Markdown-версии страниц
[Заголовок раздела «Markdown-версии страниц»](#markdown-версии-страниц)
Рекомендуется предоставлять `.md` версии HTML-страниц:
```plaintext
https://example.com/page.html → https://example.com/page.html.md
https://example.com/docs/ → https://example.com/docs/index.html.md
```
### Расширенные форматы
[Заголовок раздела «Расширенные форматы»](#расширенные-форматы)
Некоторые проекты генерируют дополнительные файлы:
| Файл | Назначение |
| ---------------- | --------------------------------------- |
| `llms.txt` | Базовый файл со ссылками |
| `llms-full.txt` | Полный контент всех страниц |
| `llms-small.txt` | Минимальная версия |
| `llms-ctx.txt` | Контекст без URL (для вставки в промпт) |
## Парсинг
[Заголовок раздела «Парсинг»](#парсинг)
Файл можно распарсить простым regex (\~20 строк кода):
```python
import re
def parse_llms_txt(content: str) -> dict:
result = {'title': '', 'description': '', 'sections': {}}
# Извлечь H1
h1_match = re.search(r'^# (.+)$', content, re.MULTILINE)
if h1_match:
result['title'] = h1_match.group(1)
# Извлечь blockquote
bq_match = re.search(r'^> (.+)$', content, re.MULTILINE)
if bq_match:
result['description'] = bq_match.group(1)
# Извлечь секции и ссылки
current_section = 'default'
for line in content.split('\n'):
if line.startswith('## '):
current_section = line[3:].strip()
result['sections'][current_section] = []
elif line.startswith('- ['):
match = re.match(r'- \[(.+?)\]\((.+?)\)(?:: (.+))?', line)
if match:
result['sections'].setdefault(current_section, []).append({
'title': match.group(1),
'url': match.group(2),
'description': match.group(3) or ''
})
return result
```
## Валидация
[Заголовок раздела «Валидация»](#валидация)
Проверьте ваш `llms.txt`:
1. Есть заголовок H1
2. Все ссылки рабочие
3. Описания информативны для LLM
4. Нет дублирующихся ссылок
5. Секция Optional содержит только второстепенные ресурсы
# Секции и структура
> Организация разделов в llms.txt
## Типы секций
[Заголовок раздела «Типы секций»](#типы-секций)
### Основные секции
[Заголовок раздела «Основные секции»](#основные-секции)
Рекомендуемые названия секций для документации:
| Секция | Назначение | Приоритет |
| -------------- | ----------------------- | --------- |
| `## Docs` | Основная документация | Высокий |
| `## API` | API Reference | Высокий |
| `## Guides` | Руководства и туториалы | Средний |
| `## Examples` | Примеры кода | Средний |
| `## Reference` | Справочные материалы | Средний |
### Дополнительные секции
[Заголовок раздела «Дополнительные секции»](#дополнительные-секции)
| Секция | Назначение | Приоритет |
| -------------- | ---------------------- | ------------------- |
| `## Blog` | Статьи и новости | Низкий |
| `## Changelog` | История изменений | Низкий |
| `## Community` | Сообщество, форумы | Низкий |
| `## Optional` | Второстепенные ресурсы | Может быть пропущен |
## Секция Optional
[Заголовок раздела «Секция Optional»](#секция-optional)
### Назначение
[Заголовок раздела «Назначение»](#назначение)
Секция `## Optional` имеет **специальное значение** в спецификации. Ресурсы в ней могут быть пропущены при формировании контекста для LLM.
### Когда использовать
[Заголовок раздела «Когда использовать»](#когда-использовать)
```markdown
## Optional
- [Changelog](https://example.com/changelog): История версий
- [Roadmap](https://example.com/roadmap): Планы развития
- [Contributing](https://example.com/contributing): Как внести вклад
- [Code of Conduct](https://example.com/coc): Правила сообщества
- [License](https://example.com/license): Лицензия MIT
```
### Логика обработки
[Заголовок раздела «Логика обработки»](#логика-обработки)
```python
def get_context(llms_txt, include_optional=True):
sections = parse_llms_txt(llms_txt)
if not include_optional:
sections.pop('Optional', None)
return sections
```
Совет
Инструменты вроде `llms_txt2ctx` позволяют генерировать контекст с опцией `--no-optional` для экономии токенов.
## Порядок секций
[Заголовок раздела «Порядок секций»](#порядок-секций)
### Рекомендуемый порядок
[Заголовок раздела «Рекомендуемый порядок»](#рекомендуемый-порядок)
1. **H1 заголовок** — название проекта
2. **Blockquote** — краткое описание
3. **Описательный текст** — важные детали
4. **Основные секции** — Docs, API, Guides
5. **Дополнительные секции** — Examples, Reference
6. **Optional** — всегда последняя
### Пример полной структуры
[Заголовок раздела «Пример полной структуры»](#пример-полной-структуры)
```markdown
# FastHTML
> Modern Python web framework for building fast, interactive web applications.
Key features:
- No JavaScript required
- HTMX integration
- Server-side rendering
## Documentation
- [Getting Started](https://fastht.ml/docs/): Quick start guide
- [Tutorial](https://fastht.ml/docs/tutorial): Step-by-step tutorial
- [API Reference](https://fastht.ml/docs/api): Complete API docs
## Guides
- [Forms](https://fastht.ml/docs/guides/forms): Working with forms
- [Database](https://fastht.ml/docs/guides/db): Database integration
- [Deployment](https://fastht.ml/docs/guides/deploy): Production deployment
## Examples
- [Todo App](https://github.com/fasthtml/examples/todo): Basic todo application
- [Blog](https://github.com/fasthtml/examples/blog): Blog with comments
- [E-commerce](https://github.com/fasthtml/examples/shop): Shopping cart demo
## Optional
- [Changelog](https://fastht.ml/changelog): Version history
- [Contributing](https://github.com/fasthtml/fasthtml/CONTRIBUTING.md): Contribution guide
- [Discord](https://discord.gg/fasthtml): Community chat
```
## Локализация секций
[Заголовок раздела «Локализация секций»](#локализация-секций)
### Мультиязычные сайты
[Заголовок раздела «Мультиязычные сайты»](#мультиязычные-сайты)
Для сайтов с несколькими языками можно создавать отдельные файлы:
```plaintext
/llms.txt → Основной (английский)
/ru/llms.txt → Русская версия
/zh/llms.txt → Китайская версия
```
### Переводы названий секций
[Заголовок раздела «Переводы названий секций»](#переводы-названий-секций)
```markdown
## Документация
- [Быстрый старт](https://example.com/ru/docs/start): Начните здесь
- [Справочник API](https://example.com/ru/docs/api): Описание API
```
## Группировка ссылок
[Заголовок раздела «Группировка ссылок»](#группировка-ссылок)
### По типу контента
[Заголовок раздела «По типу контента»](#по-типу-контента)
```markdown
## Tutorials
- [Beginner Tutorial](url): For new users (30 min)
- [Advanced Tutorial](url): Deep dive (2 hours)
- [Video Course](url): Video walkthrough
## API Reference
- [REST API](url): HTTP endpoints
- [GraphQL API](url): GraphQL schema
- [SDK Reference](url): Client libraries
```
### По платформе
[Заголовок раздела «По платформе»](#по-платформе)
```markdown
## JavaScript
- [npm Package](url): Installation and usage
- [Browser Guide](url): Browser integration
## Python
- [PyPI Package](url): pip installation
- [Django Integration](url): Django setup
```
## Избегайте
[Заголовок раздела «Избегайте»](#избегайте)
### Слишком много секций
[Заголовок раздела «Слишком много секций»](#слишком-много-секций)
❌ Плохо:
```markdown
## Getting Started
## Installation
## Configuration
## Basic Usage
## Advanced Usage
## Troubleshooting
## FAQ
## API
## REST
## GraphQL
## WebSocket
...
```
✅ Хорошо:
```markdown
## Documentation
- [Getting Started](url): Includes installation, config, basic usage
- [Advanced Guide](url): Advanced topics and troubleshooting
## API Reference
- [Complete API](url): REST, GraphQL, WebSocket
```
### Пустые секции
[Заголовок раздела «Пустые секции»](#пустые-секции)
Не создавайте секции без ссылок:
```markdown
## Coming Soon
(пусто)
```
### Дублирование ссылок
[Заголовок раздела «Дублирование ссылок»](#дублирование-ссылок)
Одна ссылка должна быть только в одной секции.
# llm.codes
> Конвертация JS-документации в Markdown для LLM
## Обзор
[Заголовок раздела «Обзор»](#обзор)
**llm.codes** — это веб-сервис для конвертации JavaScript-heavy документации в чистый Markdown, оптимизированный для языковых моделей.
**Сайт:** [llm.codes](https://llm.codes) **Репозиторий:** [github.com/amantus-ai/llm-codes](https://github.com/amantus-ai/llm-codes)
## Проблема
[Заголовок раздела «Проблема»](#проблема)
Современная документация часто использует:
* Client-side rendering (React, Vue)
* Динамическую загрузку контента
* JavaScript-навигацию
AI-ассистенты (Claude Code, Cursor) не могут выполнять JavaScript и видят пустые страницы.
## Решение
[Заголовок раздела «Решение»](#решение)
llm.codes:
1. Загружает страницы через headless browser (Firecrawl)
2. Дожидается рендеринга JavaScript
3. Извлекает основной контент
4. Конвертирует в чистый Markdown
5. Удаляет навигацию, рекламу, boilerplate
## Поддерживаемые сайты
[Заголовок раздела «Поддерживаемые сайты»](#поддерживаемые-сайты)
### Языки и фреймворки
[Заголовок раздела «Языки и фреймворки»](#языки-и-фреймворки)
| Категория | Сайты |
| ---------- | ------------------------------------------------------------ |
| **Языки** | Python, TypeScript, Rust, Go, Java, Ruby, PHP, Swift, MDN |
| **Web** | React, Vue.js, Angular, Next.js, Nuxt, Svelte, Django, Flask |
| **Mobile** | React Native, Flutter, Android, Apple Developer |
| **CSS** | Tailwind CSS, Bootstrap, Material-UI, Chakra UI |
### Платформы
[Заголовок раздела «Платформы»](#платформы)
| Категория | Сайты |
| ------------- | ------------------------------------------------ |
| **Cloud** | AWS, Google Cloud, Azure, Vercel, Netlify |
| **Databases** | PostgreSQL, MongoDB, MySQL, Redis, Elasticsearch |
| **DevOps** | Docker, Kubernetes, Terraform, GitHub, GitLab |
| **AI/ML** | PyTorch, TensorFlow, Hugging Face, LangChain |
**Всего:** 69+ сайтов документации
## Использование
[Заголовок раздела «Использование»](#использование)
### Веб-интерфейс
[Заголовок раздела «Веб-интерфейс»](#веб-интерфейс)
1. Откройте [llm.codes](https://llm.codes)
2. Вставьте URL документации
3. Настройте глубину краулинга
4. Нажмите “Convert”
5. Скопируйте Markdown
### API
[Заголовок раздела «API»](#api)
```bash
curl "https://llm.codes/api/scrape" \
-H "Content-Type: application/json" \
-d '{
"url": "https://docs.python.org/3/library/asyncio.html",
"depth": 1
}'
```
## Параметры
[Заголовок раздела «Параметры»](#параметры)
| Параметр | Описание | Диапазон |
| --------- | ----------------- | -------- |
| `depth` | Глубина краулинга | 0-5 |
| `maxUrls` | Максимум страниц | 1-1000 |
### Глубина краулинга
[Заголовок раздела «Глубина краулинга»](#глубина-краулинга)
* **0** — только указанная страница
* **1** — страница + прямые ссылки
* **2** — рекомендуется для большинства случаев
* **5** — полный раздел документации
## Оптимизации
[Заголовок раздела «Оптимизации»](#оптимизации)
### Фильтрация контента
[Заголовок раздела «Фильтрация контента»](#фильтрация-контента)
llm.codes удаляет:
* Навигацию и сайдбары
* Хедеры и футеры
* Рекламу и баннеры
* Дублирующийся контент
* Строки совместимости (iOS 14.0+, etc.)
### Результат
[Заголовок раздела «Результат»](#результат)
Сокращение размера до **70%** при сохранении всей полезной информации.
## Кэширование
[Заголовок раздела «Кэширование»](#кэширование)
* Результаты кэшируются **30 дней**
* Redis-backed для скорости
* Повторные запросы мгновенны
## Интеграция с AI
[Заголовок раздела «Интеграция с AI»](#интеграция-с-ai)
### Claude Code
[Заголовок раздела «Claude Code»](#claude-code)
```bash
# Получить документацию
curl -s "https://llm.codes/api/scrape?url=https://docs.example.com" \
| claude "Explain how to use this API"
```
### В промптах
[Заголовок раздела «В промптах»](#в-промптах)
```text
Below is the documentation for the XYZ library:
[paste llm.codes output]
Based on this documentation, help me implement...
```
## Сравнение с другими инструментами
[Заголовок раздела «Сравнение с другими инструментами»](#сравнение-с-другими-инструментами)
| Инструмент | JS Rendering | Краулинг | Фильтрация |
| ---------- | ------------ | -------- | ---------- |
| llm.codes | ✅ | ✅ | ✅ |
| curl | ❌ | ❌ | ❌ |
| wget | ❌ | ✅ | ❌ |
| llmstxt | ❌ | ✅ | Базовая |
## Самостоятельный хостинг
[Заголовок раздела «Самостоятельный хостинг»](#самостоятельный-хостинг)
```bash
git clone https://github.com/amantus-ai/llm-codes
cd llm-codes
npm install
npm run dev
```
### Переменные окружения
[Заголовок раздела «Переменные окружения»](#переменные-окружения)
```bash
FIRECRAWL_API_KEY=fc-... # Обязательно
UPSTASH_REDIS_URL=... # Опционально (для кэша)
```
## Use Cases
[Заголовок раздела «Use Cases»](#use-cases)
### Apple Developer Docs
[Заголовок раздела «Apple Developer Docs»](#apple-developer-docs)
Apple использует тяжёлый JavaScript. llm.codes — единственный способ получить контент для LLM:
```plaintext
https://llm.codes/?url=https://developer.apple.com/documentation/swiftui
```
### React документация
[Заголовок раздела «React документация»](#react-документация)
Новая React документация (react.dev) также требует JS:
```plaintext
https://llm.codes/?url=https://react.dev/reference/react/hooks
```
## Ограничения
[Заголовок раздела «Ограничения»](#ограничения)
* Только белый список из 69 сайтов
* Требуется Firecrawl API key для self-hosting
* Rate limiting для публичного API
* Нет поддержки авторизованного контента
## Связь с llms.txt
[Заголовок раздела «Связь с llms.txt»](#связь-с-llmstxt)
llm.codes **дополняет** стандарт llms.txt:
1. **llms.txt** — индекс страниц со ссылками
2. **llm.codes** — получение контента конкретных страниц
Workflow:
```plaintext
llms.txt → выбрать нужные URL → llm.codes → получить Markdown
```
# llmstxt-architect
> AI-генерация llms.txt с помощью LLM
## Обзор
[Заголовок раздела «Обзор»](#обзор)
**llmstxt-architect** — это Python-инструмент, который использует языковые модели (Claude, GPT, Ollama) для автоматической генерации качественных описаний в `llms.txt`.
**Репозиторий:** [github.com/rlancemartin/llmstxt\_architect](https://github.com/rlancemartin/llmstxt_architect)
## Преимущества
[Заголовок раздела «Преимущества»](#преимущества)
В отличие от простого извлечения meta-описаний, llmstxt-architect:
* **Анализирует контент** — читает содержимое страниц
* **Генерирует описания** — использует LLM для создания осмысленных описаний
* **Объясняет релевантность** — описывает, когда и зачем читать страницу
## Установка
[Заголовок раздела «Установка»](#установка)
```bash
# Быстрый запуск через uvx
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --from llmstxt-architect llmstxt-architect --help
# Или установка через pip
pip install llmstxt-architect
```
## Базовое использование
[Заголовок раздела «Базовое использование»](#базовое-использование)
### С Anthropic Claude
[Заголовок раздела «С Anthropic Claude»](#с-anthropic-claude)
```bash
export ANTHROPIC_API_KEY=sk-ant-...
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 2 \
--llm-name claude-3-5-sonnet-latest \
--llm-provider anthropic \
--project-dir output
```
### С OpenAI
[Заголовок раздела «С OpenAI»](#с-openai)
```bash
export OPENAI_API_KEY=sk-...
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 2 \
--llm-name gpt-4o \
--llm-provider openai \
--project-dir output
```
### С локальной моделью (Ollama)
[Заголовок раздела «С локальной моделью (Ollama)»](#с-локальной-моделью-ollama)
```bash
# Запустите Ollama
ollama serve
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 1 \
--llm-name llama3.2:latest \
--llm-provider ollama \
--project-dir output
```
## Параметры
[Заголовок раздела «Параметры»](#параметры)
| Параметр | Описание | По умолчанию |
| ------------------ | ------------------------------------- | --------------- |
| `--urls` | URL для обработки | Обязательно |
| `--max-depth` | Глубина краулинга (1-5) | 5 |
| `--llm-name` | Название модели | claude-3-sonnet |
| `--llm-provider` | Провайдер (anthropic, openai, ollama) | anthropic |
| `--project-dir` | Директория для результатов | llms\_txt |
| `--output-file` | Имя выходного файла | llms.txt |
| `--blacklist-file` | Файл с URL для исключения | - |
| `--extractor` | Метод извлечения (default, bs4) | default |
## Обновление существующего llms.txt
[Заголовок раздела «Обновление существующего llms.txt»](#обновление-существующего-llmstxt)
### Обновить только описания
[Заголовок раздела «Обновить только описания»](#обновить-только-описания)
```bash
llmstxt-architect \
--existing-llms-file https://example.com/llms.txt \
--update-descriptions-only \
--llm-name claude-3-5-sonnet-latest \
--llm-provider anthropic \
--project-dir updated
```
Сохраняет структуру и секции, обновляет только описания ссылок.
### Из локального файла
[Заголовок раздела «Из локального файла»](#из-локального-файла)
```bash
llmstxt-architect \
--existing-llms-file ./llms.txt \
--update-descriptions-only \
--llm-provider ollama \
--llm-name llama3.2 \
--project-dir updated
```
## Исключение URL
[Заголовок раздела «Исключение URL»](#исключение-url)
Создайте файл `blacklist.txt`:
```text
# Deprecated pages
https://example.com/old-api/
https://example.com/v1/
# Not relevant
https://example.com/jobs/
https://example.com/legal/
```
Запуск:
```bash
llmstxt-architect \
--urls https://example.com \
--blacklist-file blacklist.txt \
--project-dir output
```
## Python API
[Заголовок раздела «Python API»](#python-api)
```python
import asyncio
from llmstxt_architect.main import generate_llms_txt
async def main():
await generate_llms_txt(
urls=["https://docs.example.com"],
max_depth=2,
llm_name="claude-3-5-sonnet-latest",
llm_provider="anthropic",
project_dir="output",
)
asyncio.run(main())
```
### Кастомный экстрактор
[Заголовок раздела «Кастомный экстрактор»](#кастомный-экстрактор)
```python
from bs4 import BeautifulSoup
def custom_extractor(html: str) -> str:
soup = BeautifulSoup(html, 'html.parser')
# Удалить навигацию и футер
for tag in soup.find_all(['nav', 'footer', 'aside']):
tag.decompose()
# Извлечь только main content
main = soup.find('main') or soup.find('article')
if main:
return main.get_text(separator='\n', strip=True)
return soup.get_text(separator='\n', strip=True)
await generate_llms_txt(
urls=["https://docs.example.com"],
extractor=custom_extractor,
# ...
)
```
## Структура выходных файлов
[Заголовок раздела «Структура выходных файлов»](#структура-выходных-файлов)
```plaintext
project-dir/
├── llms.txt # Итоговый файл
├── summaries/
│ ├── summarized_urls.json # Чекпоинт прогресса
│ ├── docs_example_com_page1.txt
│ ├── docs_example_com_page2.txt
│ └── ... # Индивидуальные саммари
```
## Промпт для генерации
[Заголовок раздела «Промпт для генерации»](#промпт-для-генерации)
По умолчанию LLM получает такой промпт:
```text
Create a concise summary for this documentation page.
The summary should explain:
1. When should an LLM read this page?
2. What key topics are covered?
Keep the summary to 1-2 sentences maximum.
```
### Кастомный промпт
[Заголовок раздела «Кастомный промпт»](#кастомный-промпт)
```bash
llmstxt-architect \
--urls https://example.com \
--summary-prompt "Summarize this API documentation. Focus on endpoints and use cases." \
--project-dir output
```
## Чекпоинты и продолжение
[Заголовок раздела «Чекпоинты и продолжение»](#чекпоинты-и-продолжение)
Инструмент сохраняет прогресс каждые 5 документов:
```bash
# Если процесс прервался, просто запустите снова
llmstxt-architect --urls https://example.com --project-dir output
# Обработанные URL будут пропущены
```
## Интеграция с MCP
[Заголовок раздела «Интеграция с MCP»](#интеграция-с-mcp)
Используйте сгенерированный `llms.txt` с MCP-сервером:
```json
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"--from", "mcpdoc",
"mcpdoc",
"--urls", "Docs:./output/llms.txt",
"--transport", "stdio"
]
}
}
}
```
## Примеры результатов
[Заголовок раздела «Примеры результатов»](#примеры-результатов)
Проекты, использующие llmstxt-architect:
* [LangGraph llms.txt](https://langchain-ai.github.io/langgraph/llms.txt)
* [LangChain llms.txt](https://python.langchain.com/llms.txt)
## Сравнение с llmstxt CLI
[Заголовок раздела «Сравнение с llmstxt CLI»](#сравнение-с-llmstxt-cli)
| Аспект | llmstxt CLI | llmstxt-architect |
| ----------------- | ---------------- | ---------------------- |
| Источник описаний | Meta-теги | AI-генерация |
| Качество описаний | Зависит от сайта | Высокое |
| Скорость | Быстро | Медленнее (API вызовы) |
| Стоимость | Бесплатно | Оплата API |
| Глубина анализа | Поверхностный | Анализ контента |
# llmstxt CLI
> Генерация llms.txt из sitemap.xml
## Обзор
[Заголовок раздела «Обзор»](#обзор)
**llmstxt** — это CLI-инструмент для автоматической генерации файлов `llms.txt` из `sitemap.xml` вашего сайта.
**Репозиторий:** [github.com/dotenvx/llmstxt](https://github.com/dotenvx/llmstxt)
## Установка
[Заголовок раздела «Установка»](#установка)
```bash
# Глобальная установка
npm install -g llmstxt
# Или запуск через npx (без установки)
npx llmstxt gen https://example.com/sitemap.xml
```
## Команды
[Заголовок раздела «Команды»](#команды)
### gen — Базовая генерация
[Заголовок раздела «gen — Базовая генерация»](#gen--базовая-генерация)
Создаёт `llms.txt` со списком страниц и описаниями:
```bash
npx llmstxt gen https://example.com/sitemap.xml > llms.txt
```
**Результат:**
```markdown
# Example Site
> Description from meta tags
## Section
- [Page Title](https://example.com/page): Meta description
```
### gen-full — Полная генерация
[Заголовок раздела «gen-full — Полная генерация»](#gen-full--полная-генерация)
Создаёт файл с полным контентом всех страниц:
```bash
npx llmstxt gen-full https://example.com/sitemap.xml > llms-full.txt
```
**Включает:**
* Оглавление (Table of Contents)
* Полный текст каждой страницы в Markdown
* Даты последнего обновления
## Опции
[Заголовок раздела «Опции»](#опции)
### Фильтрация путей
[Заголовок раздела «Фильтрация путей»](#фильтрация-путей)
```bash
# Исключить пути
npx llmstxt gen https://example.com/sitemap.xml \
--exclude-path "**/blog/**" \
--exclude-path "**/privacy**" \
--exclude-path "**/terms**"
# Включить только определённые пути
npx llmstxt gen https://example.com/sitemap.xml \
--include-path "**/docs/**" \
--include-path "**/api/**"
```
### Очистка заголовков
[Заголовок раздела «Очистка заголовков»](#очистка-заголовков)
Удаление повторяющегося текста из заголовков:
```bash
# Удалить "| Example" из всех заголовков
npx llmstxt gen https://example.com/sitemap.xml \
--replace-title 's/\| Example//'
```
### Кастомные метаданные
[Заголовок раздела «Кастомные метаданные»](#кастомные-метаданные)
```bash
npx llmstxt gen https://example.com/sitemap.xml \
--title "My Documentation" \
--description "Official docs for My Project"
```
### Контроль параллелизма
[Заголовок раздела «Контроль параллелизма»](#контроль-параллелизма)
```bash
# Ограничить количество одновременных запросов
npx llmstxt gen https://example.com/sitemap.xml \
--concurrency 3
```
## Полный пример
[Заголовок раздела «Полный пример»](#полный-пример)
```bash
npx llmstxt@latest gen https://docs.example.com/sitemap.xml \
-ep "**/blog/**" \
-ep "**/changelog/**" \
-ep "**/privacy**" \
-ep "**/terms**" \
-rt 's/\| Docs//' \
-t 'Example Docs' \
-d 'Official documentation for Example' \
-c 5 \
> llms.txt
```
## Опции (краткая форма)
[Заголовок раздела «Опции (краткая форма)»](#опции-краткая-форма)
| Полная форма | Краткая | Описание |
| ----------------- | ------- | --------------------------- |
| `--exclude-path` | `-ep` | Исключить пути (glob) |
| `--include-path` | `-ip` | Включить пути (glob) |
| `--replace-title` | `-rt` | Regex замена в заголовках |
| `--title` | `-t` | Кастомный заголовок |
| `--description` | `-d` | Кастомное описание |
| `--concurrency` | `-c` | Макс. параллельных запросов |
## Как это работает
[Заголовок раздела «Как это работает»](#как-это-работает)
1. **Парсинг sitemap.xml** — извлечение всех URL
2. **Загрузка страниц** — параллельная загрузка с контролем concurrency
3. **Извлечение метаданных:**
* `` — заголовок страницы
* `` — описание
* `` — fallback
* `` — fallback
4. **Группировка** — страницы группируются по URL-путям
5. **Генерация Markdown** — форматирование в llms.txt
## Интеграция в CI/CD
[Заголовок раздела «Интеграция в CI/CD»](#интеграция-в-cicd)
### GitHub Actions
[Заголовок раздела «GitHub Actions»](#github-actions)
```yaml
name: Generate llms.txt
on:
push:
branches: [main]
schedule:
- cron: '0 0 * * 0' # Каждое воскресенье
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate llms.txt
run: |
npx llmstxt gen https://docs.example.com/sitemap.xml \
-ep "**/blog/**" > public/llms.txt
- name: Commit changes
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add public/llms.txt
git commit -m "Update llms.txt" || exit 0
git push
```
## Troubleshooting
[Заголовок раздела «Troubleshooting»](#troubleshooting)
### Пустой результат
[Заголовок раздела «Пустой результат»](#пустой-результат)
Проверьте, что:
1. sitemap.xml доступен и содержит URL
2. Страницы имеют `` теги
3. Фильтры не исключают все страницы
### Медленная генерация
[Заголовок раздела «Медленная генерация»](#медленная-генерация)
Уменьшите `--concurrency` для избежания rate limiting:
```bash
npx llmstxt gen https://example.com/sitemap.xml -c 2
```
### Некорректные заголовки
[Заголовок раздела «Некорректные заголовки»](#некорректные-заголовки)
Используйте `--replace-title` для очистки:
```bash
npx llmstxt gen url -rt 's/ - My Site$//'
```