Перейти к содержимому

Справочник CLI ​

lv24-seo — командная строка движка. По умолчанию она только читает данные провайдеров, с флагом --json печатает один машиночитаемый конверт, а состояние провайдеров меняет только через три явно защищённые команды записи. Один и тот же исполняемый файл работает в Windows, macOS и Linux.

Таблица команд ​

Таблицу можно фильтровать по команде, группе или описанию. Имена команд и флаги одинаковы во всех локалях; переводится только документация вокруг них.

Начало работы 5

КомандаОписаниеКопировать
lv24-seo version --jsonВывести версию движка и имя пакета.
lv24-seo doctor --jsonОфлайн-проверка Python, конфигурации, каталога данных и наличия токенов; без сетевых вызовов.
lv24-seo init --property https://example.com --data-dir ./dataСоздать прокомментированный seo.toml и каталог данных; без --force не перезаписывает.
lv24-seo properties --jsonПоказать настроенных провайдеров, их цель и наличие токена.
lv24-seo stats --days 7 --lag-days 2 --jsonKPI по провайдерам за текущее и предыдущее окно только для чтения; без записи в хранилище.

Аутентификация 4

КомандаОписаниеКопировать
lv24-seo auth status --jsonПоказать, у каких провайдеров есть токен и откуда он берётся; значения не читаются.
lv24-seo auth set --provider gsc --stdinСохранить секрет провайдера из stdin в связке ключей ОС или в файле с правами 0600.
lv24-seo auth login --provider gscПоказать шаги ручного получения токена для GSC или Яндекса; ничего не записывается.
lv24-seo auth logout --provider gscУдалить сохранённый секрет провайдера; значения из окружения остаются только для чтения.

Конфигурация 1

КомандаОписаниеКопировать
lv24-seo config show --jsonПоказать действующую конфигурацию с маскировкой похожих на секреты ключей.

Google Search Console 2

КомандаОписаниеКопировать
lv24-seo gsc query --start 2026-11-01 --end 2026-11-07 --dimensions query,page --limit 100Запросить аналитику поиска GSC за явный диапазон дат и по измерениям.
lv24-seo sitemap submit --property sc-domain:example.com --url https://example.com/sitemap.xmlСпланировать отправку sitemap в GSC; dry run без --allow-write возвращает confirm-токен.

Яндекс Вебмастер 3

КомандаОписаниеКопировать
lv24-seo yandex queries --limit 100 --jsonТоп запросов Яндекса для настроенного хоста.
lv24-seo yandex indexing --jsonИстория индексации, события поиска, проблемы и счётчики для хоста.
lv24-seo yandex recrawl --url https://example.com/pageСпланировать очередь переобхода Яндекса; dry run без --allow-write возвращает confirm-токен.

IndexNow 1

КомандаОписаниеКопировать
lv24-seo indexnow submit --host example.com --key your-indexnow-key --url https://example.com/pageСпланировать отправку в IndexNow; dry run без --allow-write возвращает confirm-токен.

Обход и аудит 1

КомандаОписаниеКопировать
lv24-seo crawl --start https://example.com --max-urls 500 --jsonОбойти сайт в пределах бюджета URL, прогнать все правила и сохранить страницы и проблемы.

Отчёты 2

КомандаОписаниеКопировать
lv24-seo report weekly --days 7 --lag-days 2 --out reports/Собрать недельный дайджест, при желании записать report.json/report.html и доставить с --send.
lv24-seo report diff --markdownСравнить два сохранённых недельных снимка без вызовов провайдеров; --markdown печатает сводку для PR.

Расписание 2

КомандаОписаниеКопировать
lv24-seo schedule install --kind weekly --printУстановить задание недельного или дневного отчёта или показать его с --print.
lv24-seo schedule print --cron "0 6 * * 1" --target systemdОтрисовать артефакт cron, systemd или Task Scheduler Windows, не трогая хост.

Агенты и MCP 4

КомандаОписаниеКопировать
lv24-seo mcp serve --transport stdioЗапустить MCP-сервер через stdio или streamable HTTP.
lv24-seo install --client claude --printВлить запись MCP-сервера в конфиг клиента; --print показывает JSON.
lv24-seo export tools --out schemas/tools.jsonЗаписать реестр инструментов MCP в schemas/tools.json.
lv24-seo export skills --out skillsСкопировать упакованные навыки агентов в --out.

Любая команда также принимает --help — он печатает актуальный список флагов установленной версии.

Общие соглашения ​

Конверт ответа ​

С флагом --json команда печатает ровно один JSON-документ и ничего больше:

json
{ "ok": true, "data": {}, "meta": { "version": "0.5.2", "duration_ms": 812 }, "warnings": [] }

Неудачная команда использует ту же форму с ok: false и объектом error вместо data:

