Опенсорс патчер для Antigravity: снимает регионные ограничения без VPN и смены региона аккаунта Google. Опенсурс аналог утилиты Antigravity в России без VPN и смены региона аккаунта Google.
Если при запросе в Antigravity появляется ошибка HTTP 500 Internal Server Error, то ничего не поделать, меняйте аккаунт (желательно на регион, где Antigravity официально работает или куплена платная подписка), платная утилита также её не решала.
Пример ошибки
Trajectory ID: 2669b09c-1d11-4620-9bfa-6ad1f0e26a88
Error: HTTP 500 Internal Server Error
Sherlog:
TraceID: 0xd9ada64bcca3260c
Headers: {"Alt-Svc":["h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],"Content-Length":["109"],"Content-Type":["text/event-stream"],"Date":["Sat, 14 Mar 2026 13:51:24 GMT"],"Server":["ESF"],"Server-Timing":["gfet4t7; dur=423"],"Vary":["Origin","X-Origin","Referer"],"X-Cloudaicompanion-Trace-Id":["d9ada64bcca3260c"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"],"X-Xss-Protection":["0"]}
{
"error": {
"code": 500,
"message": "Internal error encountered.",
"status": "INTERNAL"
}
}
- Автоматический поиск установленного Antigravity в стандартных путях и реестре Windows.
- Поддержка Linux: поиск по
/usr/share/antigravity, определение версии черезdpkg,rpmиpackage.json. - Поддержка macOS: поиск
.app-бандла в/Applicationsи~/Applications, ad-hoc переподпись после измененияmain.js. - Создание резервной копии
main.js.bakперед изменениями. - Применение и откат патча через простое меню.
- Поддержка путей
resources/app/out/main.jsиresources/app/main.js. - Цветной вывод и попытка автоматического повышения прав (UAC на Windows, предложение
sudoна Linux). - Проверка минимальной версии Antigravity (>=
1.22.2) перед применением патча. - Определение версии Antigravity через реестр Windows, пакетный менеджер на Linux или
package.jsonна macOS. - Обнаружение уже применённого патча с предложением применить повторно.
- Временный runtime workaround для Antigravity
1.23+: фиксация стабильного Cloud Code endpoint и отключение проблемных Cascade/model experiments черезsettings.json.
- Закройте Antigravity.
- Запустите патчер от имени администратора (скрипт сам запросит повышение прав при необходимости).
- В меню выберите нужное действие:
| Пункт меню | Описание |
|---|---|
1. Apply patch |
Применить патч к main.js |
2. Restore from backup |
Восстановить оригинальный файл из резервной копии |
3. Open GitHub repository |
Открыть страницу проекта в браузере |
0. Exit |
Выйти |
Запуск из исходников:
python main.pyЗапуск с указанием пути:
# Windows
python main.py "C:\\Program Files\\Antigravity"
python main.py "C:\\Program Files\\Antigravity\\resources\\app\\out\\main.js"
# Linux
python main.py /usr/share/antigravity
python main.py /usr/share/antigravity/resources/app/out/main.js
# macOS
python3 main.py /Applications/Antigravity.app
python3 main.py ~/Applications/Antigravity.app
python3 main.py /Applications/Antigravity.app/Contents/Resources/app/out/main.jsЕсли main.js находится рядом со скриптом, путь указывать не нужно — он будет найден автоматически.
macOS: если
Antigravity.appлежит в/Applications, запись потребуетsudo(скрипт сам предложит перезапуск). Для установки в~/Applicationsили пользовательскую директориюsudoне нужен. После успешного патча.appавтоматически переподписывается ad-hoc подписью (codesign --force --deep --sign -) — без этого Electron с Hardened Runtime не запустится на macOS.
Патчер вносит 4 правки в main.js и применяет отдельный временный runtime workaround в пользовательском settings.json. Изменения main.js обратимы через резервную копию (main.js.bak), а settings.json сохраняется в отдельный backup перед записью.
Заменяет проверку флага isGoogleInternal на безусловное true, снимая региональные/внутренние ограничения. Применяется ко всем вхождениям в файле (паттерн if(this.<svc>.isGoogleInternal)).
Аuth service проверяет различные паттерны в зависимости от версии:
- v1.22–v1.22.x:
if(this.w.resetIsTierGCPTos(),this.t.isGoogleInternal)→if(this.w.resetIsTierGCPTos(),true) - v1.23+:
if(this.t.send({...}),this.y.resetIsTierGCPTos(),this.w.isGoogleInternal)→if(this.t.send({...}),this.y.resetIsTierGCPTos(),true)
Патчер автоматически определяет версию Antigravity и применяет соответствующий паттерн для корректного обхода авторизации.
Заменяет ideName:"antigravity" на ideName:"antigravity-insiders" для корректной идентификации клиента.
Заменяет spread тернар ...s?{}:{errorType:"ineligible",reason:a,verificationUrl:i} на ...s?{}:{} — ошибка ineligible не отправляется, экран блокировки не показывается.
Начиная с Antigravity 1.23+ часть пользователей после обновления получает ошибку:
{
"error": {
"code": 400,
"message": "User location is not supported for the API use.",
"status": "FAILED_PRECONDITION"
}
}В логах при этом появляются запросы к daily-cloudcode-pa.googleapis.com и новые Cascade/model experiments. Это временное решение: его стоит убрать или пересмотреть, когда Antigravity стабилизирует новый маршрут/эксперимент или вернёт совместимое поведение. Workaround добавляет в пользовательский settings.json:
{
"jetski.cloudCodeUrl": "https://cloudcode-pa.googleapis.com",
"codeiumDev.forceDisableExperiments": "CASCADE_DEFAULT_MODEL_OVERRIDE,CASCADE_USE_EXPERIMENT_CHECKPOINTER,CASCADE_NEW_MODELS_NUX,CASCADE_NEW_WAVE_2_MODELS_NUX",
"codeiumDev.languageServerEnv": {
"BORG_DISABLE_EXPERIMENTS": "CASCADE_DEFAULT_MODEL_OVERRIDE,CASCADE_USE_EXPERIMENT_CHECKPOINTER,CASCADE_NEW_MODELS_NUX,CASCADE_NEW_WAVE_2_MODELS_NUX",
"BORG_EXPERIMENTS": ""
}
}Если settings.json уже существует, перед изменением создаётся резервная копия вида settings.json.bak-YYYYMMDD-HHMMSS. Если main.js уже пропатчен, пункт Apply patch всё равно применит runtime workaround без необходимости повторно менять main.js.
Примечание:
- Патч
onboardUser injectionотключён начиная с v1.22+, так как в новых версиях AntigravityonboardUserуже вызывается нативно, и инъекция дублирует вызов, ломая поток авторизации.- Начиная с v1.0.8 патчер использует версионный выбор auth-паттерна: для версий Antigravity < 1.23 применяется старый паттерн, для v1.23+ — новый с дополнительным вызовом
send().
Патчер ищет main.js в следующем порядке:
- Аргумент командной строки (путь к директории или напрямую к
main.js). - Текущая директория (
./main.js). - Автоматический поиск по стандартным путям:
- Windows:
%LOCALAPPDATA%\Programs\Antigravity%PROGRAMFILES%\Antigravity%PROGRAMFILES(X86)%\Antigravity
- Linux:
/usr/share/antigravity/opt/Antigravity/opt/Antigravity/resources/app/out
- macOS:
/Applications/Antigravity.app/Contents/Resources/app~/Applications/Antigravity.app/Contents/Resources/app
- Windows:
- Реестр Windows (ключ
{AA73B3E3-C6C8-45C8-B1DC-4AE56C751432}_is1вHKCUиHKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\).
Внутри найденной директории проверяются пути:
resources/app/out/main.jsresources/app/main.jsout/main.js(macOS)main.js(если путь указан напрямую)
На macOS скрипт также принимает путь к .app-бандлу напрямую — Contents/Resources/app/out/main.js ресолвится автоматически.
| Платформа | Метод определения версии |
|---|---|
| Windows | Реестр: DisplayVersion из ключа {AA73B3E3-...}_is1 |
| Linux (deb) | dpkg-query -W antigravity |
| Linux (rpm) | rpm -q --queryformat %{VERSION} antigravity |
| Linux (portable/snap/flatpak) | package.json рядом с main.js |
| macOS | package.json в Antigravity.app/Contents/Resources/app/ |
Если версия не определена, патчер предлагает продолжить без проверки. Если версия ниже 1.22.2 — предупреждает и также предлагает выбор.
Перед патчингом скрипт проверяет, не был ли файл уже пропатчен, по двум признакам:
- отсутствие
if(this.X.isGoogleInternal)(паттерн заменён наif(true)) - наличие строки
"antigravity-insiders"
Если оба признака найдены, выдаётся предупреждение с запросом подтверждения повторного применения.
- Windows: автоматический UAC-запрос через
ShellExecuteWс параметромrunas. Корректно обрабатывает пути с пробелами. - Linux: если скрипт запущен не от root, предлагает перезапуститься через
sudo(os.execvp). При отказе продолжает с предупреждением о возможных ошибках записи. При этом runtime workaround пишет вsettings.jsonисходного пользователя (SUDO_USER/SUDO_UID), а не в/root/.config/.... - macOS: использует ту же posix-ветку —
sudoпредлагается, если запущено без root. Для~/Applications/Antigravity.appнаsudoможно ответить «n» (директория уже доступна на запись), для/Applications/Antigravity.app— согласиться. Пользовательскийsettings.jsonпри запуске черезsudoтакже берётся из home исходного пользователя, а неroot.
Любое изменение файла внутри подписанного .app-бандла нарушает code signature. Electron-приложения с включённым Hardened Runtime (Antigravity — одно из них) после этого не запускаются на macOS — до того, как Gatekeeper вообще покажет пользователю диалог.
Чтобы .app продолжал работать, скрипт после do_patch и do_restore автоматически выполняет:
codesign --force --deep --sign - /path/to/Antigravity.app
xattr -dr com.apple.quarantine /path/to/Antigravity.app--sign - — ad-hoc подпись (без Developer ID). Этого достаточно для локального запуска приложения. Notarization не требуется.
Требуется установленный codesign — он идёт в составе Xcode Command Line Tools:
xcode-select --install- Убедись, что
codesignдоступен:which codesign. - Проверь, что
.appбыл переподписан:codesign -dv /Applications/Antigravity.app 2>&1 | grep Authority— должен бытьSignature=adhoc. - Если macOS всё равно блокирует:
Системные настройки → Конфиденциальность и безопасность— внизу будет кнопка «Открыть всё равно».
- Python 3.x
- Зависимости:
packaging(для сравнения версий) - ОС:
- Windows — полная поддержка автопоиска через реестр и UAC.
- Linux — автопоиск в
/usr/share/antigravity, определение версии черезdpkg/rpm/package.json, sudo-повышение. - macOS — автопоиск в
/Applications/Antigravity.appи~/Applications/Antigravity.app, определение версии черезpackage.json, ad-hoc переподпись черезcodesign(Xcode Command Line Tools).
- Минимальная версия Antigravity:
1.22.2 - Поддерживаемые версии:
1.22.2и выше (с версионным выбором auth-паттерна для1.23+)
Требуется pyinstaller:
pip install -r requirements.txt
Windows: pyinstaller --onefile --uac-admin --icon=icon.ico --name="Open_AG_Patcher_Windows" --noupx --clean --version-file=version.txt main.py
Linux: pyinstaller --onefile --icon=icon.ico --name="Open_AG_Patcher_Linux" main.py
macOS: pyinstaller --onefile --name="Open_AG_Patcher_macOS" main.pymain.py— основной патчер.requirements.txt— зависимости для сборки.build.txt— пример команды сборки.icon.ico— иконка дляexe.
Проект распространяется под лицензией GPL-3.0. Полный текст лицензии содержится в файле LICENSE.
- SBER:
2202 2050 1464 4675

