Перейти к содержанию

Пользовательские слеш-команды

Пользовательская слеш-команда — это TOML-файл, который превращается в команду вида /namespace:имя. При вызове команда подставляет в промпт модели заранее подготовленный текст. Так удобно оформлять повторяющиеся запросы: ревью диффа, генерацию changelog, проверку сборки.

Краткое описание формата — в справочнике команд, а этот раздел раскрывает его подробнее.

Где CLI ищет команды

Команды загружаются при старте из трёх источников:

Источник Путь
Пользовательские ~/.kodacli/commands
Проектные <рабочая область>/.kodacli/commands
Расширения <extension>/commands

Кроме того, промпты подключённых MCP-серверов появляются как команды. Подробнее — на странице MCP-серверы.

Приоритет от низшего к высшему: пользовательские → проектные → расширения. Команды расширений при конфликте имён переименовываются, а в описании получают префикс [имя-расширения]. Подробнее — на странице расширения.

Формат файла

Каждый .toml-файл описывает одну команду:

.kodacli/commands/git/review.toml
description = "Проверить staged diff" # необязательное поле
prompt = """
Проанализируй staged changes и перечисли риски перед commit.
"""
Поле Обязательное Назначение
prompt да Текст промпта, отправляемого модели
description нет Описание в списке команд и автодополнении

Если description не задан, CLI подставит Custom command from <имя файла>.

Имя команды

Имя команды определяется путём к файлу относительно каталога команд:

  • подкаталоги становятся пространством имён через :;
  • двоеточия в имени файла заменяются на _, чтобы не ломать пространство имён.
Путь файла Имя команды
~/.kodacli/commands/review.toml /review
.kodacli/commands/git/review.toml /git:review
.kodacli/commands/git:fix.toml /git_fix

Подстановка аргументов

В prompt можно использовать плейсхолдер {{args}}:

.kodacli/commands/explain.toml
prompt = """
Объясни, что делает следующий код, простыми словами:
{{args}}
"""

Поведение зависит от наличия плейсхолдера:

  • если {{args}} есть — CLI подставит туда текст после имени команды;
  • если плейсхолдера нет — аргументы будут добавлены в конец промпта.

Shell-вставки

Команды могут вставлять вывод shell-команд через !{...}:

.kodacli/commands/git/fix.toml
prompt = """
Вот текущий git status:
!{git status --short}
Предложи, как привести рабочую копию в порядок.
"""

Перед выполнением shell-вставки CLI покажет подтверждение. Глобальные ограничения инструментов excludeTools и coreTools продолжают применяться (см. настройки).

Примеры

Проектная команда для ревью:

.kodacli/commands/git/review.toml
description = "Ревью staged diff"
prompt = """
Проанализируй staged changes, найди риски и предложи минимальные проверки.
"""

Команда с аргументами:

~/.kodacli/commands/test.toml
description = "Проверить покрытие тестами"
prompt = """
Найди в проекте код без тестов по запросу: {{args}}
Предложи, какие тесты написать в первую очередь.
"""

После перезапуска CLI команды доступны в автодополнении по Tab.