paragravity README

The project's README from github.com/edison-land/paragravity. As one markdown file: README.md.

🌌 ParaGravity (pgrav)

Native, non-invasive parallel multi-account & sandbox manager for Google Antigravity.
Run multiple Google Gemini Pro accounts side-by-side in independent, isolated windows on macOS and Windows.

English | 简体中文

License: MIT Platform: macOS | Windows Python: 3.8+ PRs Welcome


✨ Key Advantages


🚀 Quick Start

curl -fsSL https://raw.githubusercontent.com/edison-land/paragravity/main/install.sh | bash

2. Windows Quick Start (PowerShell / CMD)

Clone the repository and add the bin directory to your user PATH:

git clone https://github.com/edison-land/paragravity.git $HOME\.paragravity
# Add $HOME\.paragravity\bin to PATH, then use:
pgrav create work

💡 Windows notes

  • Open a new terminal after updating PATH — already-open shells won't pick up the change.
  • python must be on PATH (any Python 3.8+ install works).
  • Git Bash (MSYS2) is fully supported. bin/pgrav is a real POSIX script rather than a symlink, so it survives clones made with Windows' default core.symlinks=false and forwards arguments correctly. In CMD/PowerShell the bundled pgrav.cmd is used automatically.

3. Homebrew Tap (Coming Soon)

brew tap edison-land/tap
brew install paragravity

📖 CLI Usage

💡 Tip: Both pgrav (short) and paragravity (full) are registered and ready to use!

1. Create an Isolated Profile

Create a new sandbox with a single command:

pgrav create zwe

This instantly:

To launch immediately upon creation:

pgrav create work --launch

To keep real ~/.ssh / ~/.config out of reach of agents running inside the profile, tighten the symlink policy with --links (default full preserves the original behavior):

pgrav create work --links minimal   # link git/shell configs and project dirs, skip .ssh/.config
pgrav create work --links none      # link almost nothing (keychain bridge only)

Inherit or Clone Configuration (No More Blank Canvas!)

New profiles start clean, but you often want your custom keybindings, editor settings, snippets, agent skills, or MCP tools without having to re-configure them.

🔒 Security Guarantee: Strict credential and session isolation. OAuth tokens (jetski-standalone-oauth-token, oauth_creds.json), Google account IDs, cookies, local storage, and conversation histories are NEVER copied or inherited. All profiles are created with owner-only (0700/0600) permissions.

2. List All Profiles & Status

View all your parallel instances, live process status, and bound Google accounts:

pgrav list
# or simply:
pgrav ls

💡 Computing on-disk size walks every file in the profile, which is slow once profiles grow — so it is off by default. Use pgrav list --size when you need it, or pgrav list --json for machine-readable output in scripts/CI.

Example Output:

PROFILE            STATUS         PID      ACCOUNT (GOOGLE)               SIZE       DESCRIPTION
───────────────────────────────────────────────────────────────────────────────────────────────
zwe                ● Running      49377    [email protected]              —          Development account
work               ○ Stopped      -        [email protected]               —          Company projects

3. Launch an Instance

pgrav launch zwe

Or simply press Cmd + Space anywhere on your Mac and type Antigravity (zwe)!

You can also open a project folder directly at launch:

pgrav launch zwe ~/Projects/demo

4. Stop a Running Instance

pgrav stop zwe

Stopping is staged: the Electron main process first gets a chance to shut down cleanly and save workspace state, straggler children are reaped next, and only --force escalates to SIGKILL.

5. View Instance Logs

Background launches now write stdout/stderr to ~/.antigravity-profiles/<name>/logs/, so startup failures, sign-in and token-refresh issues are no longer invisible:

pgrav logs zwe         # tail of the latest launch log
pgrav logs zwe -f      # follow live output
pgrav logs zwe -n 200  # last 200 lines

6. Inspect Profile Details

pgrav info zwe
# scripts/CI: pgrav info zwe --json

7. Delete a Profile

pgrav delete zwe

8. Modern Web Console & Floating Widget

Manage all your instances visually with zero dependencies:

# Launch full Web Console (Matrix grid, batch controls, macOS window tiling)
pgrav web
# or simply:
pgrav ui

# Launch compact floating widget HUD
pgrav widget
# or:
pgrav ui --widget

Tip: Visit http://127.0.0.1:3888 for the full console or http://127.0.0.1:3888/widget for the compact HUD view.


🗑️ Uninstall

# Remove the CLI (skip the brew line if you didn't use Homebrew)
brew uninstall paragravity   # or: rm ~/.local/bin/paragravity ~/.local/bin/pgrav

# Remove every profile sandbox (⚠️ permanently deletes all sign-in state and data)
rm -rf ~/.antigravity-profiles

# Remove the generated profile launchers
rm -rf ~/Applications/Antigravity\ \(*\).app

# Finally, remove the `export PATH="$HOME/.local/bin:$PATH"` line install.sh
# appended to your shell rc file, if present.

🔐 Security Notes


🏗️ Technical Architecture

ParaGravity achieves completely clean, isolated execution through three native mechanisms:

