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

Слеш-команды (промпты)

Это специальные заготовки промптов, которые начинаются с символа / и позволяют быстро выполнять предопределённые действия в Koda. Они доступны в режимах Чат, Агент и Планирование.

Слеш-команды упрощают работу с AI, предоставляя готовые сценарии для типовых задач.

Каждая команда должна иметь уникальное имя и описание.

Как использовать

  1. Введите / в поле ввода чата
  2. Выберите команду из выпадающего списка
  3. Нажмите Enter

Перед этим можно выделить часть текста в редакторе и нажать Ctrl/⌘ + L. Тогда выделенный текст будет подготовлен для отправки в следующем сообщении. Это позволит модели сфокусироваться на указанном участке.

Примеры: /explain, /review, /kodamd, /summarize

Несколько команд в одном сообщении

В одно сообщение можно добавить несколько разных команд. Каждая добавленная команда отображается в поле ввода отдельным блоком.

  • Команда, которая уже добавлена в сообщение, исключается из выпадающего списка — добавить её второй раз нельзя.
  • Каждый блок команды удаляется отдельно: остальные команды и текст сообщения сохраняются.
  • Чтобы вернуть команду в список, удалите её блок из поля ввода.
  • Текст внутри блока команды недоступен для редактирования: содержимое промпта задаётся только в конфигурации, а ваши дополнения пишутся обычным текстом рядом с блоком.
  • Пока сообщение обрабатывается, удалить блок команды из него нельзя — он становится доступен для удаления после завершения обработки.

Встроенные команды

Koda поставляется с небольшим набором встроенных слеш-команд. Их невозможно переопределить или удалить.

/kodamd

Создаёт или обновляет контекстный файл KODA.md в корне текущего открытого проекта с описанием правил и технических подробностей.

Как работает:

  1. Анализирует структуру проекта
  2. Определяет технологии и фреймворки
  3. Создаёт файл KODA.md с правилами
  4. Добавляет лучшие практики для проекта

Результат:

# KODA.md — Правила проекта

## Технологии
- TypeScript
- React
- Node.js

## Стиль кода
- Использовать ESLint
- Следовать Airbnb Style Guide

## Структура
- Компоненты в `/components`
- Хуки в `/hooks`

/summarize

Сжимает контекст, создавая краткий конспект всего диалога для экономии токенов.

Когда использовать:

  • Диалог стал слишком длинным (>20 сообщений)
  • Предупреждение о переполнении контекста (75%+)
  • Завершение этапа работы
  • Перед переключением на новую задачу
  • Хотите сохранить ключевые решения

Как работает:

  1. Анализирует всю историю диалога
  2. Выделяет ключевые решения и изменения
  3. Сохраняет информацию о файлах и инструментах
  4. Создаёт краткий конспект
  5. Добавляет summary сообщение в историю

Результат: ранние сообщения диалога заменяются кратким конспектом, засчёт чего освобождается место в контексте.

Автоматическая суммаризация:

  • Срабатывает, когда расход входных токенов достигает порога сжатия (75% окна модели, а для окон больше 40 000 токенов — окно минус 40 000)
  • Только в агентском режиме
  • Следующий запрос модели отправляется только после завершения сжатия — в чате в это время виден статус «Сжатие контекста...»
  • Управляется настройкой Автоматическое сжатие контекста на странице Пользовательские настройки
  • Параметр конфигурации — autoSummarize

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

Вы можете создавать собственные слеш-команды в конфигурации. Причём как глобально, для использования только на своей машине, так и в репозитории проекта.

  • Глобальные команды задаются в секции prompts файла ~/.koda/config.yaml.
  • Локальные команды хранятся в отдельных .prompt-файлах в папке .koda/prompts/ проекта. Они поддерживают продвинутый синтаксис: переменные, условия, циклы и контекст-провайдеры.

Подробно о настройке команд

  • Prompts — структура секции prompts, свойства и примеры команд
  • Prompt Files — формат .prompt-файлов, преамбула и синтаксис тела
  • Переменные в промптах — {{{ input }}}, {{ code }}, {{ file }} и ограничения переменных

Использование:

  1. Выделите код и нажмите Ctrl/⌘ + L для добавления к новому сообщению
  2. Введите /explain
  3. Нажмите Enter

Примеры команд для рефакторинга и документации кода:

prompts:
  - name: "refactor"
    description: "Рефакторинг кода"
    prompt: "Улучши этот код: сделай его чище, производительнее и читаемее. Объясни изменения."
  - name: "doc"
    description: "Создать документацию"
    prompt: "Создай документацию для этого кода в формате JSDoc"

Использование:

/refactor
/doc

Динамические промпты

Используйте шаблоны для динамических промптов:

prompts:
  - name: "commit"
    description: "Сгенерировать сообщение коммита"
    prompt: "Создай сообщение коммита без использования conventional commits на основе этих изменений: {{diff}}"

Переменные:

  • {{diff}} — текущие изменения
  • {{file}} — текущий файл
  • {{selection}} — выделенный текст

Команды из MCP-серверов

MCP-серверы могут предоставлять свои слеш-команды.

При подключении такого MCP-сервера они автоматически становятся доступны в чате.

Приоритет команд

Если у команд совпадают имена, core выполняет первую команду в порядке загрузки:

  1. встроенные команды (/kodamd, /summarize);
  2. .prompt-файлы;
  3. команды из секции prompts файла config.yaml;
  4. команды подключённых MCP-серверов.

Поэтому встроенные команды переопределить нельзя, а при совпадении имён пользовательской и MCP-команды сработает та, что загружена раньше. Чтобы не было путаницы, имена команд лучше делать уникальными.


Лучшие практики

1. Именование команд

✅ Хорошо:

  • /refactor — понятно
  • /doc — кратко
  • /test-unit — специфично

❌ Плохо:

  • /do-the-thing — непонятно
  • /my-super-command-123 — слишком длинно
  • /test — слишком обще (если есть /test-unit, /test-e2e)

2. Описание команд

✅ Хорошо:

description: "Рефакторинг кода с улучшением читаемости"

❌ Плохо:

description: "test123"

3. Промпты

✅ Хорошо:

prompt: "Улучши этот код: сделай его чище и производительнее. Объясни каждое изменение."

❌ Плохо:

prompt: "Сделай код лучше"