VS Code

Cusp в VS Code, Cursor и Kiro — правки проверяются в редакторе диффов, контекст берётся из выделения и диагностики, а запросы на подтверждение приходят нативно.

Расширение Cusp открывает агента на панели VS Code. Оно работает как клиент локального демона (daemon) Cusp, поэтому сессии те же, что в десктопном приложении и CLI cusp: начните в редакторе и продолжите в терминале или наоборот.

Расширение появится в VS Code Marketplace и Open VSX с первым публичным релизом.

Требования

  • VS Code 1.105 или новее либо совместимый редактор, например Cursor или Kiro.
  • Доверенная рабочая область. В режиме ограниченного доступа (Restricted Mode) расширение не работает.
  • Провайдер моделей, настроенный в Cusp, или ключ провайдера в переменных окружения.

Установка

Установите расширение

Будет доступно с первым публичным релизом.

Откройте Cusp

Нажмите значок Cusp на панели действий или ⌘⎋ (Ctrl+Esc).

Что вы получаете

  • Панель Cusp на панели действий или во вкладке редактора (Cusp: Open in New Tab): сессии этой рабочей области, потоковая переписка с вызовами инструментов, подтверждениями и вопросами, а также выбор режима, модели и уровня рассуждений.
  • Проверка правок в редакторе диффов. Когда Cusp хочет изменить файл, предложение открывается рядом с ним. Нажмите Accept (⌘↵) или Reject (⌘⌫) в заголовке редактора. Готовые изменения можно снова открыть из переписки и откатить.
  • Контекст из редактора. Выделенный фрагмент предлагается вместе со следующим сообщением. ⌥K добавляет его как упоминание вида @src/app.ts#L10-20. Через @ можно упомянуть файлы, включая несохранённые изменения. Cusp: Fix Problems in This File отправляет диагностику файла.
  • Нативные запросы. Когда панель скрыта, подтверждения, вопросы и проверка планов также приходят как уведомления и быстрый выбор (quick pick) VS Code.
  • Строка состояния. Показывает подключение к демону и то, работает ли сессия или ждёт вас.
  • Передача в терминал. Cusp: Continue Session in Terminal открывает сессию в терминальном интерфейсе cusp. cusp, запущенный во встроенном терминале этого окна, может читать ваше выделение и диагностику и открывать диффы в редакторе.

Горячие клавиши

КомандаmacOSWindows / Linux
Открыть Cusp⌘⎋Ctrl+Esc
Новая сессия⌘⇧⎋Ctrl+Shift+Esc
Добавить выделение в чат⌥KAlt+K
Принять / отклонить предложение (редактор диффов)⌘↵ / ⌘⌫Ctrl+Enter / Ctrl+Backspace
Ответить на ожидающий запрос⌘⌥YCtrl+Alt+Y
Сменить режим разрешений (в поле ввода)⇧⇥Shift+Tab

Другие команды в категории Cusp: New Session, Show Sessions, Add File, Interrupt, Revert Change и Reconnect to Daemon.

Настройки

НастройкаПо умолчаниюНазначение
cusp.daemon.urlПодключаться к этому демону, а не искать его
cusp.daemon.pathПуть к исполняемому файлу cusp-daemon, который нужно запустить
cusp.daemon.dataDir~/.cuspПапка данных для демона, который запускает расширение
cusp.permissions.nativePromptswhenHiddenПоказывать подтверждения как уведомления VS Code: always, whenHidden или never
cusp.diffs.reviewEditstrueОткрывать предложенные правки на проверку в редакторе диффов
cusp.context.shareSelectiontrueПредлагать выделение в редакторе вместе со следующим сообщением
cusp.terminal.bridgetrueРазрешить cusp во встроенных терминалах обращаться к этому окну

Как расширение находит демон

Расширение подключается по порядку:

  1. К демону по адресу cusp.daemon.url, если он задан.
  2. К уже работающему демону, например демону десктопного приложения, который находится через ~/.cusp/daemon.json.
  3. К демону, который оно запускает само: cusp.daemon.path, затем cusp-daemon из комплекта десктопного приложения, затем cusp-daemon из PATH. Запущенный так демон останавливается, когда окно закрывается.

Мост с терминалом

cusp во встроенном терминале связывается с VS Code через WebSocket на 127.0.0.1 со случайным портом и случайным токеном для каждого окна. Адрес и токен передаются только терминалам этого окна через переменные окружения и никогда не записываются на диск. Токен проверяется за постоянное время, а любой запрос из браузера (с заголовком Origin) отклоняется. Отключить мост можно настройкой cusp.terminal.bridge.

Дальше

На этой странице