Установка плагина OpenCode
Что вы сможете сделать после обучения
- Установить плагин Plannotator в OpenCode
- Настроить инструмент
submit_planи команду/plannotator-review - Установить переменные окружения (удалённый режим, порт, браузер и др.)
- Проверить успешность установки плагина
Ваша текущая проблема
При использовании AI Agent в OpenCode проверка планов требует чтения текстовых планов в терминале, что затрудняет точную обратную связь. Вы хотите визуальный интерфейс для аннотирования планов, добавления комментариев и автоматической отправки структурированной обратной связи обратно Agent.
Когда использовать этот метод
Обязательно перед началом работы с Plannotator: если вы разрабатываете в среде OpenCode и хотите получить интерактивный опыт проверки планов.
🎒 Подготовка перед началом
- [ ] Установлен OpenCode
- [ ] Знакомы с базовой настройкой
opencode.json(система плагинов OpenCode)
Предварительные знания
Если вы ещё не знакомы с базовыми операциями OpenCode, рекомендуем сначала прочитать официальную документацию OpenCode.
Основная идея
Plannotator предоставляет две основные функции для OpenCode:
- Инструмент
submit_plan— вызывается после завершения плана Agent, открывает браузер для интерактивной проверки - Команда
/plannotator-review— ручной запуск проверки кода через Git diff
Процесс установки состоит из двух шагов:
- Добавление конфигурации плагина в
opencode.json(включение инструментаsubmit_plan) - Запуск скрипта установки (получение команды
/plannotator-review)
Следуйте за мной
Шаг 1: Установка плагина через opencode.json
Найдите файл конфигурации OpenCode (обычно в корневом каталоге проекта или каталоге пользовательских настроек) и добавьте Plannotator в массив plugin:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@plannotator/opencode@latest"]
}Почемуopencode.json — это файл конфигурации плагинов OpenCode. После добавления имени плагина OpenCode автоматически загрузит и подключит плагин из репозитория npm.
Вы должны увидеть: при запуске OpenCode отображается сообщение "Loading plugin: @plannotator/opencode...".
Шаг 2: Перезапуск OpenCode
Почему После изменения конфигурации плагина требуется перезапуск для применения изменений.
Вы должны увидеть: OpenCode перезагружает все плагины.
Шаг 3: Запуск скрипта установки для получения слэш-команды
curl -fsSL https://plannotator.ai/install.sh | bashirm https://plannotator.ai/install.ps1 | iexПочему Этот скрипт выполняет следующие действия:
- Загружает CLI-инструмент
plannotatorв вашу систему - Устанавливает слэш-команду
/plannotator-reviewв OpenCode - Очищает кэшированные версии плагина
Вы должны увидеть: сообщение об успешной установке, например "Plannotator installed successfully!"
Шаг 4: Проверка установки
Проверьте работоспособность плагина в OpenCode:
Проверка доступности инструмента submit_plan:
- В диалоге попросите Agent "Пожалуйста, используйте submit_plan для отправки плана"
- Если плагин работает корректно, Agent должен видеть и вызывать этот инструмент
Проверка доступности команды /plannotator-review:
- Введите
/plannotator-reviewв поле ввода - Если плагин работает корректно, должно появиться предложение команды
Вы должны увидеть: обе функции работают без ошибок.
Шаг 5: Настройка переменных окружения (опционально)
Plannotator поддерживает следующие переменные окружения, настройте их в соответствии с вашими потребностями:
Описание переменных окружения
| Переменная окружения | Назначение | Значение по умолчанию | Пример |
|---|---|---|---|
PLANNOTATOR_REMOTE | Включение удалённого режима (devcontainer/SSH) | Не установлено | export PLANNOTATOR_REMOTE=1 |
PLANNOTATOR_PORT | Фиксированный порт (обязателен для удалённого режима) | Локально случайный, удалённо 19432 | export PLANNOTATOR_PORT=9999 |
PLANNOTATOR_BROWSER | Пользовательский путь к браузеру | Системный по умолчанию | export PLANNOTATOR_BROWSER="/Applications/Google Chrome.app" |
PLANNOTATOR_SHARE | Отключение общего доступа к URL | Включено | export PLANNOTATOR_SHARE=disabled |
Пример настройки удалённого режима (devcontainer/SSH):
В .devcontainer/devcontainer.json:
{
"containerEnv": {
"PLANNOTATOR_REMOTE": "1",
"PLANNOTATOR_PORT": "9999"
},
"forwardPorts": [9999]
}Почему
- Удалённый режим: при запуске OpenCode в контейнере или на удалённой машине используется фиксированный порт с автоматическим открытием браузера
- Перенаправление портов: позволяет хост-машине получить доступ к сервису внутри контейнера
Вы должны увидеть: когда Agent вызывает submit_plan, в консоли отображается URL сервера (вместо автоматического открытия браузера), например:
Plannotator server running at http://localhost:9999Шаг 6: Перезапуск OpenCode (при изменении переменных окружения)
Если вы настроили переменные окружения на шаге 5, необходимо снова перезапустить OpenCode для применения конфигурации.
Контрольная точка ✅
После завершения установки убедитесь в следующем:
- [ ] В
opencode.jsonдобавлен@plannotator/opencode@latest - [ ] После перезапуска OpenCode нет ошибок загрузки плагина
- [ ] При вводе
/plannotator-reviewпоявляется предложение команды - [ ] (Опционально) Переменные окружения настроены правильно
Преду��реждения о проблемах
Распространённая ошибка 1: Сбой загрузки плагина
Симптомы: при запуске OpenCode появляется сообщение "Failed to load plugin @plannotator/opencode"
Возможные причины:
- Проблемы с сетью, невозможно загрузить из npm
- Повреждён кэш npm
Решение:
- Проверьте сетевое подключение
- Запустите скрипт установки (он очистит кэш плагина)
- Вручную очистите кэш npm:
npm cache clean --force
Распространённая ошибка 2: Слэш-команда недоступна
Симптомы: при вводе /plannotator-review нет предложения команды
Возможная причина: скрипт установки не был успешно выполнен
Решение: повторно запустите скрипт установки (шаг 3)
Распространённая ошибка 3: Браузер не открывается в удалённом режиме
Симптомы: при вызове submit_plan в devcontainer браузер не открывается
Возможные причины:
- Не установлено
PLANNOTATOR_REMOTE=1 - Не настроено перенаправление портов
Решение:
- Убедитесь, что
PLANNOTATOR_REMOTE=1установлено - Проверьте, что
forwardPortsв.devcontainer/devcontainer.jsonсодержит установленный вами порт - Вручную откройте отображаемый URL:
http://localhost:9999
Распространённая ошибка 4: Порт занят
Симптомы: сбой запуска сервера с сообщением "Port already in use"
Возможная причина: предыдущий сервер не был корректно закрыт
Решение:
- Измените
PLANNOTATOR_PORTна другой порт - Или вручную завершите процесс, занимающий порт (macOS/Linux:
lsof -ti:9999 | xargs kill)
Итоги урока
В этом уроке рассмотрена установка и настройка плагина Plannotator в OpenCode:
- Добавление плагина через
opencode.json— включение инструментаsubmit_plan - Запуск скрипта установки — получение слэш-команды
/plannotator-review - Настройка переменных окружения — адаптация к удалённому режиму и пользовательским требованиям
- Проверка установки — подтверждение корректной работы плагина
После завершения установки вы можете:
- Позволить Agent использовать
submit_planдля отправки планов на интерактивную проверку - Использовать
/plannotator-reviewдля ручной проверки Git diff
Предварительный просмотр следующего урока
В следующем уроке мы изучим Основы проверки планов.
Вы узнаете:
- Как просматривать планы, созданные ИИ
- Добавление различных типов аннотаций (удаление, замена, вставка, комментарий)
- Одобрение или отклонение планов
Приложение: Справочник по исходному коду
Нажмите, чтобы раскрыть расположение исходного кода
Время обновления: 2026-01-24
| Функция | Путь к файлу | Строки |
|---|---|---|
| Определение точки входа плагина | apps/opencode-plugin/index.ts | 34-280 |
Определение инструмента submit_plan | apps/opencode-plugin/index.ts | 209-252 |
| Внедрение конфигурации плагина (opencode.json) | apps/opencode-plugin/index.ts | 55-63 |
| Чтение переменных окружения | apps/opencode-plugin/index.ts | 37-51 |
| Запуск сервера проверки планов | packages/server/index.ts | Весь файл |
| Запуск сервера проверки кода | packages/server/review.ts | Весь файл |
| Определение удалённого режима | packages/server/remote.ts | Весь файл |
Ключевые константы:
PLANNOTATOR_REMOTE: флаг удалённого режима (установите "1" или "true" для включения)PLANNOTATOR_PORT: номер фиксированного порта (локально по умолчанию случайный, удалённо по умолчанию 19432)
Ключевые функции:
startPlannotatorServer(): запуск сервера проверки плановstartReviewServer(): запуск сервера проверки кодаgetSharingEnabled(): получение состояния переключателя общего доступа к URL (из конфигурации OpenCode или переменных окружения)