Файл config.yaml¶
Koda использует файл конфигурации config.yaml для настройки моделей, контекстных провайдеров и других параметров.
Для переопределения параметров в отдельном проекте используйте файл .kodarc.json.
Расположение файла конфигурации:
- Windows:
%USERPROFILE%/.koda/config.yaml - Linux / MacOS:
$HOME/.koda/config.yaml
Базовая структура¶
name: Koda
version: 0.0.1
schema: v1
models:
- name: Koda Models
provider: koda-chat-models
model: AUTODETECT
roles: [agent, chat, edit]
context:
- provider: code
- provider: docs
- provider: diff
- provider: terminal
- provider: problems
- provider: folder
- provider: codebase
Файл .kodarc.json¶
Помимо глобального config.yaml, Koda читает файл .kodarc.json в корне каждого проекта рабочей области.
Он позволяет переопределить часть параметров конфигурации для конкретного проекта, не затрагивая глобальные настройки других проектов.
Структура¶
Файл имеет формат JSON и использует те же свойства, что и config.yaml.
Достаточно перечислить только те свойства, которые вы хотите переопределить для проекта.
{
"models": [
{
"name": "Koda Models",
"provider": "koda-chat-models",
"model": "AUTODETECT",
"roles": ["agent", "chat", "edit"]
}
],
"context": [
{ "provider": "code" },
{ "provider": "diff" },
{ "provider": "codebase" }
],
"rules": ["Always use TypeScript"],
"mergeBehavior": "merge"
}
Полный пример с промптами и MCP-серверами:
{
"context": [
{ "provider": "codebase", "params": { "nFinal": 10 } },
{ "provider": "diff", "params": { "includeUnstaged": false } }
],
"rules": [
{
"name": "Code style",
"rule": "Use strict type annotations"
}
],
"prompts": [
{
"name": "check",
"description": "Check for mistakes in my code",
"prompt": "Please read the highlighted code and check for any mistakes"
}
],
"mcpServers": [
{
"name": "Filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/NAME/Documents"]
}
],
"mergeBehavior": "merge"
}
Состав свойств и их параметры идентичны config.yaml:
| Свойство | Описание | Раздел |
|---|---|---|
models |
Языковые модели и их роли | models |
context |
Провайдеры контекста | context |
rules |
Системные правила для LLM | rules |
prompts |
Пользовательские промпты | prompts |
mcpServers |
MCP-серверы | mcpServers |
indexingOptions |
Тонкая настройка индексации | indexingOptions |
disableIndexing |
Полное отключение индексации | disableIndexing |
Объединение с глобальным конфигом¶
Способ объединения с глобальным конфигом задаётся свойством mergeBehavior:
| Значение | Поведение |
|---|---|
merge |
Значение по умолчанию. Свойства проекта добавляются к глобальной конфигурации |
overwrite |
Глобальная конфигурация полностью заменяется конфигурацией проекта |
Несколько проектов в рабочей области
Если в рабочей области открыто несколько проектов, Koda прочитает .kodarc.json из корня каждого из них и применит их по очереди.
Ошибки в файле не ломают конфигурацию
Если .kodarc.json содержит некорректный JSON, этот файл пропускается с предупреждением, а конфигурация продолжает загружаться.
Если параметры из проекта не применились, проверьте синтаксис JSON в этом файле.
Спецификация¶
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string |
Да | Имя конфигурации/ассистента |
version |
string |
Да | Версия конфигурации (semver) |
schema |
string |
Нет | v1 |
models |
object[] |
Нет | Список языковых моделей |
context |
object[] |
Нет | Поставщики контекста |
rules |
object[] |
Нет | Системные правила для LLM |
prompts |
object[] |
Нет | Пользовательские промпты |
mcpServers |
object[] |
Нет | MCP-серверы |
models¶
Определяет языковые модели для разных режимов Koda.
Недоступно для SaaS-пользователей.
| Свойство | Тип | Описание |
|---|---|---|
name |
string |
Отображаемое имя модели |
provider |
string |
Поставщик: openai, anthropic, ollama, deepseek, openrouter |
model |
string |
Имя модели (например gpt-4o, claude-3-5-sonnet) |
apiKey |
string |
API-ключ поставщика |
apiBase |
string |
Базовый URL API |
roles |
string[] |
Роли модели. По умолчанию: [chat, edit, agent, plan] |
capabilities |
string[] |
Возможности: tool_use, image_input |
defaultCompletionOptions |
object |
Опции завершения (см. ниже) |
requestOptions |
object |
HTTP-опции (см. ниже) |
embedOptions |
object |
Опции эмбеддингов |
chatOptions |
object |
Опции чата |
promptTemplates |
object |
Шаблоны: apply, edit. Используют синтаксис Handlebars |
Koda поддерживает различные роли для моделей:
chat— для обычного чатаedit— для редактирования кодаagent— для агентского режимаplan— для режима планированияautocomplete— для автодополнения кодаapply— для применения изменений кодаembed— для создания эмбеддинговrerank— для ранжирования результатов
Если роль не указана явно, модель используется для всех ролей.
defaultCompletionOptions¶
| Свойство | Тип | Описание |
|---|---|---|
contextLength |
number |
Максимальная длина контекста в токенах |
maxTokens |
number |
Максимум генерируемых токенов |
temperature |
number |
Случайность: 0.0 (детерминированно) — 1.0 (случайно) |
topP |
number |
Nucleus sampling порог |
topK |
number |
Максимум токенов на шаг |
stop |
string[] |
Стоп-токены |
n |
number |
Количество генераций |
requestOptions¶
| Свойство | Тип | Описание |
|---|---|---|
timeout |
number |
Тайм-аут запроса |
verifySsl |
boolean |
Проверять SSL |
caBundlePath |
string\|string[] |
Путь к CA-пакету |
proxy |
string |
URL прокси |
headers |
string[] |
Заголовки |
extraBodyProperties |
object |
Доп. свойства тела |
noProxy |
string[] |
Исключения из прокси |
clientCertificate |
object |
Клиентский сертификат |
clientCertificate¶
| Свойство | Тип | Описание |
|---|---|---|
cert |
string |
Путь к сертификату |
key |
string |
Путь к ключу |
passphrase |
string |
Парольная фраза |
embedOptions¶
| Свойство | Тип | Описание | Ограничения |
|---|---|---|---|
maxChunkSize |
number |
Максимальный размер чанка в токенах | Минимум: 128 |
maxBatchSize |
number |
Максимальное количество чанков в батче | Минимум: 1 |
chatOptions¶
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
baseSystemMessage |
string |
Нет | Базовое системное сообщение для модели |
promptTemplates¶
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
apply |
string |
Нет | Шаблон Handlebars для режима применения кода (apply) |
edit |
string |
Нет | Шаблон Handlebars для режима редактирования кода (edit) |
context¶
Провайдеры контекста, которые можно добавить к сообщению через @.
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
provider |
string |
Да | Имя провайдера (см. список ниже) |
name |
string |
Нет | Отображаемое имя в меню @; учитывается только провайдером http |
params |
object |
Нет | Параметры провайдера |
provider¶
Значение provider выбирает встроенный провайдер контекста.
Провайдер появляется в меню @ поля ввода, только если он перечислен в секции context.
Исключение — провайдеры file и codebase: они доступны всегда, даже если их нет в списке.
Как пользоваться провайдерами в чате, описано на странице «Контекст-провайдеры».
Провайдеры различаются способом выбора данных:
- сразу — данные собираются при отправке сообщения без дополнительных шагов;
- из списка — после выбора провайдера открывается подменю: файлы, папки, задачи и т. п.;
- по запросу — после выбора провайдера нужно ввести текст запроса.
| Значение | Что добавляет | Выбор | Параметры |
|---|---|---|---|
file |
Содержимое выбранного файла | Из списка | — |
codebase |
Фрагменты кода из индекса, релевантные сообщению | Сразу | nFinal, nRetrieve |
code |
Код выбранной функции или класса | Из списка | — |
folder |
Фрагменты кода из выбранной папки | Из списка | nFinal, nRetrieve |
diff |
Текущие изменения git | Сразу | includeUnstaged |
terminal |
Последнюю команду в терминале и её вывод | Сразу | — |
problems |
Ошибки и предупреждения в активном файле | Сразу | — |
currentFile |
Содержимое активного файла | Сразу | — |
open |
Содержимое открытых файлов | Сразу | onlyPinned |
tree |
Дерево файлов рабочей области | Сразу | — |
repo-map |
Карту проекта: список файлов и сигнатуры | Из списка | includeSignatures |
search |
Результаты текстового поиска по проекту | По запросу | — |
url |
Текст веб-страницы | По запросу | — |
os |
Название ОС и архитектуру процессора | Сразу | — |
clipboard |
Недавно скопированный в редакторе текст | Из списка | — |
debugger |
Локальные переменные и стек вызовов при отладке | Из списка | stackDepth |
commit |
Коммиты git с изменениями | Из списка | Depth, LastXCommitsDepth |
http |
Ответ вашего HTTP-сервера | Сразу | url, headers, options и др. |
google |
Результаты поиска Google | По запросу | serperApiKey |
issue |
Задачу GitHub с комментариями | Из списка | githubToken, repos, domain |
gitlab-mr |
Merge request GitLab для текущей ветки | Сразу | token, domain, filterComments |
jira |
Задачу Jira с комментариями | Из списка | domain, token и др. |
postgres |
Структуру и примеры строк таблиц PostgreSQL | Из списка | host, database и др. |
database |
Структуру таблиц баз данных | Из списка | connections |
discord |
Сообщения из канала Discord | Из списка | discordKey, guildId |
Провайдеры по умолчанию
В VS Code новый файл config.yaml содержит секцию context из раздела «Базовая структура».
В JetBrains в ней перечислены только diff, folder и codebase.
Ограничения IDE и режимов
- Провайдеры
debuggerиclipboardработают только в VS Code. - В JetBrains провайдер
codeне показывается в меню @. - В режиме редактирования кода недоступны
codebase,folder,diff,open,tree,search,repo-mapиdebugger.
Токены и пароли
Значения параметров читаются из файла как есть: подстановка вида ${{ secrets.NAME }} не поддерживается.
Не добавляйте в систему контроля версий файлы config.yaml и .kodarc.json с токенами и паролями.
file¶
Добавляет содержимое выбранного файла целиком.
В подменю перечислены файлы рабочей области, кроме исключённых через .gitignore и .kodaignore, а недавно открытые файлы показаны первыми.
Если файл не помещается в окно контекста выбранной модели, Koda покажет предупреждение и не добавит его.
Провайдер доступен всегда и не требует настройки.
codebase¶
Ищет в индексе кодовой базы фрагменты кода, релевантные тексту сообщения, и добавляет найденное.
Запросом служит всё сообщение целиком, поэтому формулируйте его конкретно.
Поиск сочетает полнотекстовый поиск по индексу, поиск по смыслу (если доступна модель с ролью embed) и недавно изменённые файлы.
Провайдер доступен всегда. Без индекса он находит только фрагменты недавно изменённых файлов, поэтому включите индексацию.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
nFinal |
number |
5 | Примерное количество фрагментов в результате |
nRetrieve |
number |
2 × nFinal |
Количество фрагментов для предварительного отбора; учитывается, только если есть модель с ролью rerank |
code¶
Добавляет код выбранной функции, класса или метода.
Подменю строится по индексу кодовой базы, поэтому без индексации оно пустое.
Список также пуст, если в disabledIndexes указан индекс snippets.
В JetBrains провайдер не показывается в меню @.
folder¶
Ищет фрагменты кода, релевантные сообщению, только в выбранной папке.
Провайдер работает так же, как codebase, но с ограничением по папке: в запрос попадают не все файлы папки, а только найденные фрагменты.
В подменю перечислены папки рабочей области.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
nFinal |
number |
5 | Примерное количество фрагментов в результате |
nRetrieve |
number |
2 × nFinal |
Количество фрагментов для предварительного отбора при наличии модели rerank |
diff¶
Добавляет текущие изменения git по всем репозиториям рабочей области. Новые файлы, ещё не добавленные в git, в результат не попадают. Если изменений нет, модель получит сообщение об их отсутствии.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
includeUnstaged |
boolean |
true | Учитывать изменения, не подготовленные к коммиту (git add) |
Состав изменений зависит от IDE:
| IDE | includeUnstaged: true |
includeUnstaged: false |
|---|---|---|
| VS Code | Подготовленные и неподготовленные изменения | Только подготовленные изменения |
| JetBrains | Только неподготовленные изменения | Только подготовленные изменения |
terminal¶
Добавляет последнюю выполненную в терминале команду и её вывод. В VS Code используется активный терминал, в JetBrains — выбранная вкладка встроенного терминала. Если открытых терминалов нет, контекст будет пустым.
problems¶
Добавляет диагностику активного файла: текст каждой проблемы и фрагмент кода вокруг неё. В VS Code учитываются все сообщения панели Problems, в JetBrains — только ошибки и предупреждения. Если проблем нет, модель получит сообщение об их отсутствии.
currentFile¶
Добавляет содержимое файла, активного в редакторе. Без настройки тот же файл можно приложить, отправив сообщение сочетанием Alt + Enter.
open¶
Добавляет содержимое всех открытых в редакторе файлов.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
onlyPinned |
boolean |
false | Добавлять только закреплённые вкладки; работает только в VS Code |
tree¶
Добавляет дерево файлов и папок всех проектов рабочей области.
Файлы, исключённые через .gitignore и .kodaignore, не показываются.
В больших проектах дерево может занять значительную часть контекста.
repo-map¶
Добавляет карту проекта: список файлов и сигнатуры классов, функций и методов в них. В подменю можно выбрать весь проект (Entire codebase) или отдельную папку. Объём карты ограничен половиной окна контекста модели.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
includeSignatures |
boolean |
true | Включать сигнатуры; без индексации добавляется только список файлов |
search¶
Ищет текст по файлам проекта с помощью ripgrep и добавляет найденные строки с номерами. После выбора провайдера введите запрос — это регулярное выражение, регистр букв не учитывается. В результат попадает не больше 200 совпадений на файл, длинные строки обрезаются.
url¶
Загружает веб-страницу и добавляет её основной текст в формате Markdown.
После выбора провайдера введите адрес страницы целиком, включая https://.
JavaScript на странице не выполняется, поэтому содержимое, которое строится в браузере, не попадёт в контекст.
Если страница не загрузилась за 60 секунд или не содержит текста, ничего не добавляется.
os¶
Добавляет название операционной системы и архитектуру процессора. Полезно для вопросов об установке, путях и командах оболочки.
clipboard¶
Добавляет один из последних 10 фрагментов, скопированных в редакторе VS Code. Копирование из других приложений не учитывается, а список очищается при перезапуске IDE.
debugger¶
Добавляет локальные переменные и исходный код верхних кадров стека вызовов. Работает только в VS Code во время сеанса отладки, остановленного на точке останова. В подменю перечислены приостановленные потоки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
stackDepth |
number |
3 | Сколько верхних кадров стека добавлять |
commit¶
Добавляет коммит git вместе с изменениями. В подменю перечислены последние коммиты первого проекта рабочей области, а первым пунктом идёт last N commits — сразу несколько последних коммитов. Для работы нужен установленный git.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Depth |
number |
50 | Сколько последних коммитов показывать в подменю |
LastXCommitsDepth |
number |
10 | Сколько коммитов добавляет пункт last N commits |
http¶
Получает контекст от вашего HTTP-сервера.
При отправке сообщения Koda делает запрос POST на указанный адрес и передаёт в теле JSON с полями:
query— строка запроса провайдера (обычно пустая);fullInput— полный текст сообщения;options— значение параметраoptions.
Сервер должен вернуть JSON-объект или массив объектов с полями name, description и content.
В запрос к модели попадает значение content.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
url |
string |
— | Адрес эндпоинта |
headers |
object |
— | Заголовки запроса: карта имя: значение |
options |
any |
— | Произвольные данные, которые передаются в теле запроса |
title |
string |
http |
Имя провайдера после @; задайте разные значения, если подключаете несколько серверов |
name |
string |
HTTP | Отображаемое имя в меню @ |
description |
string |
— | Описание в меню @ |
renderInlineAs |
string |
— | Текст, которым упоминание заменяется в сообщении |
context:
- provider: http
name: Внутренняя вики
params:
title: wiki
url: https://wiki.example.com/koda-context
headers:
Authorization: Bearer <токен>
options:
space: backend
google¶
Ищет в Google и добавляет заголовки, адреса и краткие описания найденных страниц. После выбора провайдера введите поисковый запрос. Для работы нужен ключ сервиса Serper.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
serperApiKey |
string |
— | Ключ API Serper |
issue¶
Добавляет задачу GitHub: описание и все комментарии. В подменю перечислены задачи из указанных репозиториев.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
githubToken |
string |
— | Персональный токен GitHub; для приватных репозиториев обязателен |
repos |
array |
— | Список репозиториев |
domain |
string |
— | Домен GitHub Enterprise Server |
Поля элемента repos:
| Поле | Тип | Описание |
|---|---|---|
owner |
string |
Владелец репозитория (пользователь или организация) |
repo |
string |
Имя репозитория |
type |
string |
Какие задачи показывать: open (по умолчанию), closed или all |
GitHub Enterprise Server
Параметр domain учитывается только при загрузке выбранной задачи, а список задач всегда запрашивается у github.com.
Поэтому с GitHub Enterprise Server провайдер полноценно не работает.
context:
- provider: issue
params:
githubToken: <токен>
repos:
- owner: myorg
repo: myrepo
type: open
gitlab-mr¶
Находит открытые merge request для текущей ветки и добавляет их название, описание и комментарии к строкам кода. Для каждого комментария указываются автор, дата, статус обсуждения и строка, к которой он оставлен. Провайдер работает с первым проектом рабочей области: у текущей ветки должна быть настроена ветка на удалённом сервере.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
token |
string |
— | Персональный токен GitLab с правом read_api |
domain |
string |
gitlab.com | Домен GitLab; подключение выполняется по HTTPS |
filterComments |
boolean |
false | Если к сообщению приложен выделенный код, оставлять только комментарии к его файлам |
context:
- provider: gitlab-mr
params:
domain: gitlab.company.com
token: <токен>
filterComments: true
jira¶
Добавляет задачу Jira: заголовок, описание и комментарии. В подменю перечислены задачи, найденные по JQL-запросу. Провайдер работает с Jira Server и Jira Data Center.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
domain |
string |
— | Домен Jira без https:// |
token |
string |
— | Персональный токен доступа или пароль |
email |
string |
— | Имя пользователя; если задано, token используется как пароль |
apiVersion |
string |
"3" |
Версия API; для Jira Server и Data Center укажите "2" |
issueQuery |
string |
assignee = currentUser() AND resolution = Unresolved order by updated DESC |
JQL-запрос для списка задач |
maxResults |
number |
50 | Максимум задач в подменю |
Jira Cloud
С Jira Cloud список задач не загружается, поэтому подменю остаётся пустым.
context:
- provider: jira
params:
domain: jira.company.com
token: <токен>
apiVersion: "2"
maxResults: 30
postgres¶
Добавляет структуру таблицы PostgreSQL (столбцы и их типы) и несколько её строк. В подменю перечислены таблицы выбранной схемы и пункт All tables для всех таблиц сразу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
host |
string |
— | Хост |
port |
number |
5432 | Порт |
user |
string |
— | Пользователь |
password |
string |
— | Пароль |
database |
string |
— | Имя базы данных |
schema |
string |
public | Схема |
sampleRows |
number |
3 | Сколько строк каждой таблицы добавлять |
Данные таблиц
Строки таблиц отправляются модели вместе с запросом. Подключайтесь под пользователем с правами только на чтение и не используйте базы с персональными данными.
context:
- provider: postgres
params:
host: localhost
port: 5432
user: developer
password: <пароль>
database: myapp
schema: public
sampleRows: 5
database¶
Добавляет структуру таблиц одной или нескольких баз данных без самих данных. В подменю для каждого подключения перечислены его таблицы и пункт со структурой всех таблиц сразу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
connections |
array |
— | Список подключений |
Поля элемента connections:
| Поле | Тип | Описание |
|---|---|---|
name |
string |
Имя подключения, которое отображается в подменю |
connection_type |
string |
Тип СУБД: postgres, mysql, mssql или sqlite |
connection |
object |
Параметры подключения |
Параметры connection зависят от типа СУБД:
| Тип | Параметры |
|---|---|
postgres, mysql |
host, port, user, password, database |
mssql |
server, port, user, password, database |
sqlite |
filename — путь к файлу базы данных |
Для PostgreSQL учитываются только таблицы схемы public.
context:
- provider: database
params:
connections:
- name: local
connection_type: sqlite
connection:
filename: /path/to/db.sqlite
- name: main
connection_type: postgres
connection:
host: localhost
port: 5432
user: developer
password: <пароль>
database: myapp
discord¶
Добавляет последние сообщения из выбранного текстового канала Discord. В подменю перечислены текстовые каналы сервера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
discordKey |
string |
— | Токен бота Discord |
guildId |
string |
— | Идентификатор сервера |
Бот должен быть добавлен на сервер с правом читать историю сообщений. Чтобы получать текст сообщений, включите для бота Message Content Intent в настройках приложения Discord.
rules¶
Правила, объединяемые в системное сообщение для всех режимов.
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string |
Нет | Отображаемое имя правила |
rule |
string |
Да | Текст правила |
uses |
string |
Нет | Slug пакета правила |
with |
Record<string, string> |
Нет | Переменные для пакета |
if |
string |
Нет | Условие применения правила |
rules:
- Always use TypeScript
- Write Google-style docstrings
- name: Server-side components
rule: Use Next.js server components where possible
if: ${{ glob("*.tsx") and contains(current.model.model, "claude-3-7-sonnet") }}
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string |
Нет | Отображаемое имя правила |
rule |
string |
Да | Текст правила (инструкция для LLM) |
if |
string |
Нет | Условие применения правила (шаблонное выражение) |
Условные правила могут применяться с помощью выражений в синтаксисе if.
Доступные функции для if:
| Функция | Описание | Пример |
|---|---|---|
glob(pattern) |
Проверка соответствия пути шаблону | glob("*.tsx") |
contains(str, substr) |
Проверка вхождения подстроки | contains(current.model.model, "claude") |
and |
Логическое И | expr1 and expr2 |
or |
Логическое ИЛИ | expr1 or expr2 |
not |
Логическое НЕ | not expr |
Доступные переменные для if:
| Переменная | Описание |
|---|---|
current.model.model |
Текущая модель (например, claude-3-7-sonnet) |
activePaths (неявно) |
Активные пути файлов в редакторе |
Примеры условий
Применять только к TypeScript файлам:
rules:
- name: TypeScript Strict
rule: Use strict type annotations
if: ${{ glob("*.ts") or glob("*.tsx") }}
Применять только для определённой модели:
rules:
- name: Detailed Explanations
rule: Provide detailed explanations with code examples
if: ${{ contains(current.model.model, "gpt-4") }}
Комбинированное условие:
rules:
- name: React Best Practices
rule: Use functional components with hooks
if: ${{ glob("*.tsx") and contains(current.model.model, "claude-3-7-sonnet") }}
Применять ко всем Python файлам кроме тестов:
prompts¶
Пользовательские промпты, вызываемые из окна чата.
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string |
Да | Имя промпта |
description |
string |
Нет | Описание |
prompt |
string |
Да | Текст промпта |
prompts:
- name: check
description: Check for mistakes in my code
prompt: |
Please read the highlighted code and check for any mistakes:
- Syntax errors
- Logic errors
- Security vulnerabilities
- name: test
description: Write unit tests
prompt: Write comprehensive unit tests for the selected code using Jest
Внутри prompt доступны контекст-провайдеры (упоминаются в тексте через @) и встроенные переменные:
| Переменная | Описание | Пример использования |
|---|---|---|
{{{ input }}} |
Пользовательский ввод после команды | {{{ input }}} |
{{{ code }}} |
Выделенный код | {{ code }} |
{{{ file }}} |
Текущий файл | {{ file }} |
mcpServers¶
Model Context Protocol серверы.
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string |
Да | Имя сервера |
command |
string |
Да | Команда запуска |
args |
string[] |
Нет | Аргументы команды |
env |
object |
Нет | Переменные окружения, карта переменная: значение |
mcpServers:
- name: SQLite
command: uvx
args:
- "mcp-server-sqlite"
- "--db-path"
- "/Users/NAME/test.db"
- name: Filesystem
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/Users/NAME/Documents"
indexingOptions¶
Тонкая настройка индексации кодовой базы: производительность и объём потребляемых ресурсов.
По умолчанию индексация выключена; включить её можно в настройках плагина или параметром disableIndexing.
| Свойство | Тип | Описание |
|---|---|---|
concurrency |
number |
Максимум параллельных запросов эмбеддингов |
batchSize |
number |
Файлов в одном батче индексации |
chunksPerIteration |
number |
Максимум чанков на одну итерацию эмбеддингов |
disabledIndexes |
string[] |
Какие индексы не строить (vectordb, fts, snippets) |
deleteBatchSize |
number |
Файлов в одной операции удаления из векторного хранилища |
compactionThreshold |
number |
Порог компакции векторной таблицы за один проход |
disableIndexing¶
true
Отключает индексацию кодовой базы.
Чтобы включить индексацию, укажите disableIndexing: false или включите переключатель Включить индексацию в настройках плагина.
Значение, выбранное в настройках плагина, имеет приоритет над файлом конфигурации.
Без индекса провайдеры codebase и folder находят только фрагменты недавно изменённых файлов, подменю code остаётся пустым, а repo-map добавляет список файлов без сигнатур.
Остальные провайдеры контекста работают как обычно.