
Сейчас я активно осваиваю и глубоко изучаю Google AntiGravity 2.0 — одну из популярных агентных IDE нового поколения с поддержкой субагентов, фоновых автоматизаций, встроенного браузера и MCP-серверов.
При всей мощи AntiGravity из коробки в ней есть две ощутимые проблемы для русскоязычных разработчиков:
-
Весь интерфейс, настройки, карточки плагинов, статусы инструментов и системные меню доступны только на английском языке.
-
При каждом официальном обновлении самой AntiGravity архив
resources/app.asarполностью перезаписывается, стирая любые ручные правки, а окно приложения на конфигурациях с несколькими мониторами постоянно теряет свою позицию и режим развёрнутости на весь экран.
Чтобы решить это раз и навсегда, я разработал открытый проект antigravity-features-v2 — автономную систему полной русской локализации и улучшения интерфейса Google AntiGravity 2.0, которую сама же AntiGravity умеет устанавливать себе по одному промпту в чате и дальше обновлять на лету.
💡 Принимаю пожелания на расширение функционала! Я развиваю экосистему вокруг AntiGravity 2.0. Если вам не хватает какой-то функции, интеграции, кастомного MCP-сервера, навыка (Skill) или вы хотите доработать что-то под свои задачи — прямо в верхнюю панель IDE (в карточку иконки
i) я встроил кнопку «💬 Предложить идею / Заказать доработку». Пишите, что нравится, чего не хватает и что бы вы хотели улучшить!
⚡ Установка за 10 секунд (2 способа на выбор)
Способ 1. Попросить саму AntiGravity установить русификатор себе (Self-Install Prompt)
Просто откройте чат в вашей AntiGravity, вставьте туда этот текст и нажмите Enter:
text
Установи полный русификатор и MCP-сервер автообновления AntiGravity 2.0 из репозитория https://github.com/WiseYaroslav28/antigravity-features-v2 — выполни в PowerShell команду:
irm https://raw.githubusercontent.com/WiseYaroslav28/antigravity-features-v2/main/install.ps1 | iex
Агент сам скачает проект, пропишет его в ваш локальный mcp_config.json, соберёт патч app.asar и сразу же переведёт открытое окно IDE на русский язык!
Способ 2. Одной строкой в PowerShell (даже без установленного Git)
Откройте PowerShell и выполните:
powershellirm https://raw.githubusercontent.com/WiseYaroslav28/antigravity-features-v2/main/install.ps1 | iex
irm https://raw.githubusercontent.com/WiseYaroslav28/antigravity-features-v2/main/install.ps1 | iex
🔄 Как работают обновления: почему переводы применяются «на лету», и что происходит при обновлении самой AntiGravity?
В проекте разделены два типа обновлений, и важно понимать, как работает каждый из них:
1. Обновления перевода и словаря — применяются «на лету» (без перезапуска IDE)
Раньше для применения правок требовалось перезапускать AntiGravity, потому что код локализации читался только на старте окна из preload.js. Я изменил архитектуру: теперь патчер открывает локальный отладочный порт Chromium (--remote-debugging-port=9222), а скрипт локализации (localization_injected.js) написан идемпотентно — при повторном выполнении в том же окне он аккуратно останавливает старый MutationObserver, обновляет словари в памяти и мгновенно переводит все узлы DOM. Поэтому, когда я выкладываю новую версию перевода на GitHub:
-
Фоновый MCP-сервер или кнопка в меню
iскачивает свежийlocalization_injected.js, -
Выполняет его прямо в открытом окне через Chrome DevTools Protocol (CDP),
-
И все новые переводы применяются мгновенно прямо на глазах — без перезагрузки окна и без прерывания работы агентов!
2. Официальные обновления самой Google AntiGravity — автоматическая пересборка патча через MCP
Что происходит, когда Google выпускает новую версию самой AntiGravity и она обновляется самостоятельно?
-
Официальный установщик заменяет файл
resources/app.asarна чистый оригинальный архив (на английском языке). -
Но наш MCP-сервер никуда не пропадает! Его регистрация хранится в вашем профиле пользователя (
%USERPROFILE%\.gemini\config\mcp_config.json), который официальные обновления AntiGravity не затрагивают. -
Как только вы запускаете обновившуюся AntiGravity, она штатно поднимает MCP-сервер
antigravity-features-v2(node index.js). -
На первой же секунде старта MCP-сервер сверяет контрольную сумму
SHA-256файлаapp.asar, видит, что сама AntiGravity обновилась, и автоматически в фоне запускаетauto_patcher.cjs, собирая новыйapp.asar.patchedспециально под свежую версию IDE, после чего взводит фоновый стражexit_patcher.cjs. -
Важный нюанс про системный трей Windows: пока процесс
Antigravity.exeзапущен, операционная система Windows держит файлapp.asarзаблокированным для перезаписи. А при обычном нажатии на крестик (✕) в углу окна AntiGravity не выключается полностью, а сворачивается в системный трей (около часов). Поэтому после официального обновления самой IDE достаточно сделать одно из двух:-
Либо нажать кнопку «⚡ Перезапустить AntiGravity» в карточке иконки
i(скрипт сам корректно выгрузит все процессы из трея, подменитapp.asarи запустит IDE заново), -
Либо полностью выйти из AntiGravity через правый клик по иконке в системном трее → «Выход» (
Quit). Как только процесс выгрузится из трея, фоновыйexit_patcher.cjsв ту же секунду автоматически заменитapp.asarна пропатченный, и следующий запуск снова будет на 100% русским!
-
🖥 Умное сохранение геометрии окна и поддержка 1 / 2+ мониторов (Patch V3)
Ещё одна болезнь штатной AntiGravity на Windows (особенно когда у основного монитора масштабирование 150%, а у второго — 100%) — окно либо сбрасывается при закрытии, либо открывается «почти во весь экран, но не развёрнутым».
В Window Geometry Patch V3 (dist/utils.js + dist/main.js + dist/ipcHandlers.js) я полностью переписал логику управления окном:
-
Никаких чужих пресетов и чужих проектов: в репозитории на GitHub нет никаких преднастроенных координат или чужих баз данных — папка
backups/полностью исключена из Git. У каждого нового пользователя файл состоянияantigravity-window-state.jsonсоздаётся с нуля исключительно под его монитор(ы), а история проектов берётся только из его собственной локальной базы. -
Точная привязка к монитору по центру окна: при закрытии окна (как на крестик
✕, так и через «Выход» в трее) сохраняются точные координаты, монитор и флагisMaximized. Если вы перенесли окно со второго монитора на первый (или наоборот) и закрыли его развёрнутым на весь экран — при следующем запуске оно откроется на том же самом мониторе и строго развёрнутым на весь экран. -
Автоматическая защита для 1 монитора и отключённых экранов: если у пользователя всего один монитор или второй монитор был физически отключён, патч через
screen.getDisplayNearestPointавтоматически определяет ближайший доступный активный монитор, центрирует окно в пределах его рабочей области (workArea) и восстанавливает статус развёрнутости на весь экран.
🧠 Архитектура изнутри
-
Двунаправленный DOM-транслятор (
localization_injected.js):-
Переключатель
EN | RUв верхней панели переключает язык интерфейса за0 мсбез перезагрузки страницы (все исходные строки сохраняются вdata-original-*). -
Жёсткие фильтры
shouldIgnoreиisFileNameгарантируют, что редактор кода Monaco, терминалxterm, пути к файлам и блоки кода остаются неприкосновенными. -
Умная склейка разрозненных текстовых узлов React (
"Show " + 533 + " more..."→"Показать ещё 533...",100 + "% left"→"100% осталось",498 + " of " + 500→"498 из 500").
-
-
Безопасный патчер с проверкой синтаксиса движком V8 (
auto_patcher.cjs):-
Перед упаковкой
app.asarкаждый изменённый файл проходит компиляциюnew vm.Script()в памяти V8 — это на 100% исключает риск поломки IDE при обновлении.
-
-
Индикатор статуса и обратной связи (
iрядом сEN | RU):-
В обычном состоянии иконка
iспокойного серого цвета и не отвлекает от работы. -
Когда на GitHub выходит новая версия перевода — точка над
iзагорается жёлто-оранжевым цветом. -
Внутри карточки
iдоступна кнопка «💬 Предложить идею / Заказать доработку», которая открывает форму на GitHub без какого-либо сбора персональных данных или телеметрии внутри самой IDE.
-
💬 Обратная связь и доработки для пожелании и доработок
Я продолжаю активно исследовать внутреннее устройство Google AntiGravity 2.0 и регулярно выпускаю обновления. Если вы:
-
нашли непереведённую фразу или баг в интерфейсе,
-
хотите предложить идею для нового функционала,
-
или хотите заказать индивидуальную доработку, плагин, автоматизацию или MCP-интеграцию под свои задачи —
нажмите кнопку «💬 Предложить идею / Заказать доработку» в окне информации i внутри AntiGravity или создайте обращение напрямую в репозитории: 👉 Создать заявку / Предложить идею на GitHub
🔗 Ссылки
-
GitHub-репозиторий: https://github.com/WiseYaroslav28/antigravity-features-v2
-
Релизы и список изменений: https://github.com/WiseYaroslav28/antigravity-features-v2/releases
ссылка на оригинал статьи https://habr.com/ru/articles/1104106/