VibeIDE is an AI-first Integrated Development Environment (IDE) designed to enhance coding productivity by integrating custom LLM providers, a coding agent, and an autopilot feature directly into a Visual Studio Code fork. It offers developers full control over their AI tools without subscriptions or telemetry, allowing them to use their own API keys.
Key Features:
Custom LLM Integration: Seamlessly integrate with any LLM provider without rebuilding the IDE.
AI-Powered Autopilot: Automatically completes tasks and manages multi-agent workflows.
No Subscription Model: Operates without recurring costs or telemetry.
Winget Deployment: Install VibeIDE via winget for quick setup.
Open Source: Built on MIT-licensed code, ensuring transparency.
Local Model Support: Works with local models like Ollama.
Target Audience and Benefits:
Ideal for developers seeking flexibility and control in their AI tools. VibeIDE provides cost savings, freedom from vendor lock-in, enhanced productivity through AI automation, and ease of deployment via Winget.
README
VibeIDE
Открытый AI-редактор кода. Без подписки. Без телеметрии. Ваши ключи, ваши модели.
или одной командой: winget install VibeBrains.VibeIDE
Что такое VibeIDE?
VibeIDE — форк VS Code open source (Code-OSS) с глубоко встроенным AI: не как расширение поверх редактора, а как часть самого редактора. Полностью открытый исходный код (MIT), работает с любым LLM-провайдером, не отправляет никакой телеметрии.
> «Ты видишь всё — и управляешь всем»
Почему VibeIDE, а не Cursor, Windsurf или Copilot?
📱 Агент в Telegram — поставить задачу с телефона текстом или голосом, видеть прогресс и получить ответ; бот ваш собственный, без наших серверов (как подключить).
Здесь — только ключевое. Полный каталог по темам — в docs/functional.md.
Свои LLM-провайдеры без пересборки — .vibe/providers.json: добавить, переопределить или выключить провайдера и модели, живой каталог моделей из API; работают как встроенные.
Любой провайдер на свой ключ + локальные модели (Ollama, LM Studio) встроены.
Агент с автопилотом — доводит задачу до конца сам; мультиагентная оркестрация с блокировками; персистентные планы переживают перезапуск IDE; команда ролей-субагентов не теряет прогресс на лимитах — сохраняет сделанное и продолжает с места остановки (durable handoff); картинку в маршруте ролей система сама отдаёт роли на vision-модели (разбор скриншота → текст разработчикам), а на «продолжи» перед ответом запускает read-only разведчика по последним правкам и плану с подтверждением «оно/не оно». «Проверить запуск» показывает заранее, что агенту или роли будет разрешено — инструменты, закрытые пути, лимиты, модель, — ничего не запуская; после хода детерминированные проверки смотрят, что он сделал: секрет в изменённом файле, запись в закрытый путь, ссылка на несуществующую строку (модель для этого не вызывается вовсе). Панель «Диспетчерская агентов» отвечает, кто работает прямо сейчас и что сделали уже закончившие роли — цель, расход против квоты, изменённые файлы, итог и причина остановки словами; журнал прогонов переживает перезапуск IDE, а брошенный упавшим окном прогон видно отдельно, а не «потерялся».
Минимализм кода — режимы лайт/фулл/ультра: агент сначала переиспользует существующее (кодбаза → stdlib → зависимости) и пишет минимум нового — меньше токенов, дешевле и быстрее; /simplify возвращает делит-лист по диффу, маркеры vibe-later собираются в леджер упрощений.
Экономия токенов на выводе команд — вывод терминала и MCP сжимается до попадания в контекст (command-aware профили git/тесты/ls/docker/find/install + дедуп шумных строк), ошибки и итоги сохраняются дословно; команда показывает, сколько токенов сэкономлено.
Spec-First и панель «Спеки» — крупная фича сначала описывается спекой (docs/specs//: PRODUCT.md — поведение, TECH.md — реализация), панель в activity bar ведёт спеки со статусом (черновик → утверждена → реализована) и создаёт их «из задачи» через агента прямо из модалки со скрепкой; при реализации утверждённой спеки правки вне объявленной области ставятся на паузу. Рядом — панель «Документы» (markdown-дерево проекта).
Vibe Server — превью без деплоя — локальный предпросмотр прямо в IDE: статика, dev-сервер фреймворка (Vite/Next/…) или Docker-окружение, живая перезагрузка, QR для телефона, ошибки превью одной кнопкой в чат агенту, клик по элементу страницы → селектор и заготовка правки сразу в чат.
Вшитый дизайн — интерфейс не выглядит «сделанным нейросетью» — дизайн-контекст проекта (для кого продукт + его палитра, гарнитуры и именованные правила) читается перед каждой правкой вида, а страницу автоматически замеряют 55 детерминированных проверок сразу на десктопе и телефоне 390px: и настоящие дефекты (контраст, зоны нажатия, обрезанный контент, битые картинки), и следы генератора (чип над заголовком, курсивный serif в герое, ореол, стекло, карточки-клоны), и русская типографика — висячие предлоги. Находки обведены прямо на странице — клик по рамке отправляет её в чат. Вкус отделён от дефекта: пол качества не отключается, а стилевую находку проект может объявить своей идентичностью — с причиной, которую видно через месяц. Работает и на dev-сервере фреймворка, не мешая горячей перезагрузке.
Vibe Deploy — выкат в облако через агента (Timeweb Cloud первым, провайдеро-агностично) с подтверждением перед каждым внешним действием.
Skills system — переиспользуемые AI-правила на уровне проекта.
Контекст на ходу — добавляете сообщение, пока агент работает: видно очередью над вводом, подхватывается на следующем шаге без остановки.
Guard'ы от галлюцинаций и счёта — лимит токенов сессии + индикатор заполнения контекста с предупреждениями до того, как модель начнёт деградировать.
Надёжные правки файлов даже на слабых моделях — простой формат old/new + терпимый поиск заменяемого текста.
Голосовой ввод офлайн — диктовка в чат, редактор и терминал с распознаванием на своём компьютере (русский и английский), живой текст пока говоришь; звук никуда не отправляется.
Просмотр видео в чате — /watch <ссылка>: IDE скачивает ролик, режет кадры по сменам сцен, берёт субтитры (или расшифровывает звук локально) и даёт разбор с тайм-кодами — модель видит экран, а не пересказывает субтитры.
Уведомления, когда отошёл — звук, мигание иконки в панели задач и системный тоаст, когда агент закончил или ждёт ответа; клик возвращает к IDE.
Диагностика провайдеров + «починить связь» — послойная проверка (конфиг → сеть → авторизация → модели) и сброс клиентов без перезапуска.
MCP — официальный SDK + менеджер OAuth-токенов.
Команды проекта — .vibe/commands.json с авто-хоткеями, едут в репозитории вместе с проектом.
Приватность по умолчанию — нет телеметрии Microsoft, ключи в системном хранилище (safeStorage), детекция секретов перед отправкой в LLM.
Полная совместимость с VS Code + Open VSX без аккаунта Microsoft.
Windows и macOS (Apple Silicon) — на Windows установщик или winget install VibeBrains.VibeIDE, на маке DMG.
🏠 ДОМАШНЯЯ СБОРКА — собери VibeIDE сам, одной командой
> ### ⚡ САМОЕ ПРОСТОЕ, ЧТО ЗДЕСЬ ЕСТЬ
> Одна команда — и на руках готовый портативный VibeIDE под твою систему. Скрипт сам поставит fnm, скачает нужную версию Node, установит зависимости и соберёт приложение. Перед запуском он объявит, что именно сделает, и спросит подтверждение — ничего не ставится молча.
Linux / macOS:
git clone https://github.com/VibeBrains/VibeIDE.git && cd VibeIDE
./scripts/home-build.sh
Windows:
git clone https://github.com/VibeBrains/VibeIDE.git && cd VibeIDE
scripts\home-build.cmd
На выходе — готовая к запуску папка приложения рядом с репозиторием и архив в .build/home/:
ОС
Что запускать
Архив
Linux
../VibeIDE-linux-/bin/vibeide
VibeIDE-linux-.tar.gz
macOS
../VibeIDE-darwin-/VibeIDE.app
VibeIDE-darwin-.zip
Windows
..\VibeIDE-win32-\VibeIDE.exe
VibeIDE-win32-.zip
Флаги: --arch arm64 (переопределить авто-архитектуру), --yes (без вопроса, для скриптов). Архитектура по умолчанию — как у твоей машины. Windows: нужен заранее установленный VS Build Tools C++ (см. требования ниже) — это единственное, что скрипт не ставит сам (многогигабайтная установка с правами администратора).
Node.js 24.18.0 (версия зафиксирована в .nvmrc) — именно этот мажор; на другом сборка падает, часто молча. Начиная с версии 1.15.1 (обновление базы до VS Code 1.133) требуется 24; для более ранних релизов нужна была 22.22.1.
Python 3.x (нужен node-gyp)
Git
Windows: Visual Studio Build Tools 2022 — компонент «Desktop development with C++»ИSpectre-mitigated библиотеки. Подробности и команды — в «C/C++ тулчейн для Windows» ниже.
Node через fnm (рекомендуется)
fnm (Fast Node Manager) — это альтернатива классической установке Node.js с сайта. Это лёгкий менеджер версий Node: вместо одного глобального Node в системе он хранит несколько версий рядом и переключает активную версию под конкретный проект автоматически по файлу .nvmrc (в VibeIDE там зафиксирована 24.18.0). Удобно, когда разные проекты требуют разных версий Node.
Установка и активация нужной версии под проект (один раз):
fnm install 24.18.0
fnm default 24.18.0
node -v # должно показать v24.18.0
npm -v # должно показать версию npm
> Если в новом терминале node/npm «не является командой» — у тебя не подключена интеграция fnm с шеллом (fnm хранит версии отдельно и подставляет их через shell-хук). Активируй её в профиле:
> - PowerShell:fnm env --use-on-cd | Out-String | Invoke-Expression (добавь в $PROFILE)
> - bash/zsh:eval "$(fnm env --use-on-cd)" (добавь в ~/.bashrc / ~/.zshrc)
>
> На Windows запуск dev-IDE через .\run-dev.bat --compile также сам резолвит Node из fnm, если он установлен.
C/C++ тулчейн для Windows (нативные модули) — обязательно
npm install компилирует нативные модули (@vscode/windows-registry, @vscode/spdlog, native-keymap, node-pty и др.) через node-gyp, поэтому нужен компилятор MSVC. Без него preinstall падает с *** Invalid C/C++ Compiler Toolchain.
> ⚠️ Spectre-mitigated библиотеки — отдельный компонент, и без него сборка падает. На @vscode/windows-registry будет MSB8040: для этого проекта требуются библиотеки с устранением рисков Spectre. --includeRecommended их не ставит — добавь явно через setup.exe modify (winget доустановить компонент в существующий VS не умеет — считает это «нет обновлений»):
>
> powershell > & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" modify ` > --installPath "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools" ` > --add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre --quiet --norestart >
>
> Не передавай --wait напрямую в setup.exe — он его не понимает и сразу выходит с exit 87. Ожидание делает Start-Process … -Wait.
После установки тулчейна открой новый терминал (PATH обновится) и убедись, что Node = 24.18.0, прежде чем npm install.
Сборка из исходников
git clone https://github.com/VibeBrains/VibeIDE.git
cd VibeIDE
npm install
npm run compile
./scripts/code.sh # Linux / macOS
.\run-dev.bat # Windows (верный запуск dev-IDE; --compile пересоберёт перед стартом)
Для быстрой разработки:
./scripts/code.sh --inspect # с отладчиком
Одно нажатие через Docker или GitHub Codespaces — см. Dev Container.
Предупреждение при первом запуске
Установщик не подписан сертификатом издателя, поэтому система один раз спросит подтверждение.
Windows: в окне SmartScreen нажать «Подробнее» → «Выполнить в любом случае».
macOS 15 (Sequoia) и новее: запустить приложение → «Готово» → Системные настройки → Конфиденциальность и безопасность → в разделе «Безопасность» нажать «Открыть всё равно» → запустить ещё раз. Control-клик → «Открыть» в этих версиях больше не работает.
macOS 14 и старше: Control-клик по приложению → «Открыть» → «Открыть».
При первом запуске VibeIDE проведёт вас через подключение модели. Можно использовать облачный API-ключ (OpenAI, Anthropic и др.) или подключить локальный Ollama — аккаунт не нужен.
Структура проекта
src/vs/workbench/contrib/vibeide/ ← весь AI-функционал
browser/ ← UI: сайдбар, панель настроек, статусбары
common/ ← сервисы: роутер моделей, MCP, память, RAG
extensions/ ← встроенные расширения VS Code
resources/ ← платформенные ресурсы (иконки, desktop-файлы)
product.json ← брендинг и настройки маркетплейса
Неочевидные поведения
Вещи, которые работают «из коробки», но нигде явно не описаны.
Папка data/ — портативный режим
Создайте папку data/ рядом с бинарником VibeIDE — IDE автоматически перейдёт в portable mode: все данные будут храниться внутри неё, а не в системных директориях (%APPDATA%, ~/.config и т.п.). Это подтверждено кодом в src/bootstrap-node.ts.
VibeIDE/
data/
user-data/ ← настройки, профили, history
extensions/ ← установленные расширения
shared-data/ ← shared state между воркспейсами
agent-plugins/ ← MCP/agent плагины
argv.json ← аргументы запуска
policy.json ← политики (если применяются)
tmp/ ← если создать эту подпапку, она становится системной TMP/TMPDIR
Перенести IDE на другой компьютер = скопировать один каталог. Путь к data/ можно переопределить переменной окружения VSCODE_PORTABLE.
Папка .vibe/ — конфигурация воркспейса для AI
При первом открытии любого воркспейса VibeIDE автоматически создаёт папку .vibe/ с шаблонами конфигурации. Файлы внутри читаются IDE на лету (hot-reload) — изменения подхватываются без перезапуска.
> Окружение развивается — ваша копия может отстать. В каждом релизе появляются новые скиллы и правятся существующие. Недостающие файлы дописываются при открытии проекта сами, а вот уже существующий файл IDE не трогает — иначе она затирала бы ваши правки. Поэтому файл, изменённый в новом релизе, остаётся у вас в старой редакции.
>
> Для этого есть две команды (меню «мозга» в заголовке окна или палитра):
> - «Показать новое в окружении из релиза» — отчёт, ничего не меняет.
> - «Обновить окружение из релиза» — отчёт плюс действия: «Обновить безопасно» (добавит новое и обновит то, чего вы не касались — потерять правки невозможно), «Показать различия» (дифф релиз ⇄ ваш, слияние руками), «Оставить своё» (зафиксировать свою версию) и «Заменить всё» (сброс к релизу, правки пропадут).
>
> IDE отличает «релиз обновился» от «вы правили» по .vibe/.defaults.lock.json, поэтому напоминание приходит только когда сдвинулся релиз — настроенные вами файлы поводом не считаются. Подробности: docs/manuals/vibeEnvironment.md.
Файл / Папка
Что делает
rules.md
Правила для агента, подмешиваются в системный контекст перед каждым запросом
constraints.json
Жёсткие блокировки записи/чтения файлов на уровне IDE — агент не может их обойти
permissions.json
Точечные allow/deny на конкретные пути (тоньше, чем constraints.json)
allowed-models.json
Whitelist моделей; пустой массив = разрешены все
ignore
Файлы/папки, которые агент не читает и не индексирует (аналог .gitignore)
context.md
Project Brain — IDE автоматически записывает сюда накопленный контекст после каждой сессии
pinned.json
Файлы и символы, которые всегда включаются в контекст агента
goals.md
Цели периода; агент может обновлять по запросу
agent-locks.json
Территориальные блокировки агентов (кто какой файл сейчас редактирует)
plans/
Персистентные планы задач — переживают перезапуск IDE
prompts/
Шаблоны запросов, вызываются в чате командой /my:имя
workflows/
JSON-сценарии из нескольких шагов, вызываются /workflow:имя
skills/
Agent Skills: SKILL.md в подпапках → вызов /skill:имя; список попадает в GUIDELINES автоматически
snapshots/
Снимки файлов для отката после агентных правок
commands.json
Команды проекта — shell-шорткаты для меню «Команды» в шапке IDE; первый запуск требует approve и фиксируется в commands.trust.json
commands.trust.json
Approved-hash'и команд (auto-managed, обычно в .gitignore)
providers.json
Свои LLM-провайдеры и модели — добавить/переопределить/выключить без пересборки (см. ниже)
Свои провайдеры — .vibe/providers.json
Формат JSONC (можно //-комментарии), с подсветкой и автодополнением полей прямо в редакторе. Готовый пример — .vibe/providers.example.jsonc (создаётся автоматически). Ключи API в файле не хранятся — указывайте apiKeyEnv (переменная окружения) или apiKeyRef (защищённые настройки), файл можно коммитить.
Полная спецификация формата (все поля с типами, инварианты, примеры) — docs/manuals/providersSpec.md. Её можно скопировать своей LLM и попросить собрать .vibe/providers.json под нужный провайдер.
Главное: active: true|false — тумблер (на провайдере и на каждой модели). Совпадение id со встроенным провайдером накладывает ваши поля поверх него; новый id создаёт нового; extends: "" — клон существующего как отдельный вариант. Пишите только отличия — остальное наследуется.
в models.static — { "id": "...", "active": false }
Папка .vibe/ — служебные данные IDE в воркспейсе
Создаётся автоматически (не трогать руками, добавьте в .gitignore):
.vibe/audit.jsonl — аудит-лог всех действий агента: промпты, диффы, применения, откаты, stash-операции. Включается через vibeide.audit в настройках. Поддерживает ротацию по размеру (по умолчанию 10 МБ) и удаление (GDPR erasure).
RAG-индекс кодовой базы хранится не в .vibe/, а в системном workspaceStorage IDE. Если в проекте есть старый .vibeide/index.json — он будет мигрирован автоматически.
Детектор петель
Агент автоматически паузится, если совершает 3 и более одинаковых действия подряд (одинаковые = совпадают type + target операции). Также ловит паттерн A→B→A. Шаги auto-repair и task decomposition из детекции исключены.
Dead man's switch
При долгой агентной задаче таймер отсчитывает 5 минут с момента последнего явного Approve. Если пользователь не подтвердил прогресс — агент автоматически паузится. Настраивается через vibeide.deadMansSwitchMinutes; значение 0 отключает механизм. Минимум — 1 минута. Движение мыши и 429-ретраи таймер не сбрасывают.
Git auto-stash
Перед каждой агентной правкой VibeIDE автоматически стешит незакоммиченные изменения (git.stashIncludeUntracked) и восстанавливает их после применения. Если apply упал — stash также автоматически восстанавливается, изменения не теряются.
Переменные окружения
Переменная
Эффект
VSCODE_PORTABLE=/path/to/dir
Задаёт кастомный путь к данным вместо data/ рядом с бинарником
VSCODE_APPDATA=/path
Базовая директория для данных (вместо %APPDATA% / ~/.config)
VSCODE_DEV=1
Изолирует данные разработчика в отдельную директорию (vibeide-dev) — не смешивает со стабильной сборкой
Системные пути по умолчанию (не portable)
Если data/ не создана и переменные не заданы, данные лежат здесь:
ОС
Путь
Windows
%APPDATA%\VibeIDE\
macOS
~/Library/Application Support/VibeIDE/
Linux
~/.config/vibeide/ (или $XDG_CONFIG_HOME/vibeide/)
Расширения, перенесённые из VS Code при первом запуске, копируются в ~/.vibeide-editor/extensions/.
Поведенческие квирки моделей
Некоторые LLM-модели (особенно через aggregator'ы вроде opencode.ai/zen) требуют специфической настройки, чтобы стримить стабильно: одни шлют пустой ответ при стандартной temperature, другие падают без reasoning_content обратно, третьи галлюцинируют имена параметров в native function-calling и работают только через XML-формат. Все aggregator-проксированные клиенты (cursor, continue, opencode CLI) поддерживают похожие таблицы — у нас это внешний каталог.
Источники и приоритет (по образцу models.dev.json):
exe-adjacent — файл model-quirks.json, положенный рядом с исполняемым файлом VibeIDE. Максимальный приоритет (явный override, действует всегда — даже офлайн). Если он старее bundled/CDN (по полю date) — один раз при старте VibeIDE показывается тост: файл всё ещё действует, но может не содержать свежих фиксов; предлагается обновить/удалить или обновить с CDN.
CDN — фоновый fetch с main-ветки https://raw.githubusercontent.com/VibeBrains/VibeIDE/main/resources/model-quirks.json, ETag-кэш в ${userData}/model-quirks-cache.json. Refresh каждые 24ч (vibeide.modelQuirks.refreshIntervalHours, 0 — выкл).
bundled — копия, вшитая в сборку (TS-константа, всегда доступна).
При отсутствии exe-adjacent активным становится более свежий по date из {CDN-кэш, bundled}.
CDN недоступен → работаем на кэше/bundled/exe — работа не встаёт.
Merge в main → квирк у всех пользователей без релиза VibeIDE на следующем refresh-цикле.
Top-level поле date (ISO YYYY-MM-DD) определяет «свежесть» при сравнении источников.
Как добавить квирк для новой модели: PR в этот репо, правка одного файла resources/model-quirks.json. Поля правила:
Поле
Тип
Что делает
match
string
Substring модели (case-insensitive). Правила сливаются по полям с приоритетом most-specific (provider-scoped > длиннее match); каждое поле берётся из самого специфичного правила, которое его задаёт — затенения нет.
temperature
0..2
Override default temperature провайдера.
topP
0..1
Nucleus sampling.
topK
int ≥1
Только для провайдеров, которые его уважают.
forceEmptyReasoning
boolean
Для DeepSeek-семейства: вшивать пустой reasoning placeholder на каждый assistant message (иначе HTTP 400).
mirrorReasoningContent
boolean
Дублировать reasoning в providerOptions.openaiCompatible.reasoning_content (interleaved-семейства).
forceToolCallFormat
"native" / "xml" / "auto"
Override формата tool-call'ов. "xml" для моделей с broken native FC (qwen, например).
note
string
Свободный комментарий для контрибьюторов, не консумируется рантаймом.
User-уровневый override: настройка vibeide.modelQuirks (JSON-объект { : { …поля… } }). Перекрывает каталог per-field. Полезно для приватных моделей или быстрого тюнинга без PR.
Принудительный refresh: команда «VibeIDE: Обновить каталог квирков моделей (model-quirks) с CDN» через палитру — резерв, если фоновый refresh не сработал или нужен свежий каталог сейчас.
Что изменено относительно upstream VS Code: FORK_CHANGES.md.
Связь, сообщество и поддержка
Discord — самый быстрый способ задать вопрос по установке и использованию, обсудить идеи и поймать «плавающие» баги вместе с другими пользователями, пока вы ещё не уверены, что это стоит оформлять в тикет.
GitHub Issues — для воспроизводимых сбоев, регрессий и предложений по продукту лучше завести issue в репозитории: так задача не потеряется, к ней можно приложить логи и версию сборки, а исправление будет привязано к релизам.
Почта — mail@vibeide.ru: деловые вопросы, партнёрство, обратная связь вне публичных площадок.
Поддержать проект
Если VibeIDE оказался полезным — буду рад благодарности 🙏