ACP-режим¶
ACP (Agent Client Protocol) — это открытый протокол взаимодействия AI-агентов с редакторами и IDE.
В ACP-режиме Koda CLI работает как сервер: IDE-клиент запускает его как подпроцесс и отправляет запросы по протоколу JSON-RPC 2.0 через stdin/stdout, а CLI возвращает ответы и потоковые обновления. ACP нужен, когда вы хотите использовать функционал Koda в вашей любимой IDE, для которого нет подходящего готового плагина.
Полное описание доступно по этой ссылке, там всё намного подробнее.
А вот здесь можно найти полный список клиентов, которые поддерживают ACP. Если в этом списке есть ваш любимый редактор или IDE, значит с ним можно использовать Koda.
Подготовка¶
Если Koda CLI ещё не установлен, поставьте Node.js версии 20 или новее и выполните:
Если CLI уже установлен, обязательно обновите его до актуальной версии:
Запустить CLI без глобальной установки можно через npx:
Специальная настройка самого ассистента не требуется, но перед подключением к IDE авторизуйтесь: запустите koda в обычном терминале и выполните команду /auth с выбором «Войти через Koda Auth».
Подробности в разделе авторизации.
Некоторым клиентам нужны абсолютные пути до исполняемых файлов node и koda.
Узнать их можно так:
# linux/macos
which node npx koda
# windows cmd
where node npx koda
# windows powershell
(Get-Command node, npx, koda).Path
Запуск¶
ACP-режим включается флагом --acp.
Не запускайте в терминале
Флаг --acp нужен только для ACP-клиентов.
Если запустить koda --acp в обычном терминале, процесс будет ждать JSON-RPC сообщения от клиента и не откроет интерактивный интерфейс.
IDE запускает koda --acp как подпроцесс и пишет запросы в stdin.
Взаимодействие с агентом происходит через собственный UI среды разработки или редактора.
Аутентификация¶
Клиент выбирает способ аутентификации из методов, объявленных агентом:
- Войти через Koda Auth — вход через Koda Auth;
- Продолжить без аутентификации — работа без аутентификации.
Для долгих автоматических сценариев удобно заранее выполнить вход в обычном терминале, чтобы CLI не запрашивал его повторно.
Токены хранятся в ~/.config/koda/credentials.json.
Если этот файл нельзя создать или обновить, ACP-сессия в клиенте может не стартовать.
Подробнее об авторизации — на странице авторизация.
Отладка¶
Поскольку stdout занят JSON-RPC фреймами, служебные сообщения пишутся в stderr. Wrapper-скрипты не должны выводить произвольный текст в stdout, чтобы не повредить транспорт.
Общий флаг отладки:
Телеметрия включается отдельными флагами и может перенаправляться в файл:
--telemetry— включить отправку телеметрии;--telemetry-target— цель:localилиgcp;--telemetry-outfile— перенаправить всю телеметрию в указанный файл.
Ограничения¶
- В ACP-режиме недоступен интерактивный TUI, поэтому работает только ограниченный набор слеш-команд:
/about,/docs,/init,/compress,/help. - Команды и действия, которым нужен интерактивный диалог или подтверждение в TUI, недоступны.
- Vim mode в ACP-сессии не поддерживается.
- stdout зарезервирован под протокол: любая посторонняя запись в stdout испортит обмен.
Протокол¶
Полная спецификация — на странице спецификация ACP-сервера.
Там описаны транспорт, жизненный цикл соединения, методы агента и клиента, параметры сессии (session/new), восстановление и ветвление сессий, а также коды ошибок.
Устранение проблем¶
| Проблема | Что проверить |
|---|---|
| Клиент не видит агента | Убедитесь, что в command указан koda --acp, а koda доступен в PATH |
| Сессия сразу завершается | Проверьте koda --version в терминале и доступ к ~/.config/koda/credentials.json |
| CLI просит аутентификацию | Выполните вход через обычный koda заранее |
| Команда в чате не работает | Возможно, это слеш-команда или действие, недоступное в ACP |
| Нужны логи ACP | Используйте --debug и читайте stderr, либо включите телеметрию в файл |