Repository navigation
Releases: VibeBrains/VibeIDEA
Release list
VibeIDEA 0.8.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом.
Форк intellij-community: платформа JetBrains, языки через LSP, вся агентская обвязка своя.
Вторая цифра поднялась, потому что в выпуске есть новые возможности, а не только исправления.
В этом выпуске агент отвечает коротко и по делу, IDE ловит штампы в тексте, а прямой чат с моделью научился говорить с новыми моделями на их языке — GPT-6 через Responses API, Claude с рассуждением между ходами, OpenRouter со своим диалектом.
✂️ Сжатые ответы и быстрые настройки
Модель отвечает без воды: без вежливостей, оговорок и пересказа своих шагов.
Код, имена, команды и тексты ошибок остаются дословно.
- Включено по умолчанию; уровни «лёгкие», «полные» и «ультра», выключатель на виду.
- Код, коммиты и документы модель пишет обычным языком, предупреждения — полными фразами.
- Локальная модель получает короткую форму правил: у неё мало места под промпт.
- Кнопка быстрых настроек в ряду композера: сжатые ответы, глубина рассуждений, офлайн-режим, минимализм.
🧹 Детектор нейрослопа
IDE находит в тексте штампы, которые выдают сгенерированную прозу.
64 правила, без модели и без ключа.
- Действие «Нейрослоп в тексте» в меню редактора.
- Проверка ответа агента в конце хода: подсказать или вернуть на доработку.
- Правила проекта — файлом
.vibe/slop.json, спека в справке. - Дизайн-детектор читает тексты страницы тем же каталогом.
🔌 Модели и провайдеры
- GPT-6 через Responses API: инструменты и рассуждение вместе, как требует вендор.
- Claude помнит рассуждение между ходами, пока история не менялась, — и кэш промпта перестал промахиваться на прошлом ходе.
- «Выключено» честное: модель, которая думает по умолчанию, получает самый низкий уровень, а не молча думает на полную.
- Отказ модели ведёт к запасной: если первая отказалась отвечать, ход уходит на следующую модель цепочки.
- Часовой кэш считается по своей цене: раньше запись на час шла по цене пятиминутной.
- OpenRouter со своим диалектом рассуждения,
"auth": "none"для серверов без ключа,runsLocallyдля моделей на своей машине. - Прокси по целям: список «напрямую, мимо прокси» для провайдеров и агентов.
- Диагностика называет поля
extraBody, которые вендор отвергнет, ещё до запроса.
🤖 Агент и инструменты
- Память команды VibeMemory по HTTPS — общая память для прямого чата и ACP-агентов, токен хранится только у VibeMemory.
- Волны в пайплайнах: шаги с одной меткой идут одновременно.
- MCP-сервер может попросить ввод посреди вызова — форма приходит тем же диалогом, что у агента.
- Имя инструмента видно рядом с заголовком вызова и в вопросе о разрешении.
- Подмена описаний инструментов после одобрения больше не проходит молча.
- Точный переход по коду включён по умолчанию; подсказка с Cmd показывает сигнатуру.
- Смена ветки обновляет языковые серверы, у каждого — «Проверить» и «Установить последнее».
🩹 Исправлено
- Иконка приложения в списке Finder и на Windows в мелких размерах — вместо пятна снова логотип.
- Картинка из буфера вставляется в композер.
- На Windows ключи провайдеров больше не считаются отсутствующими, когда хранилище не ответило.
- Схема
providers.jsonне подсвечивает ошибкой файл, который верен по спеке. - Шаблон из
slop.jsonбольше не может повесить IDE: у каждого правила свой срок.
💾 Установка
macOS — .dmg (Apple Silicon) или .sit.
Windows — инсталлятор .exe или архив .win.zip.
Linux — .tar.gz.
Что нужно на машине: PHP 8.1+ и Node 18+.
Для отладки PHP — Xdebug.
Для базы — драйвер JDBC, его скачает кнопка в панели «БД».
Для общей памяти в чате — установленный VibeMemory.
Обновление с 0.7.0: ставится поверх, настройки сохраняются.
⚠️ Чего пока нет
Сборка не нотаризована у Apple: macOS предупредит при первом запуске, Windows покажет SmartScreen.
Живыми ключами не проверено: новые провода и причуды моделей собраны по документации вендоров и покрыты тестами, но ответа настоящего вендора не видели.
Про Windows честно: .exe собран здесь же, на macOS, и проверен по составу.
Тихой установкой на Windows он не проверялся — сравнение инсталлятора с архивом сборка вне Windows пропускает сама.
Про Linux честно: артефакт собран здесь же и проверен по составу — плагины на месте, индекс в порядке.
На Linux он не запускался: линуксовый лаунчер и JBR на маке выполнить нечем.
Обкатывает продукт один человек.
Если что-то ведёт себя не так — самый полезный issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0.
VibeIDEA не является продуктом JetBrains.
Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Модель теперь отвечает без воды, а детектор нейрослопа вычищает штампы из текста. Штамп «спасибо за поддержку» он пропускает — проверено. Автор тоже научился коротко: кофе.
VibeIDEA 0.7.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом.
Форк intellij-community: платформа JetBrains, языки через LSP, вся агентская обвязка своя.
Вторая цифра поднялась, потому что в выпуске есть новые возможности, а не только исправления.
Главное: у IDE появился свой набор из восьми тем — включая первую светлую, — фронтенд закрыт целиком (Vue, Svelte, Astro, стили в шаблонных строках), а переходы по коду перестали обещать то, чего сервер не знает.
🎨 Восемь своих тем, и одна из них дневная
Раньше тема красила только панель агента, а остальная IDE оставалась чужой.
Теперь тема красит всё: деревья, тулбар, всплывающие окна, диалоги и центральную панель с кодом.
- Восемь тем: Neon Dark, Midnight, Graphite, Terracotta, Espresso, Honey, Tobacco и светлая Porcelain.
- Porcelain — первая светлая, и палитра ей подобрана заново, а не вывернута из тёмной: на свету акцент обязан быть темнее фона.
- Пара «день/ночь» из коробки наша: Porcelain днём, Neon Dark ночью.
- Страница Settings → Tools → VibeIDEA → Оформление: список с пометкой «наша», кружками палитры и образцом кода.
- Схема редактора идёт за темой: сменили тему — сменился и цвет кода, а не всё вокруг него.
Отдельно про читаемость: контраст теперь измеряется, а не подбирается на глаз.
Тусклый текст ленты и композера в шести темах из восьми шёл ниже порога — худший случай 2.08 при планке 4.0, и это были не украшения, а подписи, которые надо читать.
Цвета текста разведены с цветами украшений и подняты до 4.3+; гейт мерит одиннадцать пар «текст на фоне» и схемы редактора.
🧩 Фронтенд закрыт целиком
- Vue, Svelte и Astro — своими языковыми серверами, а не подсветкой «на глазок».
- Стили в шаблонных строках — подсказки и ошибки CSS прямо внутри
styled.divиcss. - Подсветка пяти языков, которых платформа не знает:
.vue,.svelte,.astro,.sass,.styl. - Раньше в этой же линии приехали Angular, Tailwind, Some Sass, Stylus и диалекты PostCSS.
Всё едет в комплекте: серверы лежат внутри сборки, из интернета при первом запуске ничего не тянется.
🧭 Точная навигация
Ctrl+Click подчёркивает только то, что языковой сервер действительно умеет открыть.
Раньше подчёркивалось всё подряд, и половина переходов заканчивалась ничем.
Ответы сервера кэшируются по позиции, поэтому подсветка не дёргает сервер на каждое движение мыши.
Включается ключом реестра; по умолчанию выключено, пока не обкатано на больших проектах.
🤖 Агент
- Процессы видны человеку: что агент запустил, что ещё работает, чем кончилось.
- Правки принимаются и отклоняются по одной, а не всем ходом сразу.
- Предохранитель необратимых команд — опасное действие останавливается и спрашивает.
- Трассировка происхождения значения и починка ошибок одним действием.
- Свои MCP-серверы, поиск по документации продукта, режимы прав, экспорт разговора, счётчик контекста.
- Прокси больше не захватывает локальные модели: Ollama на
localhostи локальный muse-glimmer идут мимо прокси всегда. - Версия протокола ACP сверяется: расхождение называется строкой, а не превращается в странности.
AGENTS.mdчитается как источник правил — и корневой, и пакетные, ближний к файлу сильнее.
💾 Установка
macOS — .dmg (Apple Silicon) или .sit.
Windows — инсталлятор .exe или архив .win.zip.
Linux — .tar.gz.
Что нужно на машине: PHP 8.1+ и Node 18+.
Для отладки PHP — Xdebug.
Для базы — драйвер JDBC, его скачает кнопка в панели «БД».
Для общей памяти в чате — установленный VibeMemory.
Обновление с 0.6.0: ставится поверх, настройки сохраняются.
⚠️ Чего пока нет
Сборка не нотаризована у Apple: macOS предупредит при первом запуске, Windows покажет SmartScreen.
Что проверено запуском: macOS-образ поднят и проверен на темах — интерфейс и код меняются вместе, ошибок таблицы умолчаний в логе нет.
Про Windows честно: .exe собран здесь же, на macOS, и проверен по составу.
Тихой установкой на Windows он не проверялся — сравнение инсталлятора с архивом сборка вне Windows пропускает сама.
Про Linux честно: артефакт собран здесь же и проверен по составу — плагины на месте, индекс в порядке.
На Linux он не запускался: линуксовый лаунчер и JBR на маке выполнить нечем.
Обкатывает продукт один человек.
В первую очередь не обкатаны: точная навигация на большом проекте, Vue и Astro на живом коде, светлая тема в долгой работе.
Если что-то ведёт себя не так — самый полезный issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0.
VibeIDEA не является продуктом JetBrains.
Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Языковые серверы едут в комплекте, рантаймы берутся с вашей машины. Кофе автора, к сожалению, не берётся ниоткуда.
VibeIDEA 0.6.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом.
Форк intellij-community: платформа JetBrains, языки через LSP, вся агентская обвязка своя.
Вторая цифра поднялась, потому что в выпуске есть новые возможности, а не только исправления.
Главное: модель в прямом чате научилась пользоваться инструментами, переходы по Ext JS догнали PhpStorm, а пайплайны стали умнее с деньгами.
🧭 Ext JS: переходы, как в PhpStorm
Ctrl+Click в .js теперь понимает Ext JS, а не только строку с именем класса.
PhpStorm делает это закрытым плагином JavaScript, которого в открытой платформе нет, поэтому разбор и индексы свои.
- Имя класса в
extend,requires,Ext.createведёт в егоExt.define. - Короткий
xtype: 'orderGrid'находит класс сalias: 'widget.orderGrid'. this.метод()иme.метод()ищутся в самом классе, затем вmixins, затем вверх поextend.callParentведёт в тот же метод родителя.getStore,setStore,applyStore,updateStoreведут в ключstoreблокаconfig.- Имя события в
fireEventили ключlistenersпоказывает все места, где событие вызывают и слушают.
Исходники фреймворка в проекте тоже индексируются, а минифицированный код — нет, чтобы короткие имена не превращались в тысячи мусорных целей.
Вывода типов нет: класс переменной не угадывается, поэтому store.load() предлагается списком одноимённых методов, если их немного.
После обновления первое открытие проекта займёт время на переиндексацию.
🔧 Модель в прямом чате пользуется инструментами
Раньше модель провайдера в композере могла только отвечать текстом.
Теперь она сама ищет по проекту и читает общую память — на всех трёх протоколах: OpenAI-совместимом, Anthropic и Gemini.
- Инструменты IDE: кто импортирует файл, как связаны два файла, где встречается имя, что проект уже записал по теме, какие решения приняты.
- Общая память VibeMemory: поиск и чтение записей и истории сессий, если VibeMemory установлен.
- Запись спрашивает вас. Сохранить решение или изменить память модель может только после вашего «да» на этот конкретный вызов, с аргументами в диалоге. В недоверенном проекте запись закрыта целиком.
- Модель помнит, что нашла. Обмен с инструментами хранится в истории треда, и на уточняющий вопрос она отвечает по найденному, а не по своему пересказу.
- Много инструментов — поиск по ним. Когда их больше двадцати, модель получает не все схемы, а поиск и подгружает нужные.
Каждый вызов назван в ленте и в журнале аудита — без аргументов и результата.
Выключается одной галкой: Settings → Tools → VibeIDEA → Агент.
🗜 Длинный разговор не переполняет окно
Прямой чат научился сворачивать историю.
Когда оценка переходит порог окна модели, сначала убираются результаты старых вызовов инструментов, и только если этого мало — ранние сообщения сворачиваются в сводку той же модели.
Последние сообщения и закреплённые не трогаются.
В оценку входят схемы инструментов: они уходят в каждом запросе, и без них порог срабатывал поздно именно в сессиях с инструментами.
Порог, цель и число нетронутых сообщений — в настройках.
⛓ Пайплайны: модели, деньги и продолжение
- Шаг ждёт дешёвого часа. Шаг на своей модели с
"offPeak": trueзапускается только вне пика цен этой модели. Пока модель в пике, прогон ждёт с уведомлением и кнопками «Запустить сейчас» и «Отменить прогон». Поле общее с VibeIDE. - Модель на роль. В пайплайне можно задать модель по умолчанию для роли, а у шага — свою одной строкой
провайдер/модель. - Потолки расходов агента — в день, за прогон, в токенах; прогон останавливается на потолке.
- Динамический пайплайн. Оркестратор составляет шаги, а вы видите план до запуска и соглашаетесь или нет.
- Прерванный прогон продолжается с незавершённого шага, а не с начала.
qaпишет только тесты. Код под тестом закрыт на запись; список тестовых путей — в общем с VibeIDE.vibe/roles.json.- Роль
critic— судит, ничего не пишет.
🔌 Внешние агенты
- Настройки агента видны. Модель, режим и уровень усилия, которые Claude через
claude-agent-acpотдаёт списком, выбираются в пикере «Настройки ▾».
Заодно исправлено: значения настроек читались не из того поля, и настройки агентов, собранных по спеке, пропадали целиком — тумблеры тоже. - Общая память у ACP-агентов. Агент, которого запускает IDE, получает сервер памяти VibeMemory, если тот установлен.
🛡 Безопасность и журнал
- Живой журнал и случаи эвалов закрыты от агента — агент не может подправить собственный след или подогнать проверку под себя.
- Трифекта на всю сессию. Три признака утечки ловятся, даже когда растянуты на несколько ходов.
- Форма запроса данных от агента проверяет ввод по схеме до того, как он уйдёт агенту.
- «Что прочитано» на панели «Аудит» сводит, какие файлы и записи прочитал каждый агент, и отзывает одобрения в один шаг.
- MCP-сервер IDE в недоверенном проекте только читает; запись и запуск открываются отдельными переключателями.
🧰 Что ещё
- TypeScript 7 проекта вместо встроенного vtsls, когда он есть в
node_modules. - ESLint на Windows: исправления из подсказок больше не падают.
- Эвалы навыков из командной строки —
vibe-evals, отчёт в stdout. - Каталог провайдеров: DeepSeek V4 Pro считается по своей цене, для GLM-5.3 в Coding Plan указан единственный рабочий маршрут, модели извлечения Schematron скрыты из выбора чата.
📦 Как поставить
macOS (Apple Silicon): VibeIDEA-0.6.0-aarch64.dmg — перетащить в «Программы».
Сборка не подписана, поэтому при первом запуске macOS скажет, что не может проверить разработчика.
Обход: правый клик по VibeIDEA.app → «Открыть», в диалоге пролистать вниз, там появится «Открыть всё равно».
Либо снять карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.6.0-aarch64.dmg
# 9ad22635da88f0a1f26babed5499e44a6b8aab4bf25ff7acd09bff592de5245fWindows (x64): VibeIDEA-0.6.0.exe — обычный инсталлятор; или VibeIDEA-0.6.0.win.zip — распаковать куда угодно и запустить bin\idea64.exe.
Сборка не подписана: SmartScreen покажет «Система Windows защитила ваш компьютер» — «Подробнее» → «Выполнить в любом случае».
Касперский может удалить idea64.exe по поведению (PDM:Trojan.Win32.Generic): это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.6.0.exe -Algorithm SHA256
# 4a999b9dd5f2b744b66ccd451ce81ec3c76feec63936a96db4c95fde31fec8d8
Get-FileHash VibeIDEA-0.6.0.win.zip -Algorithm SHA256
# 4034e6e189e5444e8d84f3ef603efb0a3e6ce0487b5f635ee7d736d9cfd47a85Linux (x64): VibeIDEA-0.6.0.tar.gz — распаковать и запустить bin/idea.sh.
sha256sum VibeIDEA-0.6.0.tar.gz
# c19fcfa0e150617403527cc144eff7bdb79871a36468a536798c0b489ec3509fЧто нужно на машине: PHP 8.1+ и Node 18+.
Для отладки PHP — Xdebug.
Для базы — драйвер JDBC, его скачает кнопка в панели «БД».
Для общей памяти в чате — установленный VibeMemory.
Обновление с 0.5.0: ставится поверх, настройки сохраняются.
⚠️ Чего пока нет
Сборка не подписана ни на одной из систем: macOS предупредит при первом запуске, Windows покажет SmartScreen.
Про Linux честно: артефакт собран здесь же, на macOS, и проверен по составу — плагины на месте, индекс в порядке.
На Linux он не запускался: линуксовый лаунчер и JBR на маке выполнить нечем.
Обкатывает продукт один человек, и этот выпуск в руках не проверялся: собран и проверен тестами и гейтами, но не живой работой.
В первую очередь не обкатаны: инструменты и поиск инструментов в прямом чате, свёртка истории, переходы по Ext JS на большом проекте, настройки-списки у Claude через ACP, ожидание дешёвого часа в пайплайне.
Если что-то из этого ведёт себя не так — самый полезный issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0.
VibeIDEA не является продуктом JetBrains.
Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
IDE научилась находить нужный инструмент среди двадцати. Нужную кнопку ниже искать не придётся.
VibeIDEA 0.5.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом.
Форк intellij-community: платформа JetBrains, языки через LSP, вся агентская обвязка своя.
Первый выпуск, собранный сразу под три системы: macOS, Windows и Linux.
И первый, где вторая цифра поднялась не для красоты — в 0.4.x возможности уезжали патчами, и номер перестал что-либо обещать.
Здесь он обещает: новые возможности есть, а вместе с ними — исправления того, что не работало молча.
🛡 Граница проекта перестала обходиться точками
Агент не должен читать и писать за пределами проекта — и до этого выпуска это было пожеланием.
Путь сравнивался как текст, поэтому ../ в середине, символическая ссылка наружу и другой регистр буквы проходили проверку и открывали файл за границей.
Ошибка жила во всех выпусках, начиная с v0.1.0.
Теперь путь разворачивается до решения о доступе: .. схлопывается, ссылка ведёт туда, куда ведёт, регистр приводится к тому, как файл называется на диске.
Проверьте на своих правилах доступа: если у вас были обходные пути, они перестанут работать, и это правильно.
🪝 Хук, написанный для Claude Code, больше не разрешает молча
У наших хуков решает код выхода: 0 — можно, 2 — нельзя.
У Claude Code иначе: код остаётся нулевым, а запрет печатается в stdout джейсоном.
Такой хук, перенесённый в .vibe/hooks.json, раньше разрешал действие, а его «нельзя» приходило модели как совет — человек видел настроенный запрет, которого на деле не было.
Теперь решение в их формате исполняется.
permissionDecision: "deny", прежнее decision: "block" и continue: false — это отказ, allow — разрешение.
ask — предупреждение вам: третьего ответа у нашего хука нет.
Свой хук по-прежнему пишется на кодах выхода: это короче и не зависит от чужой схемы.
Заодно: отложенная запись досылается на диск до запуска внешней проверки — линтер больше не читает вчерашний файл.
🔌 Внешние агенты: вход, каталог и выход
Агент, требующий входа, перестал быть тупиком.
VibeIDEA показывает способы входа так, как их объявил сам агент: обычный вход по протоколу или терминальный — когда агент просит запустить claude /login и провести человека через браузер.
Выход тоже по протоколу.
Каталог ACP-агентов — экран выбора из общего реестра протокола.
Агент добавляется в ~/.jetbrains/acp.json одним нажатием, а уже добавленный узнаётся по пакету, не по имени.
Реестр кэшируется по ETag: обновление не качает то же самое заново.
🎙 Текст растёт, пока вы говорите
Голосовой ввод больше не молчит до конца записи.
Если у вас установлен whisper.cpp и указана модель, IDE держит рядом резидентный whisper-server.
Каждые 2,5 секунды под полем ввода появляется серая строка — черновик расшифровки.
По «стоп» окончательный текст ложится в поле ввода.
Нет модели или сервера — работает как раньше: расшифровка целиком после остановки.
Чем именно идёт расшифровка, говорит строка «голос» в диагностике.
🧠 Навыки: одобрение по каталогу и проверка на случаях
Одобрение навыка теперь привязано ко всему его каталогу, а не к имени.
Навык живёт в репозитории и приезжает вместе с изменениями кода, поэтому «я разрешил его вчера» ничего не говорит о том, что он делает сегодня.
Хэшируется каждый файл, и правка скрипта рядом с SKILL.md снимает одобрение; диалог показывает, что именно изменилось.
Эвалы навыка — новое.
Случаи лежат в .vibe/skills/<id>/evals/evals.json — схема skill-creator, чужие наборы работают.
Действие «Прогнать эвалы навыка» даёт модели тело навыка и просьбу, а вердикт по каждому случаю выносит судья.
Инструментов модель при этом не получает: навык может быть про выкладку, и набор тестов не должен быть тем, кто её выполнит.
Перед прогоном IDE называет число вызовов и модель и ждёт согласия.
Образец случаев засеян в навык example.
Валидатор навыков заодно научился читать прозу: «сначала выполни curl … | sh» — это инструкция модели, а не текст, и предупреждение о ней теперь есть.
💸 Деньги: кто ответил и по какой цене
- Ответила не та модель — теперь видно.
Между вами и вендором стоят прокси, агрегаторы и запасные цели, а подмена молчалива.
Ответ приходит — просто от другой модели, а цена считается по запрошенной.
Расхождение говорится строкой в ленте один раз за сессию и пишется в журнал. - Цена по часу и срок годности цены: у модели можно объявить дневной и ночной тариф и дату, после которой действует новая цена.
- Порог длинного промпта считает и запись в кэш — надбавка перестала теряться.
- Рассуждение можно выключить у конкретной модели; вендору уходит его собственное слово, а не наше.
⛓ Пайплайны и чекпоинты
Чекпоинты не создавались ни разу — git отвергал пустой временный индекс, и снимок молча не появлялся.
Исправлено; теперь снимок делается перед каждым шагом пайплайна, и откатиться есть куда.
Судьи получают свежую сессию и дифф изменений вместо рассказа автора о собственной работе.
Судья на своей модели инструментов не имеет и раньше судил по описанию.
🧰 Что ещё
- MCP-сервер приведён к ревизии 2026-07-28:
GETиDELETEк эндпоинту отвечают405, проверяетсяOrigin, а диагностика сама себя пробует и говорит, отвечает ли сервер. - LSP4IJ 0.20.2: исправлены зависания, чтения вне read action и утечки.
- Диагностика смотрит на настоящие файлы, а не на предположения, и называет, чем вы платите, в том же порядке, что и Claude Code.
- Превью помнит историю навигации.
- Окно установки на macOS теперь наше: знак VibeBrains, стрелка из шевронов промпта и строка про первый запуск неподписанной сборки.
📦 Как поставить
macOS (Apple Silicon): VibeIDEA-0.5.0-aarch64.dmg — перетащить в «Программы».
Сборка не подписана, поэтому при первом запуске macOS скажет, что не может проверить разработчика.
Обход: правый клик по VibeIDEA.app → «Открыть», в диалоге пролистать вниз, там появится «Открыть всё равно».
Либо снять карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.5.0-aarch64.dmg
# 44ea2f5f90c269ffcf37512b90e37c294bb2d744555b8da908e1dee87ba722a8Windows (x64): VibeIDEA-0.5.0.exe — обычный инсталлятор; или VibeIDEA-0.5.0.win.zip — распаковать куда угодно и запустить bin\idea64.exe.
Сборка не подписана: SmartScreen покажет «Система Windows защитила ваш компьютер» — «Подробнее» → «Выполнить в любом случае».
Касперский может удалить idea64.exe по поведению (PDM:Trojan.Win32.Generic): это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.5.0.exe -Algorithm SHA256
# 87c99dc5b138afd52f07b955e91ccfad657f4b5c969d4d36a6500dfa83fce823
Get-FileHash VibeIDEA-0.5.0.win.zip -Algorithm SHA256
# a2015d7c216670b1dc165e9ec6e98b55ece0d236cbc865d6e65b4f22e543379cLinux (x64): VibeIDEA-0.5.0.tar.gz — распаковать и запустить bin/idea.sh.
sha256sum VibeIDEA-0.5.0.tar.gz
# 34ed4aa5077361840aa3eeaa0efaf79d1ac2376f7e7b99dbb5d0218e705bef45Что нужно на машине: PHP 8.1+ и Node 18+.
Для отладки PHP — Xdebug.
Для базы — драйвер JDBC, его скачает кнопка в панели «БД».
Для голосового черновика — whisper.cpp и модель к нему.
Обновление с 0.4.7: ставится поверх, настройки сохраняются.
⚠️ Чего пока нет
Сборка не подписана ни на одной из систем: macOS предупредит при первом запуске, Windows покажет SmartScreen.
Встроенного браузера превью нет.
Про Linux честно: артефакт собран здесь же, на macOS, и проверен по составу — плагины на месте, индекс в порядке.
На Linux он не запускался ни разу: линуксовый лаунчер и JBR на маке выполнить нечем.
Если попробуете — самый полезный issue, который сейчас можно завести.
Обкатывает продукт один человек, и в этом выпуске в живой работе не обкатаны: голосовой черновик, эвалы навыков, вход во внешнего агента и экран каталога, предупреждение о подменённой модели.
Собрано и проверено тестами и гейтами — но не руками.
⚖️ Лицензия
Исходники — Apache 2.0.
VibeIDEA не является продуктом JetBrains.
Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Три платформы, четыре артефакта, ноль подписок. Пятый артефакт — благодарность, и он собирается вручную.
VibeIDEA 0.4.7
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Этот выпуск накопился за пять сборок: 0.4.3–0.4.6 собирались, но не публиковались, и всё, что в
них было, лежит здесь. Главное в нём — интерфейс перестал спорить с работой, а агент научился
отвечать на вопросы, которые раньше выяснялись в счёте в конце месяца.
🧭 Сбоку — действия, в центре — работа
Три панели переехали по одному правилу: навигация и кнопки остаются сбоку, а то, ради чего вы их
нажали, открывается вкладкой в центре — там, где место для чтения.
- Документы — дерево слева, рядом с проектом. Граф связей открывается вкладкой в центре.
- База данных — навигатор слева, консоль и таблица результата в центре. В консоли появилась
подсветка SQL: ключевое слово, строка и комментарий больше не сливаются в чёрный текст —
именно по ним глаз находит ошибку до запуска. - HTTP-клиент — список запросов слева, ответ вкладкой в центре.
Граф документов переписан дважды — до силовой раскладки. Первая версия была таблицей
прямоугольников и графом не выглядела; вторая раскладывала узлы кольцами. Сейчас это настоящая
силовая раскладка: узлы отталкиваются, связи притягивают, масса узла — число его связей.
Заодно: действия в панелях стали кнопками, а не текстом с подчёркиванием при наведении, и
тонкий скролл добрался до редактора — там он рисуется мимо общего пути и требовал отдельной правки.
💸 Каскад: дорогая модель работает не всегда
Пайплайн из шести ролей стоит в разы дороже одного хода, и обычно бо́льшая часть этих денег уходит
на шаги, которые ничего не изменили. Теперь дешёвая модель делает черновик, ваш гейт решает,
принят ли он, и дорогой шаг выполняется, только если не принят.
- Гейт — обычная команда проекта (
pipelineStepEndв.vibe/hooks.json): код0— черновик
принят, шаги с"escalation": trueпропускаются; код2— не принят, они выполняются. /cascadeотвечает на вопрос, ради которого всё это и заводят: окупается ли он. Считается
по вашим прогонам — доля принятых черновиков, умноженная на разницу цен, за вычетом повторной
подачи контекста дорогому шагу.- Потолки шага (
maxTokens,maxSteps) наконец применяются. Файл принимал их с первого дня и
не делал ничего — настройка, которую IDE читает и молча игнорирует, снаружи неотличима от
работающей. - Шаг можно запереть в каталогах:
pathsиdenyPathsв синтаксисе.gitignore. «Этот шаг
пишет тесты, этот — документацию» перестало быть пожеланием в тексте задачи.
🛡 Три признака утечки за один ход
По отдельности каждое законно: агент прочитал файлы проекта, в контекст попал текст, которого вы
не писали, у агента есть команда с каналом наружу. Вместе — способ вынести данные, и выглядит это
как обычная работа.
Такой ход теперь называется словами в том же вопросе, где вы даёте разрешение, диалог получает
предупреждающий значок, а кнопкой по умолчанию становится отказ: вопрос со значком «?» и
первой кнопкой «разрешить» отвечается не глядя.
Скрытый текст ловится до одобрения. Инструкцию можно спрятать в файле так, что человек её не
увидит: теговый блок Unicode не рендерится нигде, но модель его читает. Раньше такое вырезалось на
входе в контекст — теперь проверяется и шапка навыка, где name и description это ровно то,
что вы читаете, решая одобрить. Изменённое описание требует нового одобрения.
При этом страж перестал кричать на честных файлах: флаг Шотландии и семейные эмодзи больше не
считаются находкой и не калечатся, а сорок невидимых символов подряд названы отдельно от одного —
это спрятанная строка, а не опечатка.
🤝 Внешние агенты: чем запускать и чем платить
- Диагностика отвечает на два вопроса заранее. «Чем запускать» называет запись, чью команду на
машине не найти — «агент не запустился» и «у вас нет node» это разные новости. «Чем оплачен ход»
предупреждает о том, что заметить нельзя ничем:ANTHROPIC_API_KEYв окружении молча
побеждает подписку, и ходы идут по токенам. - Сессия переживает перезапуск IDE. Раньше лента переживала, а агент — нет, и контекст
приходилось пересказывать заново, оплачивая его второй раз. - Агенты проекта.
.vibe/agents.jsonтеперь читается: агенты машины и агенты проекта — разные
области, проектная сильнее. Заодно ожило полеdir— рабочая папка агента в монорепо. - Каталог агентов протокола перестал отделываться словом «ставится вручную» у агентов с
двоичной поставкой — а это 17 записей из 40. Показываются адрес архива под вашу ОС, его sha256 и
команда запуска. Скачиваем и запускаем по-прежнему не мы. - OpenHands добавлен в набор: он говорит по протоколу нативно, но в общий реестр не входит.
- Агент видит инструменты IDE. Внешний агент, запущенный в IDE, получает её граф импортов,
поиск по корпусу и журнал решений — раньше он работал в проекте вслепую.
🔌 Провайдеры и деньги
- Новые: Qwen за токены (
qwen3.8-max, 1M контекста, вход с картинками и видео) и
актуализированный Z.AI — в плане доступны толькоglm-5.3иglm-5.3-flash, множители
расхода квоты названы. - Цена умеет протухать вслух. У промо есть дата, и без неё весь отчёт о расходе продолжает
считаться по старой цене, выглядя достоверным. Теперь диагностика предупреждает за неделю,
называет, во сколько раз подорожает, и цитирует источник, где цена объявлена. - Глубина рассуждения приводится к тому, что умеет модель. Ползунок один, а наборы уровней у
вендоров разные: там, где просимого уровня нет, вендор либо отвечал ошибкой, либо — хуже — молча
игнорировал, и человек двигал ручку, не видя разницы. - Промпт-кэш говорит про время. Кэш протухает по часам, а не по действиям, и до траты видно,
успеваете ли вы в окно.
🗂 .vibe перестал удваиваться
Файлов-примеров рядом с рабочими было девять пар — включив всё, вы получали вдвое больше файлов.
Теперь сид и есть рабочий файл, а роль примера играет "active": false: тот же приём, которым
каталог провайдеров пользуется с самого начала. Корень набора уменьшился с тринадцати файлов до
четырёх.
- Комментарии принимают все конфиги
.vibe— раньше комментарий вproviders.jsonработал, а
такой же вhooks.jsonронял разбор. - Рантайм отделён от того, что коммитится: журнал аудита с архивами, чекпоинты, прогоны, планы
и отметка сеялки живут в.vibe/local/, а.gitignoreзакрывает папку одной строкой. Уже
лежащие файлы переезжают туда сами — бросить чекпоинты значило бы сломать откат молча. Файл с
ключами.vibe/.envне переехал: его пишете вы, а не IDE.
🧪 Что теперь ловится до вас
- Шестой гейт — настройка, которую IDE читает из вашего файла и молча игнорирует. Тестам она
видна не была по построению: разбор-то работал. - И его обратная сторона: ключ в файле-образце, которого не читает ни один парсер. Первый
прогон нашёл трёх таких мертвецов. - Гейт документации ловит расхождение справки внутри сборки с исходной документацией.
- Отставание от апстрима считается по тегам нашей линии, а не по чужому
master.
📦 Как поставить
macOS (Apple Silicon): VibeIDEA-0.4.7-aarch64.dmg — перетащить в «Программы».
Сборка не подписана, поэтому при первом запуске macOS скажет, что не может проверить
разработчика. Обход: правый клик по VibeIDEA.app → «Открыть», в диалоге пролистать вниз,
там появится «Открыть всё равно». Либо снять карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.4.7-aarch64.dmg
# 91b6b066d52e2a687dbca9565cbbc1a4d80ac20e98fbae0a379fa59aaa738470Что нужно на машине: PHP 8.1+ и Node 18+. Для отладки PHP — Xdebug. Для базы — драйвер JDBC,
его скачает кнопка в панели «БД».
Windows (x64): VibeIDEA-0.4.7.exe — обычный инсталлятор; или VibeIDEA-0.4.7.win.zip —
распаковать куда угодно и запустить bin\idea64.exe.
Сборка не подписана: SmartScreen покажет «Система Windows защитила ваш компьютер» —
«Подробнее» → «Выполнить в любом случае». Касперский может удалить idea64.exe по
поведению (PDM:Trojan.Win32.Generic): это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.4.7.exe -Algorithm SHA256
# dd49766250c44f7d24eb48b70c54e3aced35e6c42d27623aca247b1c075a908c
Get-FileHash VibeIDEA-0.4.7.win.zip -Algorithm SHA256
# 5f003c5fe2fc5f4c06e610eabd315302b56dc0ce8f2f3bb50280aba59eab3a39Требования те же, что у macOS: Node 18+ для TypeScript, CSS, ESLint и обоих адаптеров отладки,
PHP 8.1+ и Xdebug — для PHP. Встроенный PHP-сервер на Windows запускается.
Обновление с 0.4.2: ставится поверх, настройки сохраняются. Папка .vibe в ваших проектах
перестроится при первом открытии: файлы-примеры, которых вы не правили, исчезнут (их содержимое
теперь в самих рабочих файлах), а журнал аудита и чекпоинты переедут в .vibe/local/ вместе с
историей. Правленные вами файлы не трогаются.
⚠️ Чего пока нет
Сборка не подписана: macOS предупредит при первом запуске (обход — правый клик → «Открыть»
либо xattr -dr com.apple.quarantine), Windows покажет SmartScreen. Встроенного браузера превью
и локальной расшифровки голоса нет.
Обкатывает по-прежнему один человек, и в этом выпуске особенно много того, что в живой работе не
обкатано: силовой граф документов, права шага на пути, возобновление сессии агента и новая
раскладка .vibe. Если у вас не сработает — это самый полезный
issue, который сейчас можно завести.
⚖️ Лицензия
...
VibeIDEA 0.4.2
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Этот выпуск — про память проекта и про то, что перестало врать в редакторе.
🔴 Почему .tsx был красным
Открытый .tsx подчёркивался почти целиком: «148 ошибок» на файле, который компилируется без
единого замечания. То же самое происходило с обычным .js — на легаси-проекте счётчик показывал
589 ошибок.
Причина оказалась в одной строке нашего описания плагина: все расширения были объявлены языковому
серверу одним идентификатором typescript. Это не подпись, а указание, каким парсером открыть
документ, и под ним синтаксис JSX запрещён — каждый тег превращается в ошибку. Замерено на живых
файлах: typescript — 152 диагностики, typescriptreact — ноль; на .js-файле — 671 против 49
подсказок про неиспользуемые переменные.
Исправлено: четыре идентификатора, как в VS Code. Та же ошибка была у сервера ESLint, который вдобавок
падал на каждом файле («Cannot read properties of null») — он не получал настроек и поднимался
даже в проектах, где ESLint не установлен вовсе.
🧠 Проект начинает помнить решения
Код отвечает на вопрос «как сделано» и молчит о том, что было отвергнуто и почему. Через месяц
эта половина стирается у всех, а у агента раньше всех: он предложит вариант, который вы уже пробовали
и выбросили, — подробно, уверенно и за ваши токены.
- Журнал решений — файлы
docs/decisions/с обязательной строкой индекса. Заголовок записи —
вопрос, а не выбранный вариант: через полгода ищут по вопросу, который возник снова. Причина
обязательна; без неё запись не отвечает на то, ради чего её открывают. - Фиксируется одним движением: ссылка «решение» под ответом агента предзаполняет вопрос вашим
сообщением, а выбор — текстом ответа. - Решение отменяется решением, а не правкой старого: новая запись ссылается на предыдущую, та
помечается в индексе и перестаёт подаваться агенту. Файл остаётся — он свидетельство того, что и
почему решили тогда. - Входящее — внешний PDF или текст остаётся в проекте с шапкой происхождения, а не живёт одну
сессию. Скан без текстового слоя не кладётся: документ, который существует и молчит, хуже
отсутствующего. - Всё это находит библиотекарь и видит внешний агент —
vibe_corpus_searchищет по знаниям,
решениям и документам сразу.
👁 Интерфейс стал плотнее
Верхняя полоса, вкладки и заголовки панелей теперь тоньше — включён штатный Compact Mode
платформы. Умолчание применяется один раз: выключите — останется выключенным.
«Возможности VibeIDEA» (Help → Find Action) открывает вкладкой список того, что встроено и
где это включается: плотный интерфейс, толщина скроллов, правка данных в БД, подсказки SQL,
cookies, журнал решений, дежурные проверки, расход токенов. Повод — фраза владельца: «даже в родной
IDE я не знал, что это переключается».
🗄 База данных: данные можно править
Двойной щелчок по таблице — и ячейка редактируема, если правка адресуема: в выборке есть
первичный ключ. Правка копится в буфере, кнопка «Применить» сначала показывает готовые
UPDATE … WHERE ключ и только потом выполняет их одной транзакцией. Отказ называется причиной:
нет ключа, ключ пуст, столбец сам входит в ключ, подключение помечено "readOnly": true.
Подсказки SQL по схеме — Ctrl+Space в консоли: таблицы после FROM, столбцы упомянутых таблиц
в SELECT, псевдоним u. сужает список. Схема берётся из прочитанного дерева — в базу по нажатию
клавиши не ходим.
🌐 HTTP и стек
- Cookies — вкладка со списком: вход кладёт сессию в куку, без неё второй запрос отвечает 401, и
раньше причина не была видна нигде. - Vibe Server больше не бесполезен без файла: дев-сервер угадывается по
package.json, а кнопка
«Создать файл» записывает догадку. Порт при этом не выдумывается — адрес берётся из того, что
напечатал сам сервер. - Кнопка «Превью» открывает страницу сервиса во встроенном браузере IDE.
- Дежурные проверки (
.vibe/patrols.json) — дешёвая команда по расписанию решает, есть ли повод
звать модель. Модель сама не зовётся: приходит уведомление с кнопкой.
💸 Деньги перестали врать молча
- Срок годности цены (
priceValidUntil): промо кончаются вдвое и по расписанию, а записанная
цена продолжает считаться как ни в чём не бывало. Теперь диагностика предупредит, а отчёт о
расходе пометит суммы. - Смета до запуска пайплайна — по вашему же журналу: сколько эти роли стоили в прошлые прогоны.
Роль без истории называется отдельно и в сумму не входит. - Часовой кэш промпта (
cacheTtl: "1h") — для сессий с паузами дольше пяти минут. - Рассуждение модели видно: раньше рассуждающая модель молчала ровно столько, сколько думала, и
это выглядело как зависание.
📦 Установка
macOS (Apple Silicon): VibeIDEA-0.4.2-aarch64.dmg — перетащите приложение в «Программы».
Сборка не подписана и не нотаризована: при первом запуске macOS покажет «Файл не может быть
открыт». Нажмите «Готово», затем Системные настройки → Конфиденциальность и безопасность →
пролистайте вниз, там появится «Открыть всё равно». Либо снимите карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.4.2-aarch64.dmg
# d4cb1cb50d1313b69f81aefb537aca865d540a95af19c92a6315bcb268e0465dЧто нужно на машине: PHP 8.1+ и Node 18+. Для отладки PHP — Xdebug. Для базы — драйвер JDBC,
его скачает кнопка в панели «БД».
Windows (x64): VibeIDEA-0.4.2.exe — обычный инсталлятор; или VibeIDEA-0.4.2.win.zip —
распаковать куда угодно и запустить bin\idea64.exe.
Сборка не подписана: SmartScreen покажет «Система Windows защитила ваш компьютер» —
«Подробнее» → «Выполнить в любом случае». Касперский может удалить idea64.exe по
поведению (PDM:Trojan.Win32.Generic): это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.4.2.exe -Algorithm SHA256
# a389f32018cadbf791a6b68adcfc9964df6835cf8a3ceaa08ce3a8325e587d99
Get-FileHash VibeIDEA-0.4.2.win.zip -Algorithm SHA256
# 1c62488fbf72884ae993f7808efa9bd2706b8cde19290fef220b6ecc85ece40bТребования те же, что у macOS: Node 18+ для TypeScript, CSS, ESLint и обоих адаптеров отладки;
PHP 8.1+ и Xdebug — для PHP. Встроенный PHP-сервер на Windows запускается — проверено запуском
собранного дистрибутива.
Обновление с 0.4.1: ставится поверх, настройки сохраняются. Плотный интерфейс включится сам
— выключается в View → Appearance → Compact Mode.
🚧 Чего пока нет
- Подсветка синтаксиса SQL в консоли базы — сейчас обычный текст.
- Подпись сборки — нужны учётные записи разработчика Apple и сертификат для Windows.
- Мастера OAuth, gRPC и WebSocket в HTTP-клиенте — намеренно вне плана.
🔬 Честно о зрелости
1530 тестов и пять гейтов исходников: пятый появился в этом же выпуске, когда сборка
инсталлятора упала на зависимости, которую не видели ни тесты, ни четыре прежних гейта.
Обкатывает по-прежнему один человек. Журнал решений, дежурные проверки и правка данных в БД в
живой работе не обкатаны. Если у вас не сработает — это самый полезный
issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0. VibeIDEA не является продуктом JetBrains. Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Этот выпуск научил IDE помнить ваши решения. Своих у неё по-прежнему нет — кроме одной кнопки ниже.
VibeIDEA 0.4.1
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Патч к v0.4.0. Главное в нём —
PHP на Windows действительно заработал: в 0.4.0 это было обещано и не работало.
🐘 PHP на Windows: обещание 0.4.0 выполнено
В 0.4.0 мы написали, что встроенный Phpactor запускается везде. На Windows он не запускался.
Проверок в его phar оказалось две: одна у сборщика Box, вторая — собственная, в самом
bin/phpactor. Мы гасили первую, а падала вторая, до первой дело просто не доходило. Проверка на
macOS увидеть этого не могла по построению: она отключала функции posix_*, а вторая проверка
спрашивает про расширение целиком — эмулировалось не то условие.
Теперь рядом с phar едет маленький лаунчер, который поднимает Phpactor напрямую, минуя обе
проверки и не трогая чужой код. Снято запуском на Windows 11, а не рассуждением.
🔧 Что ещё починено
- Страницы настроек больше не едут вбок. Длинная подсказка растягивала страницу, и внизу
появлялась горизонтальная полоса. Исправлено на всех девяти страницах. - Реклама Ultimate гасилась наполовину. Баннер в редакторе молчал, а всплывающее «Features
covered by Ultimate Subscription PHP are detected» приходило: у него своя настройка в платформе.
Теперь молчат обе. - Панели переименованы внутри (идентификаторы стали латиницей — они уезжают в файл раскладки
окон, где кириллица ломается при смене кодировки). Позиции панелей один раз сбросятся —
разложите их заново, дальше сохранится. - Закрытие проекта во время запроса больше не пишет исключение в лог.
🌐 HTTP-клиент: история и прогон всего файла
- История ответов — вкладка рядом с телом и заголовками: десять последних ответов запроса со
временем, статусом и размером. Отдельной строкой сообщается только изменение — статус или
тело; «вчера работало» и есть тот вопрос, ради которого в историю заглядывают. - «Прогнать всё» — дымовой проход по файлу. Успехом считается только 2xx, упавшие называются
поимённо, а изменяющие запросы (POST,DELETE) называются до прогона и требуют
подтверждения: пять прогоновPOST /users— это пять пользователей.
🗄 База данных: строку можно забрать
Правая кнопка на строке результата — JSON (в тикет), INSERT (повторить на другом стенде),
WHERE (найти её снова). NULL в JSON становится null, а не строкой; идентификатор 007
остаётся строкой и не теряет нули; апостроф в INSERT удваивается; в WHERE пустое значение
сравнивается через IS NULL, потому что = NULL не истинно никогда.
🈯 JavaScript: IDE сама ставит диагноз
Открыли .js в большом проекте без jsconfig.json — приходит уведомление с кнопкой «Создать».
Без этого файла языковой сервер видит только открытый файл и то, что достижимо через import:
в кодовой базе со своим загрузчиком классов (ExtJS, глобалы в window) переход к определению
молчит, и выглядит это как «IDE не умеет», хотя это отсутствующий файл на десять строк. В
include попадают каталоги вашего кода, в exclude — вендорные; проверка типов не включается,
чтобы старая база не засыпала вас ошибками в первый же день.
📦 Установка
macOS (Apple Silicon): VibeIDEA-0.4.1-aarch64.dmg — перетащите приложение в «Программы».
Сборка не подписана и не нотаризована: при первом запуске macOS покажет «Файл не может быть
открыт». Нажмите «Готово», затем Системные настройки → Конфиденциальность и безопасность →
пролистайте вниз, там появится «Открыть всё равно». Либо снимите карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.4.1-aarch64.dmg
# d0b57e860a5b436f7a6fe9ab1297ab68292951281f51fee5a415961999827706Что нужно на машине: PHP 8.1+ и Node 18+. Для отладки PHP — Xdebug. Для базы — драйвер JDBC,
его скачает кнопка в панели «БД».
Windows (x64): VibeIDEA-0.4.1.exe — обычный инсталлятор; или VibeIDEA-0.4.1.win.zip —
распаковать куда угодно и запустить bin\idea64.exe.
Сборка не подписана: SmartScreen покажет «Система Windows защитила ваш компьютер» —
«Подробнее» → «Выполнить в любом случае». Касперский может удалить idea64.exe по
поведению (PDM:Trojan.Win32.Generic): это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.4.1.exe -Algorithm SHA256
# 41dea4c4d19904105f80fb90a0248556860700ac39e57501b4e18322d88c1476
Get-FileHash VibeIDEA-0.4.1.win.zip -Algorithm SHA256
# 119e02f7744ae9dd4452ce05ca3b90205159aabeb8f0034e8f38c8f427a5832aЧто нужно на машине: Node 18+ — на нём работают TypeScript, CSS, ESLint и оба адаптера отладки;
PHP 8.1+ и Xdebug — для PHP и его отладки. Ради этого выпуска Windows и ждали: встроенный PHP-сервер
здесь запускается — проверено запуском собранной сборки, а не рассуждением.
В отличие от 0.4.0, где Windows-артефакты несли правку поверх тега, здесь оба образа собраны из
одного и того же коммита: фикс PHP приехал в общий код.
Обновление с 0.4.0: ставится поверх, настройки сохраняются. Установленная 0.4.0 сама сообщит о
новой версии — канал обновлений в ней уже есть.
🚧 Чего пока нет
- Правка данных в таблице БД — только просмотр (намеренно: правка требует подтверждений и
генерацииUPDATEпо ключу, а сделанная наполовину опаснее отсутствующей). - Автодополнение SQL по схеме, cookies в HTTP-клиенте.
- Подпись сборки — нужны учётные записи разработчика Apple и сертификат для Windows.
🔬 Честно о зрелости
1389 тестов, четыре гейта исходников и проверка дистрибутива, которая запускает встроенные
серверы и адаптеры, а не проверяет наличие файлов. Именно она поймала, что в сборку едет вчерашний
набор зависимостей без лаунчера Phpactor.
Обкатывает по-прежнему один человек. Панели HTTP и БД в живой работе не обкатаны, живой прогон
точки останова в установленной IDE не делался. Если у вас не сработает, это самый полезный
issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0. VibeIDEA не является продуктом JetBrains. Телеметрии нет.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Этот выпуск не добавил функций — он выполнил обещание предыдущего.
VibeIDEA 0.4.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Четвёртый релиз. Всё из v0.3.0
работает и здесь; ниже — только то, что появилось. Тема выпуска: инструменты, ради которых
открывали второе приложение, переехали внутрь IDE.
🐘 PHP на Windows заработал
В v0.3.0 на Windows не было ни подсказок, ни перехода к определению: встроенный Phpactor не
стартовал, потому что его phar требует расширение posix, которого в Windows-сборках PHP нет.
Мы распаковали phar и посмотрели, зачем ему posix. Оказалось — незачем: все вызовы posix_*
внутри защищены проверкой «а есть ли такая функция», и требование осталось от сборщика.
Требование ложное, а страдал от него весь Windows.
Теперь рядом с phar едет крошечный лаунчер: на Windows IDE запускает его, а он поднимает
автозагрузчик phar в обход одной-единственной строки — той, что проверяет расширение. Ничего не
патчится, чужой код не трогается, phar остаётся ровно тем файлом, что выпустил проект; на macOS и
Linux всё идёт как шло.
Честно о том, как это чинилось дважды. Первый обход — тот, что задумывался в этот выпуск —
гасил проверку сборщика phar, и на macOS выглядел рабочим: там отключали функции posix_*, а
проверка смотрит не на функции, а на расширение, и extension_loaded('posix') на macOS остаётся
истинным при любых отключённых функциях. На Windows расширения нет вовсе, там срабатывает
собственная проверка phar — раньше и совсем в другом месте, чем проверка сборщика. Поймано на
живой Windows-машине при сборке этих артефактов; лаунчер запускается гейтом дистрибутива на обеих
системах, так что «проверено» теперь означает «запущено».
Движок PHP при этом стал выбором. Settings → Tools → VibeIDEA → Языковые серверы: Phpactor
(встроен) или Intelephense (ставится npm i -g intelephense) — на случай, если вам нужен второй.
🌐 HTTP-клиент: запросы лежат в репозитории
Панель HTTP справа и Ctrl+Alt+Enter в редакторе выполняют запрос, внутри которого стоит
курсор. Форма знакомая по Postman — окружение и запуск сверху, список запросов слева, ответ справа
строкой «статус · время · размер» и вкладками тела и заголовков.
Хранилище другое, и это главное. Запросы — файлы .http рядом с кодом, а не коллекции в чужом
облаке: их правят вместе с эндпоинтом, обсуждают в код-ревью и откатывают вместе с кодом.
### Список пользователей
GET {{host}}/api/users?limit=10
Authorization: Bearer {{token}}- Окружения — двумя файлами: общий
http-client.env.jsonедет в git, приватный
http-client.private.env.jsonдержит секреты и перекрывает общий по ключу. - Неподставленная переменная видна до отправки: подсвечена в файле, названа в подсказке и в
строке ответа. Пустая строка вместо неё отправила бы запрос наhttps:///usersи спрятала причину. - Подсказка внутри
{{…}}показывает переменные окружения вместе со значениями. - cURL в обе стороны: команда из тикета превращается в запрос, запрос — в команду с уже
подставленными переменными. - Из OpenAPI — действие «Запросы из OpenAPI» превращает спеку (JSON или YAML, 3.x и Swagger 2)
в готовый файл: пути, методы, заголовки, тело-заглушка из схемы,{{host}}из серверов. - Подсветка, зелёная стрелка «выполнить» на полях, сохранение ответа в файл, таймауты в настройках.
Чего нет: обработчики ответа на JavaScript распознаются, но не выполняются (свой движок JS —
зависимость размером с половину плагина); нет мастера OAuth, gRPC и WebSocket.
🗄 Работа с базой данных
Панель БД справа: слева дерево схем, таблиц и столбцов с поиском, справа консоль и таблица
результата. Двойной щелчок по таблице показывает первые строки; «Выполнить» запускает оператор
под курсором — и в консоли, и прямо в файле .sql.
- Подключения — файлом
.vibe/dataSources.json: часть проекта, приезжает новому разработчику
вместе с клоном. - Пароля в файле нет и быть не может — он живёт в связке ключей системы. Пароль, найденный в
файле, панель называет красной строкой: это не «поле, которого мы не поддерживаем», а находка —
секрет уже в репозитории. Пароль внутри строки подключения маскируется при показе и в логах. - Драйвер скачивается кнопкой — из Maven Central, с закреплённой версией и проверкой
sha256: подменённый jar это код, который выполнится в IDE с вашими правами; не совпал хеш —
файл удаляется. На кнопке написана лицензия (у MySQL это GPL с исключением), потому что нажатие
— ваше решение. PostgreSQL, SQLite, MySQL, MariaDB, H2. - Изменяющий оператор спрашивает подтверждение: «выполнить» под курсором легко нажать
случайно, аDELETEбезWHEREотменить нечем. NULLпечатается словом — в базе это не пустая строка. Двоичное показывается размером.
Одинаковые имена столбцов разводятся:SELECT a.id, b.idиначе молча показывал бы один.- Выгрузка в CSV выгружает показанное, а не повторяет запрос: между показом и нажатием данные
могли измениться.
Правки данных нет намеренно: она требует подтверждений и генерации UPDATE по первичному
ключу, а сделанная наполовину опаснее отсутствующей.
🔌 MCP-сервер внутри IDE
Внешний агент (Claude Code, Claude Desktop, любой MCP-клиент) может спросить про открытый
проект: кто импортирует файл, что импортирует файл, как связаны двое, что за проект открыт, — и
поставить задачу агенту IDE.
POST /mcp на том же loopback-порту и с тем же токеном, что HTTP API: MCP — другой язык к той же
двери, а не новая дверь. Две ревизии протокола: stateless 2026-07-28 и 2025-06-18 с
рукопожатием, потому что большинство клиентов до сих пор начинают с initialize. Настройка —
manuals/mcpSpec.md.
🎛 Интерфейс: панели стало видно
- У каждой панели свой значок. Восемь наших панелей делили одну картинку и были неразличимы в
полосе; у дев-стека значка не было вовсе. Теперь: искра — агент, щит с галочкой — аудит, линейка
— дизайн-детектор, пульс — диспетчерская, книга — документы, часы — фоновые задачи, стойка —
дев-стек, цилиндр — БД, стрелки — HTTP. - Панели больше не спрятаны. Пять из них были помечены «вторичными» и уезжали под «…»: часть
продукта, которую не видно, ничем не отличается от отсутствующей. - Задачи как в PhpStorm — плагин задач и трекеров (YouTrack, Jira, GitLab, Redmine и другие)
теперь в комплекте. Плюс.env, XPath/XSLT и JSONPath: они лежали в открытом дереве
невключёнными. - Голосовой ввод в композере — микрофон записывает через JDK, без единой нативной библиотеки;
расшифровка тем же whisper, что и голосовые из Telegram. - Версии в «О программе»: продукт, платформа и коммит сборки — тремя подписанными строками.
🔄 Обновления теперь приходят сами
Начиная с этой версии установленная IDE проверяет обновления и говорит о новой. Патчей канал не
несёт: приходит уведомление со ссылкой на релиз, ставится поверх, настройки сохраняются.
У v0.3.0 этого нет — её номер сборки был SNAPSHOT, а платформа читает такой номер как
максимум: она считала себя новее всего, что мы когда-либо выпустим. С 0.4.0 номер настоящий.
📦 Установка
macOS (Apple Silicon): VibeIDEA-0.4.0-aarch64.dmg — перетащите приложение в «Программы».
Сборка не подписана и не нотаризована: при первом запуске macOS покажет «Файл не может быть
открыт». Нажмите «Готово», затем Системные настройки → Конфиденциальность и безопасность →
пролистайте вниз, там появится «Открыть всё равно». Либо снимите карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 VibeIDEA-0.4.0-aarch64.dmg
# 28dcf20ec1843599f78aa6f93c2c32a42f16c60cdcfa5e7faf8d87de8df18e4cЧто нужно на машине: PHP 8.1+ и Node 18+ (brew install php node). Для отладки PHP — Xdebug.
Для базы — драйвер JDBC, его скачает кнопка в панели «БД». Необязательно: pdftotext, yt-dlp,
ffmpeg, whisper (для голоса).
Windows (x64): VibeIDEA-0.4.0.exe — обычный инсталлятор; или VibeIDEA-0.4.0.win.zip —
распаковать куда угодно и запустить bin\idea64.exe (лаунчер по-прежнему носит унаследованное имя —
это имя файла, а не продукта).
Сборка не подписана: SmartScreen при первом запуске покажет «Система Windows защитила ваш
компьютер» — «Подробнее» → «Выполнить в любом случае». Касперский может удалить idea64.exe
по поведению (PDM:Trojan.Win32.Generic) — это детект неподписанного новичка, а не находка в файле.
Проверить, что скачался наш файл (PowerShell):
Get-FileHash VibeIDEA-0.4.0.exe -Algorithm SHA256
# fff5e1d68845fcb59e3794c19d9202b06e1722351bf279f827fb6dadb4f25a39
Get-FileHash VibeIDEA-0.4.0.win.zip -Algorithm SHA256
# 020ec352262c6d5403d586fb2f2abe01fa8eb2ae2813814b28a82fb52b87a4f2Что нужно на машине: Node 18+ (nodejs.org, LTS) — на нём работают
TypeScript, CSS, ESLint и оба адаптера отладки. Для PHP — PHP 8.1+
(windows.php.net, каталог с php.exe в PATH), для его
отладки — Xdebug. Драйвер JDBC для базы скачивает кнопка в панели «БД».
Одно отличие от macOS-образа, названное честно. Windows-артефакты собраны с правкой, которой в
macOS-образе нет: обещанный в этом выпуске PHP на Windows не работал — обход, сделанный на
macOS, гасил не ту проверку (подробности в разделе про PHP выше). Правка касается только запуска
Phpactor на Windows; всё остальное — тот же коммит, что и у macOS-образа. На поведение macOS она не
влияет и приедет туда следующей сборкой.
**L...
VibeIDEA 0.3.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Третий релиз. Всё из v0.2.0 работает и
здесь; ниже — только то, что появилось. Тема этого выпуска одна: деньги и фоновая работа
перестали быть невидимыми.
💸 Расход, который наконец честный
Токены берутся из ответа провайдера, а не из длины текста. До этого прямой чат считал ход по
длине ответа — запрос с контекстом на двести тысяч токенов стоил в отчёте столько же, сколько
произведённая им фраза. Из этого следовало неприятное: потолок расхода, выпущенный в v0.2.0, на
прямом чате не срабатывал никогда, потому что сравнивать с лимитом было нечего.
Цена — ваша, из providers.json. Своей таблицы цен мы не ведём: она неверна в день, когда
вендор поменяет строку, а потолок, остановивший работу по устаревшему числу, останавливает её по
выдуманной причине. Но цену, которую вы написали сами, IDE обязана применять:
"pricing": { "input": 10, "output": 50, "cacheRead": 0.25, "currency": "USD" }Ставка чтения из кэша задаётся отдельно, а не коэффициентом скидки: у новых моделей это 0,025
базового ввода против 0,1 у прежних, и один «коэффициент» пришлось бы переписывать при каждом таком
изменении.
Что это включило:
/spendв чате — первой строкой «во что обошёлся этот чат»: про деньги спрашивают
именно так, а суточный итог отвечает на другой вопрос и выглядит переплатой;- расход в статусной строке — сумма за сутки, если цена известна, иначе токены. Отчёт отвечает,
когда его спросили, а спрашивают редко и поздно; число, которое просто есть, работает как
топливомер, а не как отчёт о топливе. При нулевом расходе виджет пуст; - строку экономии на кэше — «кэш сэкономил $7,80»: единственная статья, на которую можно
повлиять, не меняя модель; - выгрузку в CSV — месяц таблицей для того, кто спросит «покажи бухгалтеру».
🧊 Кэш перестал рваться на ровном месте
Промпт-кэш совпадает не тогда, когда «разговор тот же», а когда запрос начинается теми же
байтами. Мерить это было нечем — и виновник оказался не там, где его искали: граница, за которой
старые сообщения теряют картинки, пересчитывалась каждый ход. Пятый скриншот молча переписывал
сообщение с первым, и всё после этого места оплачивалось как свежий ввод — на каждом следующем
ходе.
Теперь граница липкая: двигается только вперёд и только когда пришла новая картинка. Если префикс
всё-таки разошёлся, IDE говорит об этом строкой с числом совпавших сообщений.
⏱ Фоновая работа стала управляемой
/bg запускал команду и забывал о ней: ни списка, ни остановки, ни срока. Задача без объявленного
срока неотличима от зависшей, а молчащая — от ничего не делающей.
/bg— список: номер, состояние, сколько идёт, команда;/bg stop <номер>и/bg stop— остановить одну или все;- тулвиндоу «Фоновые задачи» — тот же список постоянно на виду, с кнопкой у каждой работающей.
Ответ, за которым надо сходить, спрашивают один раз и обычно тогда, когда уже заподозрили
неладное, а сборку, идущую сорок минут, стоит заметить раньше; - срок жизни и пульс — 30 минут и отчёт раз в минуту, настраиваются (0 в сроке — без
ограничения). Отсчёт пульса идёт от последнего сказанного слова, иначе вместо ровного пульса
получается залп просроченных уведомлений.
Заодно нашлось: /bg молча одалживал таймаут, написанный для замеров (15 минут), и на
настоящей длинной сборке убил бы работу сообщением про замер.
🔐 Скилл, изменившийся в репозитории, спросит заново
Скилл выполняется с вашими правами и живёт в репозитории: приезжает с пул-реквестом, меняется
ребейзом. «Я разрешил его вчера» ничего не говорит о том, что он делает сегодня.
Одобрение теперь привязано к содержимому — digest тела и имён файлов рядом. Скилл, получивший
скрипт, получил возможность, даже если текст не менялся. Порядок листинга файловой системы
изменением не считается: вопрос, заданный впустую, прокликивают не глядя.
🔎 Две новые вещи, которые видно вовремя
Переписывание файла целиком ради пары строк называется вслух: «app.kt переписан целиком ради 3
строк из 400». Это подтверждённая вендором особенность новых моделей — результат тот же, но
выходных токенов и времени уходит больше. Не блокируем: переписывание, дающее верный файл, не
дефект; но цена, которой не видно, — это цена, о которой нельзя принять решение.
Счётчик пачек вызовов в /trace: сколько инструментов модель просила за раз. Детектор петель
этого не видит по построению — вызовы разные, ничего не повторяется, — а падение среднего до
единицы означает, что каждый лишний круг стоит токенов и времени.
🈺 Языки: путь к своему серверу
Правило «свой сервер сильнее встроенного» действовало только для тех, кто лежит в PATH, а
проекты, которым своя версия нужнее всего, держат её в стороне: vendor/bin, общая папка
контейнера, сборка из исходников. Settings → Tools → VibeIDEA → Языковые серверы: заполненное
поле перекрывает всё, включая PATH; пустое оставляет прежний порядок. Путь, переставший работать,
доктор называет отдельной строкой — настройка, молча переставшая применяться, хуже отсутствующей.
📦 Установка
macOS (Apple Silicon): vibeIdea-263.SNAPSHOT-aarch64.dmg — перетащите приложение в
«Программы».
Сборка не подписана и не нотаризована: при первом запуске macOS покажет «Файл не может быть
открыт». Нажмите «Готово», затем Системные настройки → Конфиденциальность и безопасность →
пролистайте вниз, там появится «Открыть всё равно». Либо снимите карантин командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 vibeIdea-263.SNAPSHOT-aarch64.dmg
# 6786e6b9ddd040a45a4ed7f91bc1fae6bd91f227385772458700f03960573ebbЧто нужно на машине: PHP 8.1+ и Node 18+ (brew install php node). Для отладки PHP — Xdebug.
Необязательно: pdftotext, yt-dlp, ffmpeg, whisper.
Windows (x64): vibeIdea-263.SNAPSHOT.exe — обычный инсталлятор; или vibeIdea-263.SNAPSHOT.win.zip —
распаковать куда угодно и запустить bin\idea64.exe (да, лаунчер пока зовётся по-старому — это
имя файла, а не продукта). Сборка добавлена 02.09.2026, позже macOS-образа: продукт в ней тот же,
что и в dmg: сборка сделана на коммите main от 03.09.2026, который отличается от тега только
упаковкой под Windows и документацией — это проверяется правилом releasePackagingOnly.sh.
Сборка не подписана: SmartScreen при первом запуске инсталлятора покажет «Система Windows
защитила ваш компьютер». Нажмите «Подробнее», затем «Выполнить в любом случае».
Проверить, что скачался наш файл (PowerShell):
Get-FileHash vibeIdea-263.SNAPSHOT.exe -Algorithm SHA256
# 90176467cc28a58dc54efe5646c3c06a433e8d393caea9a8deff0b94be8179a7
Get-FileHash vibeIdea-263.SNAPSHOT.win.zip -Algorithm SHA256
# 364e957fca665b1ebe1f7205a2a0925857703159d7ec14d468edb8d78c07d825Что нужно на машине: Node 18+ (nodejs.org, LTS) — на нём работают
TypeScript, CSS, ESLint и оба адаптера отладки. Для отладки PHP — PHP 8.1+
(windows.php.net, x64 Thread Safe, каталог с php.exe — в
PATH) и Xdebug. Необязательно: pdftotext, yt-dlp, ffmpeg, whisper.
Честно про PHP на Windows: встроенный языковой сервер Phpactor на Windows не запускается —
его phar требует расширение posix, которого в Windows-сборках PHP не существует (проверено, обход
проверки не помогает). Отладка PHP работает (адаптер на Node), а подсветка, навигация и дополнение
для PHP — нет. Обход — свой Phpactor в WSL и путь к нему в Settings → Tools → VibeIDEA → Языковые
серверы; штатное решение ищем.
Linux: этой сборкой не собирался; собрать из исходников можно, работоспособность не обещаю,
потому что не проверял.
🚧 Чего пока нет
- MCP — архитектурная развилка не решена.
- PHP-сервер на Windows — Phpactor требует
posix; нужен либо сервер без этого требования,
либо запуск через WSL из коробки. - Голосовой ввод в самой IDE — ждёт решения по нативной библиотеке.
- Подпись сборки — нужна учётка разработчика Apple; обход выше.
- Автообновление — канала обновлений нет, новые версии ставятся вручную.
🔬 Честно о зрелости
1182 теста, четыре гейта исходников и проверка дистрибутива, которая запускает встроенные
серверы и адаптеры отладки, а не проверяет наличие файлов. Обкатывает по-прежнему один человек на
одной машине под macOS, и живой прогон точки останова в установленной IDE всё ещё не делался —
юнит-тест её не ставит по построению. Windows-сборка прошла ту же проверку дистрибутива на
Windows 11 (серверы и адаптеры стартуют из архива), IDE из архива стартует с чистым профилем
(четыре плагина Vibe и LSP4IJ загружены, ошибок в логе нет), тихая установка инсталлятора
совпадает с архивом файл в файл — но обкатки в работе у неё ещё не было. Если у вас не сработает, это самый полезный
issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0. VibeIDEA не является продуктом JetBrains. Телеметрии нет. Состав
третьих лиц против v0.2.0 не менялся.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Агент теперь показывает расход прямо в статусной строке. Расход автора на кофе показывать пока
некуда, но кнопка ниже есть.
VibeIDEA 0.2.0
🧱 Что это
VibeIDEA — открытая IDE PhpStorm-класса со встроенным агентом. Форк
intellij-community: платформа JetBrains, языки
через LSP, вся агентская обвязка своя.
Второй релиз. Первый — v0.1.0, и всё,
что в нём было, работает и здесь; ниже — только то, что появилось.
🐞 Отладка, которая заводится сама
Адаптеры едут в комплекте. PHP (Xdebug) и JavaScript/TypeScript (vscode-js-debug) — ставить
нечего. Три мегабайта архивов за то, чтобы точка останова работала сразу после установки, как и
переход к определению.
Конфигурацию пишет IDE, а не вы. Командная строка адаптера, JSON запуска и признак готовности
сервера — ни одно из трёх не угадывается по памяти, и ровно поэтому отладкой через LSP4IJ никто не
пользовался. Теперь: точка останова, «Debug», всё.
Форм запуска несколько, потому что одной не хватает. Скрипт запускают, а веб-приложение
поднимают и открывают в браузере:
| JavaScript / TypeScript | PHP | |
|---|---|---|
| По умолчанию | текущий файл, карты исходников включены | слушает Xdebug на 9003 |
| Ещё | npm run dev — дев-сервер проекта под отладчиком |
встроенный сервер PHP с уже включённым Xdebug |
| Attach | к процессу на 5858 | к Xdebug на 9003 |
PHP по умолчанию именно слушает: страницу отлаживают запросом из браузера, а запуск файла под
CLI-интерпретатором ломается на первой же странице с сессией. Со стороны PHP нужен включённый
Xdebug (xdebug.mode=debug, xdebug.client_port=9003).
Свой адаптер сильнее встроенного — как и со всеми языковыми серверами.
💸 Деньги: потолок в тех единицах, в которых их продают
Подписки продаются в долларах и в окнах, а не в токенах: $12 за 5 часов, $30 в неделю, $60 в
месяц — и одни и те же сто тысяч токенов стоят центы на одной модели и доллары на другой.
Настройки — Settings → Tools → VibeIDEA → Чат, в целых долларах, 0 выключает.
Проверка до хода, а не после. Потолок, о котором сообщили после траты, — это чек, а не
предохранитель. Предупреждение приходит на 80 % и называет темп: «при текущем темпе хватит
примерно на 40 мин». Доля говорит, куда ушли деньги; темп — когда они кончатся, и это разные
решения.
Исчерпанный потолок спрашивает, а не отказывает молча. Вопрос идёт и в IDE, и в Telegram,
отвечает первый; «Всё равно продолжить» проводит один ход и пишется в журнал. Автопилот в этом
месте останавливается без вопроса: у клавиатуры никого, а вопрос, на который некому ответить, —
это ход, висящий до утра.
/spend прямо в чате — расход по ролям и остаток по каждому окну. Считается только то, что
провайдер сам назвал ценой: своя таблица цен устареет в день, когда вендор поменяет строку.
🔐 Журнал, которому можно верить
Каждая запись называет автора: human, agent (с ролью и целью) или ide. Ход, продолженный
автопилотом, теперь отличим от набранного руками — раньше это была одна и та же строка.
Записи связаны в цепочку. Каждая несёт отпечаток предыдущей: правка, удаление, вставка и
перестановка ломают связь, а проверка называет номер строки. Это не подпись и не притворяется
ею — ключ жил бы на той же машине, что и файл. Утверждение уже и честнее: журнал не правили, или
вот место, где правили.
Проверить можно без IDE, тем, кому вы файл передали:
./vibe-plugins/tools/verifyAuditChain.sh audit.jsonlДоказательство, которое умеет проверить только та программа, что его и написала, доказывает мало.
Журнал недоступен инструментам агента на запись — независимо от настроек. Читать свой след
можно, переписывать нет.
«Кто что делал» — кнопка в окне журнала: сколько записей и неудач за каждым автором, какие
действия, и тут же проверка цепочки.
🤖 Модели: то, что вендор ломает во вторник
Каталог причуд стал вашим. .vibe/modelQuirks.json: запись файла замещает вшитое правило, а
"quirks": [] снимает его — «модель больше не капризничает, перестань переписывать мой
запрос». Вендор ломает совместимость во вторник и чинит в пятницу; ждать нашего релиза больше не
нужно. Спека —
modelQuirksSpec.md.
Протокол можно задать на уровне модели. У OpenCode Go один ключ и три формата API, привязанных
к моделям: MiniMax и Qwen обслуживаются Anthropic-совместимым /v1/messages, GLM и Kimi —
/v1/chat/completions. Раньше такого провайдера нельзя было описать честно ни при каком значении.
Причуды стали точными: NO_TOP_K отдельно от NO_TEMPERATURE и NO_TOP_P — MiniMax принимает
температуру и top_p и игнорирует только top_k, и описывать его агрегатом значило молча отбирать
настройки, которые работают.
🖥 Мелочи, которых не хватало
Недавние адреса в панели превью — фронт на :3000, API на :8000 и страница под разбором это три
места, между которыми ходят весь день.
Свои проверки в CI: четыре гейта исходников на каждый push и PR, раз в неделю — отставание от
апстрима и аудит уязвимостей в поставляемых серверах.
📦 Установка
macOS (Apple Silicon): vibeIdea-263.SNAPSHOT-aarch64.dmg — перетащите приложение в
«Программы».
Сборка не подписана и не нотаризована: при первом запуске macOS покажет «Файл не может быть
открыт» и предложит только «Переместить в Корзину» или «Готово». Как открыть: нажмите «Готово»,
затем Системные настройки → Конфиденциальность и безопасность → пролистайте вниз, там появится
«Открыть всё равно». Либо снимите карантин одной командой:
xattr -dr com.apple.quarantine /Applications/VibeIDEA.appПроверить, что скачался наш файл:
shasum -a 256 vibeIdea-263.SNAPSHOT-aarch64.dmg
# 804c70959487cc1159a51f2d8cdd162ee48155f6553d24c6a951cc3d9b192c77Что нужно на машине: PHP 8.1+ и Node 18+ (brew install php node) — рантаймы мы не поставляем
намеренно. Для отладки PHP — Xdebug. Необязательно: pdftotext, yt-dlp, ffmpeg, whisper.
Windows и Linux: этой сборкой не собирались; собрать из исходников можно, работоспособность не
обещаю, потому что не проверял.
🚧 Чего пока нет
- MCP — архитектурная развилка не решена.
- Голосовой ввод в самой IDE — ждёт решения по нативной библиотеке.
- Подпись сборки — нужна учётка разработчика Apple; обход выше.
- Автообновление — канала обновлений нет, новые версии ставятся вручную.
🔬 Честно о зрелости
1171 тест, четыре гейта исходников и проверка дистрибутива, которая запускает встроенные
серверы и адаптеры, а не проверяет наличие файлов. Но обкатывает её по-прежнему один человек на
одной машине под macOS, и живой прогон точки останова в установленной IDE ещё не делался —
юнит-тест её не ставит по построению. Если у вас не сработает, это самый полезный
issue, который сейчас можно завести.
⚖️ Лицензия
Исходники — Apache 2.0. VibeIDEA не является продуктом JetBrains. Телеметрии нет. Новое в
составе третьих лиц: vscode-js-debug 1.117.0 и vscode-php-debug 1.40.1, обе MIT.
Поддержать проект
Если VibeIDEA оказался полезным — буду рад благодарности.
Агент считает расход по файлам с точностью до токена. Кофе считается проще: закончился или нет.