json
{ "ok": false, "error": { "code": "AUTH_REQUIRED", "message": "Google Search Console token is missing", "retryable": false, "next_action": "lv24-seo auth login --provider gsc" }, "meta": { "version": "0.5.2" }, "warnings": ["gsc: token missing"] }
  • data зависит от команды. В meta всегда есть version, часто добавляются duration_ms, truncated, data_age_days, limitations, locale или complete.
  • warnings — короткие строки для человека. Агрегирующие команды вроде stats остаются ok: true, если один провайдер упал: сбой учитывается в coverage и попадает в warnings.
  • Без --json выводится компактная текстовая сводка в stdout, затем предупреждения и строка ошибки. Ни один режим не печатает ANSI-цвета.
  • config show добавляет meta.redacted: true; ключи, похожие на секреты, маскируются как ***.

Коды выхода ​

КодЗначениеКоды ошибок
0Успех. Конверт ok: true.—
1Непредвиденный внутренний сбой.INTERNAL
2Ошибка использования или конфигурации.INVALID_INPUT, CONFIG_INVALID, CONFIRM_REQUIRED, WRITE_DISABLED
3Ошибка аутентификации.AUTH_REQUIRED, AUTH_INVALID
4Квота или сбой вышестоящего сервиса.QUOTA_EXCEEDED, UPSTREAM_UNAVAILABLE
5Частичный результат: усечённый вывод.TRUNCATED

WRITE_DISABLED даёт код 2, а не 4: запись отклонена до обращения к провайдеру. Код 5 зарезервирован для успешного конверта, который одновременно усечён и помечен meta.strict; в 0.5.2 ни один флаг не включает строгий режим, поэтому скриптам следует считать 5 частичным результатом, а не жёсткой ошибкой. Ориентируйтесь на код выхода и error.code, а не на текст для человека.

Конфигурация и флаги ​

  • --config PATH выбирает конкретный seo.toml. Путь должен существовать; отсутствующий файл — это CONFIG_INVALID, а не тихий откат к умолчаниям. Разрешённый путь абсолютный и нормализованный, поэтому артефакты планировщика и относительные настройки не зависят от рабочего каталога процесса.
  • Без --config движок ищет ./seo.toml, затем пользовательский конфиг платформы (%APPDATA%\lv24-seo\config.toml в Windows, ~/.config/lv24-seo/config.toml в Linux).
  • Переменные LV24_SEO_* перекрывают значения из файла. Файлы .env не загружаются автоматически; экспортируйте переменные в оболочке или в unit-файле сервиса.
  • mcp serve — долгоживущий сервер, он не принимает ни --json, ни --config.

doctor --json сообщает meta.data_dir и meta.data_dir_source (config, когда эффективный каталог абсолютный, working directory, когда относительный) и добавляет предупреждение, если относительный каталог неоднозначен рядом с конфигом. Относительный каталог не валит проверку.

Полный список ключей, умолчания и работа с секретами — в справочнике конфигурации.

Только чтение по умолчанию и шлюз записи ​

Менять состояние провайдера могут только sitemap submit, yandex recrawl и indexnow submit. Они работают в два шага:

  1. Запустите команду без --confirm. Она вернёт пробный прогон с data.plan, data.plan_hash, data.confirm_token и meta.dry_run: true.
  2. Задайте длинный случайный LV24_SEO_WRITE_SECRET в той же оболочке и повторите запуск с --allow-write --confirm TOKEN в течение пяти минут.

Токен — это HMAC от действия, цели, полного хеша плана и срока действия, поэтому изменение любого входа его аннулирует. При инициализированной рабочей области CLI подключает SQLite-журнал идемпотентности: повторный токен возвращает status: skipped с reason: duplicate, и провайдер вызывается один раз. Без каталога данных применение всё равно выполняется, но конверт предупреждает, что защита от повтора отключена на пять минут жизни токена; dry run не открывает журнал и не создаёт базу. IndexNow действительно отправляет URL. GSC sitemap submit и Yandex recrawl сейчас возвращают WRITE_DISABLED, а не делают вид, что вызов провайдера состоялся.

Логирование ​

Логирование опционально. LV24_SEO_LOG_LEVEL=INFO (или DEBUG, WARNING, …) устанавливает redacting-handler в CLI и lv24-seo mcp serve; если переменная не задана, конфигурация логирования вызывающего не меняется. Вывод — одна JSON-строка на запись, когда stderr не терминал, и обычная строка иначе. MCP-транспорт пишет только в stderr; stdout остаётся протоколом. Конверт --json остаётся стабильным интерфейсом диагностики.

Детерминизм и честность данных ​

  • Даты — ISO-8601 (2026-11-10); отметки времени — ISO-8601 UTC (2026-11-14T12:00:00+00:00).
  • Порядок полей в CLI стабилен, сохранённые снимки сериализуются с сортировкой ключей, а в видимом выводе нет случайных идентификаторов. Отчёты и диффы рассчитаны на сравнение между запусками.
  • Ограниченные ответы несут truncated, total, data_age_days и limitations[], где это применимо. Метрика, присутствующая только в одном окне, помечается как неизвестная, а не как ноль.
  • --days принимает 1..3660; большее значение падает с INVALID_INPUT и кодом 2.
  • Ни одна команда не печатает токен, cookie или полный заголовок Authorization.

