PrimeCode — графический интерфейс для OpenCode CLI в VS Code

PrimeCode — графический интерфейс для OpenCode CLI в VS Code

Разработано расширение для VS Code под названием PrimeCode — графический интерфейс для OpenCode CLI. Это не отдельный агент и не форк, а полноценный UI-слой, взаимодействующий с OpenCode через SDK и SSE-стриминг.

OpenCode — мощный CLI-агент, но работа с ним в терминале на длительных сессиях не всегда удобна. PrimeCode решает эту проблему, визуализируя все процессы: вызовы инструментов, изменения файлов, контекст, использование токенов. Пользователи могут продолжать существующие сессии, сохраняя всю историю и состояние.

Поддерживается мультисессионная работа: одновременно можно вести несколько диалогов с разными контекстами, историями и статистикой. Сессии легко переключаются и восстанавливаются.

Вся активность агента отображается в режиме реального времени: рассуждения, вызовы инструментов, результаты. Каждый тип действия рендерится отдельно — bash-команды, правки файлов с inline diff, веб-запросы, MCP-вызовы. Это даёт полную прозрачность процесса.

Доступна панель изменённых файлов с diff-статистикой. Checkpoints позволяют откатить состояние файлов к любому сообщению. Сабтаски — дочерние сессии с отдельным учётом токенов. Можно назначать разные модели под разные задачи.

Всё управление — агентами, правилами, командами, скиллами, MCP-серверами — осуществляется через интерфейс. Встроены менеджер провайдеров с поддержкой OpenAI-compatible прокси, Prompt Improver, drag & drop для вложений, очередь сообщений и live-статистика. Функционал сопоставим с Cursor, но PrimeCode — бесплатный, с открытым кодом и без привязки к закрытой экосистеме.

Репозиторий: https://github.com/HALDRO/PrimeCode

Установка

Расширение пока не опубликовано в VS Code Marketplace из-за технических сложностей. Установка осуществляется вручную через .vsix-файл из раздела Releases. Расширение уведомляет о новых версиях.

  • Требуется установленный OpenCode — PrimeCode не является самостоятельным агентом
  • Основной протестированный сценарий: Windows + PowerShell
  • Проект находится в бета-версии
  • Change Diff Panel (принятие/отмена изменений) пока не реализован — требуется точная настройка работы с git и CLI-сессиями. Фронтенд готов, принимаются PR

Личный опыт разработки

Автор перепробовал множество инструментов: расширения (Cline, Kilo Code, Continue), IDE (Cursor, Kiro, Qoder, Void, Antigravity), CLI-решения. Удобный GUI значительно упрощает работу. Ранее использовал Cursor с Pro-подпиской, в основном ради поддержки кастомных моделей через OpenAI-compatible протокол.

Используется форк CLIProxy с переписанным ядром трансляторов, что позволяет работать с любыми моделями через OAI-протокол. За время использования Cursor и Copilot через прокси было накоплено множество мелких багов, портящих UX.

OpenCode быстро достиг стабильности и пригодности для повседневной работы. Закрытые решения, по мнению автора, отстают от open-source аналогов, навязывая свою экосистему. PrimeCode создан, чтобы объединить лучшие практики других инструментов в удобном интерфейсе на базе OpenCode.

Даже на ранних этапах разработки автор начал использовать PrimeCode для улучшения самого PrimeCode. Этот цикл стал лучшей валидацией работоспособности решения.

Процесс разработки

Проект включает 42 000 строк TypeScript, 155 файлов, 128 коммитов. Разработан одним человеком, почти без опыта в создании расширений для VS Code. Около 99% кода сгенерирован с помощью AI-моделей.

Использовались стандартные подходы без сложных автоматизаций, скиллов или пайплайнов. Мультисессионность реализована, но без делегирования изменений файлов в дочерние сессии — этот процесс пока считается слишком сложным для контроля. Дочерние сессии применялись только для исследований, чтобы не засорять основной контекст.

Контекст — это всё

Главная сложность в крупных проектах — модель не охватывает всю кодовую базу. Без достаточного опыта сложно сразу сформулировать эффективный промпт. Поэтому значительная часть времени уходит на уточнение и дополнение контекста через дочерние сессии.

Перед реализацией нового функционала модель сначала анализировала текущий и официальные репозитории OpenCode, изучала подходы и предлагала оптимальное решение. Рабочий процесс: постановка задачи, исследование существующих решений, выбор и подтверждение архитектуры реализации.

Переписывание — норма

По статистике git (без учёта документации) добавлено ~113 000 строк, удалено ~71 000. Текущая кодовая база — 42 000 строк. Общий churn — 183 000 строк. На каждую строку в финальной версии пришлось более четырёх написанных и переписанных.

Это не из-за низкого качества генерации, а потому что на старте архитектура не была полностью ясна. Модель предлагала рабочие решения, которые со временем пересматривались и переписывались. С AI этот процесс ускоряется, но остаётся естественным этапом разработки.

Мелкие баги накапливаются

AI-модели редко совершают критические ошибки, но стабильно допускают мелкие: неверные типы, пропущенные edge case, race condition при стриминге. По отдельности это несущественно, но на 42 000 строк — ощутимо. Строгий TypeScript и линтер устраняют большую часть проблем, но не все.

Почему OpenCode

Изначально планировалась поддержка нескольких CLI-агентов: OpenCode, Claude Code, Codex и других. Однако поддержка множества провайдеров в одиночку оказалась неподъёмной — у каждого свой протокол, события и особенности. Создание и сопровождение отдельных executor’ов, маппингов и обработчиков — слишком большой объём.

OpenCode покрывает почти все нужные сценарии. Поддержка кастомных провайдеров через OpenAI-compatible протокол и множество встроенных интеграций делают его универсальным. Необходимость в других CLI-агентах отпала.

42 000 строк — это точка, где «vibe-coding» заканчивается. Даже при массовом использовании AI это уже полноценное управление проектом: архитектурные решения, отладка, рефакторинг. Разница — в скорости. То, что заняло бы месяцы у команды, реализуется за дни.

Однако скорость не бесплатна: она требует времени на ревью, исправление мелких ошибок, переформулирование задач. Иногда лишние токены заставляют модель свернуть не туда. Тем не менее, автор продолжал улучшать расширение с помощью самого расширения — лучшее подтверждение его полезности.

Читать оригинал