«Я создал убийцу Cursor на Windows, почти не умея программировать руками»: История разработки полностью приватной AI-IDE LexiQode
Привет, VC! Я хочу поделиться историей о том, как закрыл свою главную боль разработчика и создал полноценный софт, используя силу современных больших языковых моделей.
До недавнего времени моим основным инструментом был Cursor. UX у него отличный, но в какой-то момент накопилась критическая масса проблем: обязательные аккаунты, платные подписки, капризная работа с собственными API-ключами, скрытая телеметрия и блокировки по геолокации.
Платить за облачную прослойку, когда у тебя есть свои ключи или локально поднятая нейросеть, — странно. А делиться кодом коммерческих проектов с зарубежными серверами — небезопасно.
Честно признаюсь: сам я не умею писать такие огромные и сложные проекты с нуля. Начал разработку в VS Code через ИИ-расширение Cline, а когда приложение обрело базовую форму — пересел в него и продолжил дописывать LexiQode непосредственно внутри самого LexiQode.
В итоге получился полностью автономный open-source аналог коммерческих сред разработки для Windows, работающий исключительно на ваших условиях.
Исходники открыты и лежат на GitHub:
Архитектура: как устроен проект
Приложение разделено на две изолированные части, которые общаются между собой по строгому протоколу через IPC:
- Интерфейс (Electron + Monaco Editor + xterm.js): Быстрая и привычная оболочка. Редактор Monaco предоставляет UX как в VS Code: вкладки, подсветка синтаксиса, поиск. Для JS/TS/JSON/CSS/HTML работают встроенные языковые службы (сигнатуры, автодополнение), для остальных языков — базовая подсветка и парные скобки.
- Ядро ассистента (Python 3.11+): Отдельный бэкенд, который выполняет всю тяжелую работу с контекстом, файлами и ИИ-моделями.
Самое главное: страница интерфейса физически не имеет прямого доступа в интернет — это намертво отсекает любую скрытую телеметрию. Сеть использует только Python-ядро для отправки запросов на указанный вами адрес модели.
Главные фишки LexiQode
1. Честный BYOK (Bring Your Own Key / Model)
У LexiQode нет своего сервера, подписок или учетных записей. Ключи и адреса хранятся строго локально на вашей машине. Ассистент совместим с любым сервером, поддерживающим формат /v1/chat/completions.
2. Прозрачные рассуждения (Reasoning)
Если вы используете рассуждающие модели (например, deepseek-reasoner / R1), LexiQode аккуратно складывает цепочку мыслей ИИ в сворачиваемую строку «Думаю…» прямо над ответом. Ответ выдается по шагам с отображением вызванных инструментов.
3. Архитектурная безопасность правок (Agent, Ask, Plan, Debug, Review)
В большинстве ИИ-ассистентов ограничение действий работает на честном слове: модель просят «не писать в файлы», а если она всё же пытается это сделать, интерфейс просит у вас подтверждения. В LexiQode безопасность контролируется на уровне Python-ядра. Если вы выставляете режим Plan или Ask, реестр инструментов физически вырезает из API-запроса схемы функций для модификации файлов или запуска команд. Модель физически не знает о существовании этих инструментов и не способна причинить вред кодовой базе, что гарантирует 100% предсказуемость. Для полной автоматизации вы осознанно включаете режим Agent
4. Умное управление контекстом
В контекст сообщения попадает только то, что вы положили туда сами (через меню дерева файлов или кнопку над полем ввода). Когда чат разрастается, ядро автоматически сжимает старую часть разговора в лаконичную сводку (по умолчанию при заполнении 75% окна контекста), сохраняя в памяти принятые решения и структуру проекта.
5. Встроенный PowerShell-терминал и запуск кода
В нижнюю панель интегрирована настоящая сессия PowerShell (поддерживает цвета, сохраняет текущий каталог проекта). А по нажатию кнопки ▶ или клавиши F5 открытый файл мгновенно сохраняется и исполняется своим интерпретатором (Node.js для .js, Python для .py, bash/sh/cmd для скриптов) прямо в терминальной панели.
6. Локальный Git
Интерфейс контроля версий разделяет измененные и подготовленные файлы, умеет показывать diff, делать коммиты и переключать ветки.
В планах на будущее — добавить поддержку Skills и MCP (Model Context Protocol). Это позволит расширить возможности встроенного ассистента: через MCP его можно будет легко подключать к внешним базам данных, специфическим инструментам разработки или сторонним API, не переписывая каждый раз ядро приложения.
Надежность и тесты
Чтобы проект не развалился при добавлении новых фич, я покрыл его сквозными интеграционными тестами (app/scripts). Тесты запускают приложение в изолированном режиме DevTools снаружи и проверяют абсолютно все: от кодировки вывода PowerShell до корректности открытия файлов разных типов, отображения подсказок Monaco и пошагового ответа ассистента через заглушку OpenAI-сервера. Благодаря этому проект работает стабильно.
Как попробовать?
Установка полностью портативная:
- Убедитесь, что на Windows установлен Python 3.11 или новее в PATH (он нужен ассистенту).
- Зайдите в Releases на GitHub и скачайте архив LexiQode-<версия>-win32-x64.zip.
- Распакуйте в любую удобную папку и запустите LexiQode.exe.
Приложение не мусорит в системе и не требует прав администратора. Обновления проверяются по запросу к GitHub Releases, но накатываются вручную обычной заменой файлов папки — ваши настройки и история чатов лежат отдельно в %APPDATA% и не пострадают.
Буду рад вашим звездам на GitHub, фидбеку в Issues и критике в комментариях!