# llmstxt CLI: llms.txt и llms-full.txt из sitemap.xml

> llmstxt - утилита командной строки на Node.js, которая строит llms.txt и llms-full.txt из sitemap.xml - команды, параметры, что получается на выходе и чего утилита не умеет

Страница: https://llms-full-txt.ru/tools/llmstxt-cli/
Указатель сайта: https://llms-full-txt.ru/llms.txt

[`llmstxt`](https://github.com/dotenvx/llmstxt) читает `sitemap.xml`, заходит на каждую страницу и собирает список ссылок с заголовками и описаниями. Результат печатается в консоль, его перенаправляют в файл.

Утилита подходит сайту, у которого есть карта сайта и нет готового расширения.

Она не выполняет скрипты страниц и не решает, что на сайте главное. Отбор остаётся за владельцем.

- Автор: dotenvx
- Пакет: llmstxt в реестре npm
- Версия: 0.9.0, март 2026
- Лицензия: BSD-3-Clause
- Проверено: 3 октября 2026

## Запуск

Установка не нужна:

```bash
npx -y llmstxt gen https://example.ru/sitemap.xml > llms.txt
```

Адрес карты сайта стоит указывать всегда. Без него утилита берёт адрес по умолчанию, чужой.

## Команды

| Команда | Что делает |
|---|---|
| `gen` | строит `llms.txt`: список ссылок с пояснениями |
| `gen-full` | строит `llms-full.txt`: полный текст каждой страницы в Markdown |

```bash
npx -y llmstxt gen-full https://example.ru/sitemap.xml > llms-full.txt
```

Команда `gen-full` есть в самой утилите, но в описании проекта не упомянута. Посмотреть все команды: `npx -y llmstxt --help`.

## Параметры

Параметры одинаковы для обеих команд.

| Параметр | Коротко | Что делает |
|---|---|---|
| `--exclude-path` | `-ep` | исключить адреса по шаблону |
| `--include-path` | `-ip` | оставить только адреса по шаблону |
| `--replace-title` | `-rt` | исправить заголовки по правилу замены |
| `--title` | `-t` | задать название сайта |
| `--description` | `-d` | задать описание сайта |
| `--concurrency` | `-c` | число одновременных запросов, по умолчанию 5 |

## Пример с отбором

```bash
npx -y llmstxt gen https://example.ru/sitemap.xml \
  -ep "**/blog/**" \
  -ep "**/privacy**" \
  -ep "**/cart**" \
  -rt 's/ \| Мой сайт//' \
  -t 'Мой сайт' \
  -d 'Документация сервиса доставки' \
  > llms.txt
```

Здесь из файла убраны блог, политика и корзина, из заголовков удалён хвост с названием сайта, а название и описание заданы вручную.

## Что получается

```markdown
# Мой сайт

> Документация сервиса доставки

- [Быстрый старт](https://example.ru/docs/start/): первый запрос и первый заказ
- [Справочник API](https://example.ru/docs/api/): методы, параметры, коды ошибок
```

Пояснения берутся из описаний страниц. Если описания на сайте пустые или одинаковые, такими же будут и пояснения.

## Пределы

- **Нужна карта сайта.** Другого входа у утилиты нет.
- **Скрипты не выполняются.** Страницы запрашиваются обычным HTTP-запросом. Содержание, которое появляется только в браузере, утилита не увидит.
- **Разделов нет.** Получается один список. Группировку по смыслу делают вручную.
- **Отбора нет.** В файл попадает всё, что не исключено шаблонами.
- **Ссылки ведут на HTML.** Markdown-версий утилита не создаёт.

## Обновление по расписанию

Утилиту удобно запускать при сборке сайта: тогда файл обновляется вместе с ним.

```bash
npx -y llmstxt gen https://example.ru/sitemap.xml -ep "**/cart**" > public/llms.txt
```

Запускать её нужно после того, как собрана новая карта сайта.

## После генерации

1. Открой файл и прочитай: есть ли название и описание.
2. Убери служебные страницы шаблонами исключения.
3. Сгруппируй ссылки по разделам вручную.
4. Проверь ответ сервера и ссылки.

Подробно: [Проверка файлов и разметки](https://llms-full-txt.ru/guides/validation/), [лучшие практики](https://llms-full-txt.ru/guides/best-practices/), [другие инструменты](https://llms-full-txt.ru/tools/generators/).
