Авто-Одобрение
Авто-одобрение отвечает на вопрос «когда Kodik спрашивает разрешение?». Настройки находятся в разделе Auto Approve настроек Kodik. Если нужно, чтобы агент вообще не имел какой-то возможности, отключите инструмент в разделе Harness — это полностью убирает его у агента. См. Инструменты.
Как это работает
Заголовок раздела «Как это работает»Большую часть работы агент выполняет без запросов — в рабочей области чата и в любой другой папке, поэтому чат, который работает сразу с несколькими рабочими областями или соседним репозиторием, не останавливается на каждом файле.
Без запроса выполняются:
- чтение файлов, поиск и просмотр папок (
read_file,grep,glob), навигация по коду и диагностика; - изменение, создание и удаление файлов и блокнотов — кроме защищённых путей;
- команды терминала, которые только читают (
cat,ls,rg,git logи т. п.), — см. ниже; - поиск в интернете и запуск субагентов;
- действия браузера на локальных страницах (
localhost,127.0.0.1, файлы); - инструменты MCP, которые их сервер помечает как только читающие.
Запрос появляется для:
- изменения файла по защищённому пути;
- команды терминала, которую не покрывает ни список читающих команд, ни ваши шаблоны команд, и любой команды из списка заблокированных;
- первой загрузки страницы с нового домена (
web_fetch) — см. Веб-домены; - действия браузера на сайте, который не является локальным, — см. Сайты браузера;
- остальных инструментов MCP.
Подтверждение создания файла сохраняет кнопки Одобрить и Отклонить, даже если нет изменений для просмотра. Для таких карточек работают те же сочетания клавиш.
Если вы отклоняете действие, Kodik запоминает инструмент и его точные аргументы на время текущего запроса, в том числе после компактизации. Агент может предложить другое действие, а ваше новое сообщение позволяет снова запросить подтверждение исходного действия. Перестановка полей объекта, в том числе вложенного, не меняет действие; другие значения или порядок элементов массива считаются другим действием. Пропуск карточки не сохраняет такой отказ. В отчёте субагента отклонённое действие также отличается от ошибки выполнения.
Ответ на запрос с клавиатуры
Заголовок раздела «Ответ на запрос с клавиатуры»Когда сфокусирован чат, Alt+Enter выполняет основную кнопку ожидающей карточки, а Alt+Backspace — дополнительную: «Одобрить»/«Отклонить» или то, как они названы в конкретной карточке. Обе кнопки показывают сочетание клавиш, на которое отвечают, а после переназначения команд kodik.chat.approvePendingAction и kodik.chat.rejectPendingAction в редакторе горячих клавиш подсказка обновляется. Черновик в поле ввода при этом сохраняется.
Нажатие Stop, пока инструмент ждёт подтверждения, отменяет ход. Инструмент не запускается, а его карточка показывает Canceled.
Разрешение прямо из карточки запроса
Заголовок раздела «Разрешение прямо из карточки запроса»У кнопки Одобрить в карточке запроса есть выпадающее меню. Оно предлагает разрешение, которое избавит от повторных запросов для подобных вызовов, и одним нажатием сохраняет его и одобряет ожидающий вызов:
- Команда терминала предлагает шаблоны, построенные из неё самой:
npm run *иnpm *дляnpm run build. - Загрузка страницы предлагает её домен: «Всегда разрешать загрузку с docs.python.org».
- Действие браузера предлагает сайт, на котором оно выполняется: «Всегда разрешать действия браузера на example.com».
- Пункт Настройки автоодобрения ничего не разрешает — он открывает настройки, описанные на этой странице.
Kodik предлагает только то разрешение, которое действительно сработает. Для цепочки команд шаблон не предлагается, так как один шаблон не покроет все её сегменты; для команды из списка заблокированных не предлагается ничего, потому что этот список имеет приоритет над шаблонами. Для защищённого пути тоже ничего не предлагается: такое изменение одобряется по одному, а сам список меняется в настройках.
Режимы одобрения
Заголовок раздела «Режимы одобрения»Переключатель Режим подтверждений (mode) выбирает один из трёх уровней. Его же можно переключить кнопкой под полем ввода; её значок показывает текущий режим: замок — «Стандартные подтверждения», робот — «Автопилот», открытый замок — «Полный доступ».
- Стандартные подтверждения (
default) — всё, что перечислено выше в «Как это работает». - Автопилот (
autopilot) — команды терминала, загрузка страниц, действия браузера и инструменты MCP выполняются автоматически. Основной ограничитель — суждение самой модели: команду, которую модель пометила как рискованную (например, force-push), всё ещё нужно подтвердить. Изменение защищённого пути, команда из списка заблокированных, ввод учётных данных, буфер обмена и загрузка файлов в браузере по-прежнему требуют подтверждения. - Полный доступ (
fullAccess) — всё выполняется без запросов, кроме команд из списка заблокированных. Используйте только в изолированных одноразовых средах.
В ранних версиях был переключатель Автопилота (
autopilotMode). Включённый переключатель автоматически мигрирует вmode: "autopilot".
Защищённые пути
Заголовок раздела «Защищённые пути»Изменение, создание или удаление файла по защищённому пути требует подтверждения в режимах Стандартные подтверждения и Автопилот. Это файлы, которые дают власть над агентом или средой либо хранят секреты. По умолчанию защищены:
- внутренности Git:
**/.git/**; - конфигурация, которая запускает код или выдаёт права:
**/.kodik/hooks/**,**/.kodik/skills/**,**/.kodik/commands/**,**/.kodik/*.json,**/.vscode/*.json,**/.mcp.json,**/.claude/**,**/.codex/**,**/.cursor/**,**/.husky/**; - секреты:
**/.env,**/.env.*(кроме.env.example,.env.sampleи.env.template),**/.npmrc,**/.yarnrc,**/.yarnrc.yml,**/.pypirc,**/.netrc; - домашние dotfiles и системные папки:
~/.*,~/.*/**,~/Library/**,~/AppData/**,/etc/**,/usr/**,/System/**,/Library/**,C:/Windows/**,C:/Program Files/**,C:/Program Files (x86)/**,C:/ProgramData/**.
Шаблон с **/ или просто имя (.env, secrets/*.json) действует в любой папке. Шаблон с ~/ или абсолютный путь описывает место за пределами папок чата: если открыть как рабочую область, например, репозиторий с dotfiles, его файлы изменяются как в любом проекте. Строка, начинающаяся с !, делает исключение из совпавших выше шаблонов.
Список можно дополнить или сократить в настройках; Сбросить к значениям по умолчанию возвращает встроенный список.
Команды, которые только читают
Заголовок раздела «Команды, которые только читают»Команды терминала, которые только читают, выполняются без запроса, как и собственные инструменты агента для чтения: cat, head, tail, wc, sort, diff, sed -n '10,20p', git status, git log, git diff, git show, ls, find, tree, pwd, echo, cd, grep, rg, git grep — в любой папке.
Команда перестаёт считаться читающей, если она пишет файл через перенаправление (>, >>; > /dev/null и 2>&1 допустимы), подставляет переменную или результат другой команды ($HOME, $(...)), задаёт переменные окружения перед командой, запускается в фоне через & или использует ключи, которые пишут файлы или запускают программы: find -exec и -delete, sed -i, sort -o, rg --pre, git -c, git grep -O, git grep --open-files-in-pager. Такая команда требует подтверждения или совпадения с шаблоном.
Шаблоны команд
Заголовок раздела «Шаблоны команд»Шаблоны (commandPatterns) одобряют отдельные команды терминала без включения Автопилота. Каждый шаблон поддерживает символ * (например, npm run *, git *), и его можно временно отключить, не удаляя.
Команды сравниваются с шаблоном без учёта регистра; совпадение идёт с начала строки, и шаблону должен соответствовать каждый сегмент цепочки. Шаблон одобряет саму команду, но не то, куда она пишет: команда, которая перенаправляет вывод в защищённый путь (например, echo x > ~/.zshrc при шаблоне echo *), или команда, запущенная внутри защищённой папки (workdir), всегда требует подтверждения.
Заблокированные команды
Заголовок раздела «Заблокированные команды»Список заблокированных (blockedCommands) — это приоритетный запрет: любая команда, совпадающая с шаблоном из этого списка, всегда требует подтверждения, в любом режиме — Стандартные подтверждения, Автопилот и Полный доступ. Он имеет приоритет над шаблонами команд, поэтому широкое разрешающее правило (например, git *) не сможет автоматически выполнить заблокированную команду (например, git push *). Каждый шаблон поддерживает символ * и проверяется для каждого сегмента цепочки команд. Список действует и для команды, которой браузер запускает dev-сервер.
По умолчанию список пуст. Частые варианты:
- Удаление файлов:
rm *,sudo rm *,del *,Remove-Item * - Очистка git:
git clean* - Уничтожение диска:
mkfs*,dd if=*,format * - Выключение системы:
shutdown*,reboot*
Веб-домены
Заголовок раздела «Веб-домены»web_fetch загружает страницы с доменов из списка Web Fetch Domains без запроса; первая загрузка с любого другого домена требует подтверждения, и её карточка может добавить домен в список. Запись example.com означает только этот домен, *.example.com — также его поддомены, а * — любой домен. Поиск в интернете (web_search) подтверждения не требует.
Сайты браузера
Заголовок раздела «Сайты браузера»Браузер работает с локальными страницами (localhost, 127.0.0.1, *.localhost, файлы) без запроса. На любом другом сайте открытие страницы и действия на ней (клик, ввод текста, прокрутка) требуют подтверждения, пока сайт не добавлен в список Browser Sites — из карточки запроса или в настройках. Ввод учётных данных, чтение и запись буфера обмена и загрузка файлов требуют подтверждения на любом сайте. Если start запускает dev-сервер, его команда проходит те же правила, что и команды терминала.
Инструменты MCP
Заголовок раздела «Инструменты MCP»Инструмент MCP выполняется без запроса, если его сервер помечает инструмент как только читающий (readOnlyHint) или если инструмент указан в autoApprove в конфигурации сервера. Флажок Автоодобрение в карточке инструмента MCP добавляет его туда. Остальные инструменты MCP требуют подтверждения.
Лучшие практики
Заголовок раздела «Лучшие практики»- Добавляйте шаблоны для команд, которые вы и так всегда одобряете: сборка, тесты, линтер.
- Добавьте в заблокированные команды то, что никогда не должно выполняться само, например
git push *илиrm *. - Дополните защищённые пути файлами, которые в вашем проекте хранят секреты или управляют деплоем.
- Автопилот и Полный доступ включайте для изолированных сред; для работы с продакшеном оставайтесь в Стандартных подтверждениях.
