Пользовательские слеш-команды¶
Пользовательская слеш-команда — это TOML-файл, который превращается в команду вида /namespace:имя.
При вызове команда подставляет в промпт модели заранее подготовленный текст.
Так удобно оформлять повторяющиеся запросы: ревью диффа, генерацию changelog, проверку сборки.
Краткое описание формата — в справочнике команд, а этот раздел раскрывает его подробнее.
Где CLI ищет команды¶
Команды загружаются при старте из трёх источников:
| Источник | Путь |
|---|---|
| Пользовательские | ~/.kodacli/commands |
| Проектные | <рабочая область>/.kodacli/commands |
| Расширения | <extension>/commands |
Кроме того, промпты подключённых MCP-серверов появляются как команды. Подробнее — на странице MCP-серверы.
Приоритет от низшего к высшему: пользовательские → проектные → расширения.
Команды расширений при конфликте имён переименовываются, а в описании получают префикс [имя-расширения].
Подробнее — на странице расширения.
Формат файла¶
Каждый .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}}:
prompt = """
Объясни, что делает следующий код, простыми словами:
{{args}}
"""
Поведение зависит от наличия плейсхолдера:
- если
{{args}}есть — CLI подставит туда текст после имени команды; - если плейсхолдера нет — аргументы будут добавлены в конец промпта.
Shell-вставки¶
Команды могут вставлять вывод shell-команд через !{...}:
prompt = """
Вот текущий git status:
!{git status --short}
Предложи, как привести рабочую копию в порядок.
"""
Перед выполнением shell-вставки CLI покажет подтверждение.
Глобальные ограничения инструментов excludeTools и coreTools продолжают применяться
(см. настройки).
Примеры¶
Проектная команда для ревью:
description = "Ревью staged diff"
prompt = """
Проанализируй staged changes, найди риски и предложи минимальные проверки.
"""
Команда с аргументами:
description = "Проверить покрытие тестами"
prompt = """
Найди в проекте код без тестов по запросу: {{args}}
Предложи, какие тесты написать в первую очередь.
"""
После перезапуска CLI команды доступны в автодополнении по Tab.