┌──────────────────────────────────────────────────────────────┐
│                    macOS Host Environment                    │
│                                                              │
│  [Official App]          [Profile A: zwe]    [Profile B: work]
│  /Applications/          ~/.antigravity-     ~/.antigravity- 
│  Antigravity.app         profiles/zwe        profiles/work   
│  (washingshop account)   (zwe account)       (work account)  
│                                                              │
│  ├── default Library/    ├── data/           ├── data/       
│  └── default Keychain    └── home/           └── home/       
│                              ├── .gemini/        ├── .gemini/
│                              └── isolated        └── isolated
│                                  tokens              tokens  
└──────────────────────────────────────────────────────────────┘
  1. Storage Sandboxing (--user-data-dir): Each profile maintains its own Chromium partition, SQLite databases, IndexedDB, extensions, and workspace state.
  2. Environment & Keychain Isolation (SSH_CONNECTION=1): Electron/Language Server automatically falls back to file-based token storage within the profile's isolated directory, preventing keychain contention with the host instance.
  3. Native macOS Application Bundles: Every profile has a dedicated .app bundle registered in ~/Applications, making Antigravity multi-instance a first-class citizen in macOS.

🤝 Contributing

Contributions are warmly welcomed! Please feel free to submit an Issue or Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

👥 Contributors

Huge thanks to the contributors who helped shape ParaGravity:


📄 License

Distributed under the MIT License. See LICENSE for more information.


⚠️ Disclaimer

ParaGravity is an open-source utility that leverages standard Chromium command-line options. It is not affiliated with, sponsored by, or endorsed by Google LLC. All trademarks belong to their respective owners.

paragravity (edison-land/paragravity)

Searching Database…

Что это такое?ParaGravity (pgrav) — это нативный менеджер, который ничего не меняет внутри Google Antigravity и позволяет запускать сразу несколько аккаунтов Google Antigravity (Gemini Pro) параллельно, в отдельных изолированных окнах на macOS и Windows.
Как обеспечивается изоляция аккаунтов — он что, модифицирует Antigravity?Antigravity он не модифицирует: каждый профиль — это просто отдельная секция Chromium через --user-data-dir со своими расширениями, IndexedDB, локальным хранилищем и историей чатов, обёрнутая в нативный .app-бандл для macOS или ярлык для Windows.
Как запустить свою первую песочницу?На macOS есть установка одной командой; на Windows нужно склонировать репозиторий и добавить его каталог bin в PATH. Затем одна команда pgrav создаёт песочницу в ~/.antigravity-profiles плюс нативный .app или ярлык в меню «Пуск», который запускается через Spotlight или поиск Windows.
Что должно быть установлено заранее?Сам Google Antigravity и Python 3.8+ в PATH; у pgrav нет никаких внешних зависимостей ни из pip, ни из npm. Git Bash (MSYS2) на Windows полностью поддерживается.
Работает ли он на Linux, или только на macOS и Windows?Только macOS и Windows — Linux нигде не упоминается; профили создаются как .app-бандлы на macOS и как .lnk-ярлыки на рабочем столе или в меню «Пуск» на Windows.
Насколько безопасно пускать кодинг-агентов внутрь профиля — и где в итоге хранятся мои данные Google?OAuth-токены хранятся в каждом профиле как файлы в открытом виде, поэтому ни в коем случае не синхронизируйте ~/.antigravity-profiles с облачными дисками и не выкладывайте в репозитории. Кроме того, профили по умолчанию симлинкят реальные папки вроде ~/.ssh и ~/.config — ограничьте это флагом --links со значением minimal или none, прежде чем пускать агентов.
Он бесплатный и с открытым исходным кодом?Да — лицензия MIT, без платных тарифов, а в README подчёркивается, что это независимая утилита, не связанная с Google и не спонсируемая и не одобренная им.
Почему бы просто не выходить из аккаунта и не переключаться внутри Antigravity?Переключение — это перезапуск или смена сессий; pgrav запускает все аккаунты одновременно, каждое в своём окне, с полностью разделёнными куки, локальными хранилищами и историями чатов, так что рабочие пространства никак не смешиваются друг с другом.
Может ли новый профиль унаследовать мои текущие настройки, навыки агентов и MCP-инструменты?Да — можно унаследовать от хоста: при этом копируются настройки и сниппеты, а навыки и MCP-инструменты линкуются; либо сделать глубокий клон другого профиля в независимую копию. Учётные данные, OAuth-токены и истории переписок никогда не копируются и не наследуются.
Есть ли графический интерфейс, или всё делается через терминал?В первую очередь это CLI, но есть веб-консоль без зависимостей, где экземплярами можно управлять визуально, компактный плавающий HUD показывает статус в реальном времени, а pgrav list --json выдаёт машиночитаемый вывод для скриптов и CI.
Не будет ли он есть оперативку, пока висит в фоне?Нет — фонового демона нет, расход в простое 0 МБ; это чистый CLI на Python 3, который делает что-то только когда вы запускаете команду.
Size
0.5 MB
Stars
235
Age
25d
Commits · 90 Days