Группы команд ​

ГруппаКомандыЧто затрагивает
Startversion, doctor, init, properties, statsЛокальные файлы и окружение; stats читает KPI провайдеров без записи.
Authenticationauth status, auth set, auth login, auth logoutЛокальное хранилище секретов; login только печатает инструкции.
Configurationconfig showДействующая конфигурация с замаскированными учётными данными.
Google Search Consolegsc query, sitemap submitЗапросы только на чтение; sitemap submit — защищённая запись.
Yandex Webmasteryandex queries, yandex indexing, yandex recrawlЗапросы только на чтение; recrawl — защищённая запись.
IndexNowindexnow submitЗащищённая запись, которая действительно отправляет URL.
Crawl and auditcrawlНе зависит от провайдеров; сохраняет локальные страницы и проблемы, если настроено хранилище.
Reportsreport weekly, report diffweekly сохраняет локальный снимок; diff только читает.
Schedulingschedule print, schedule installprint только рендерит; install пишет файлы планировщика хоста.
Agents and MCPmcp serve, install, export tools, export skillsКонфиг хоста, сгенерированные файлы или локальный сервер.

Примеры ​

Снимок для дашборда ​

bash
lv24-seo stats --days 7 --lag-days 2 --json

Только чтение, хранилище не нужно. Сервисы всегда идут в порядке gsc, yandex_webmaster, yandex_metrika, bing, crux, psi; в metrics только реально полученные значения, без заполнения нулями и без сумм между движками. Сбой одного провайдера изолирован и увеличивает coverage.failed.

Search Console ​

bash
lv24-seo gsc query --start 2026-11-01 --end 2026-11-07 --dimensions query,page --limit 100 --json

--start и --end обязательны. Сокращения --days и переопределения --property нет: ресурс берётся из [providers.gsc] в seo.toml. Измерения перечисляются через запятую и ограничены query, page, country, device и date.

Яндекс ​

bash
lv24-seo yandex queries --limit 100 --json
lv24-seo yandex indexing --json

yandex queries возвращает верхние строки, а не полную связку запрос-страница: Яндекс отдаёт не более 3 000 запросов за период. yandex indexing показывает историю индексирования, число страниц в поиске, диагностику и события поисковых URL для настроенного host_id.

Обход ​

bash
lv24-seo crawl --start https://example.com --max-urls 500 --json

Обходчик соблюдает robots.txt, идёт по ссылкам того же хоста в ширину, запускает все правила и сохраняет страницы и проблемы, если настроено хранилище. data.sitemap_coverage сравнивает карту сайта с тем, что увидел обход, в шести корзинах. Если возвращается complete: false, затронутые корзины — кандидаты, а не подтверждённые находки; limitations[] называет усечённый вход.

Отчёты ​

bash
lv24-seo report weekly --days 7 --lag-days 2 --out reports/ --json
lv24-seo report diff --markdown

report weekly собирает и сохраняет снимок; добавьте --send, чтобы доставить его через каналы, включённые в seo.toml. --out пишет канонический английский report.json и report.html на языке report.locale. report diff сравнивает два сохранённых недельных снимка, не обращается к провайдерам и требует двух запусков за разные периоды. --markdown печатает в stdout только Markdown; предупреждения идут в stderr.

Расписание ​

bash
lv24-seo schedule print --cron "0 6 * * 1" --target systemd --json
lv24-seo schedule install --kind weekly --print

print рендерит артефакт, не трогая хост. install пишет блок cron, пользовательские unit-файлы systemd или XML Планировщика заданий, а сгенерированная задача запускает report weekly --send --json. В systemd и Windows конвертируются только простые выражения cron (M H * * * и M H * * DOW).

MCP и клиенты агентов ​

bash
lv24-seo install --client cursor --print
lv24-seo mcp serve --transport http --port 8765

install добавляет запись сервера lv24-seo в конфиг хоста, а не заменяет файл; --print показывает точный JSON. mcp serve по умолчанию использует stdio и принимает streamable HTTP с --transport http.

Аутентификация ​

bash
lv24-seo auth status --json
lv24-seo auth set --provider gsc --stdin

auth set читает секрет из stdin или скрытого запроса и кладёт его в связку ключей ОС либо в явно включённый файловый резерв с правами 0600. Печатается только {provider, stored, source}. auth status показывает наличие и источник (env, keyring, file, missing), но никогда — значение.

Экспорт ​

bash
lv24-seo export tools --out schemas/tools.json
lv24-seo export skills --out skills/

export tools пишет сгенерированный реестр MCP для агентов, не использующих MCP; export skills копирует упакованные файлы SKILL.md и их манифест. Обе команды пишут только локальные файлы.

См. также ​

Source: _source/engine-cli.md, _source/engine-mcp.md, _source/engine-releases-0.5.2.md; вывод --help версии 0.5.2 в репозитории движка.