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)是一个原生的非侵入式管理工具,可以在 macOS 和 Windows 上以多个相互隔离的独立窗口并行运行多个 Google Antigravity(Gemini Pro)账号。
它是怎么隔离各个账号的——会修改 Antigravity 本身吗?它完全不会修改 Antigravity:每个配置文件其实就是一个 Chromium --user-data-dir 分区,拥有各自的扩展、IndexedDB、本地存储和聊天记录,并封装成原生的 macOS .app 应用包或 Windows 快捷方式。
我怎么才能把第一个沙盒跑起来?macOS 上有一行式安装命令;Windows 上克隆仓库后把它的 bin 目录加入 PATH。之后只需一条 pgrav 命令,就会在 ~/.antigravity-profiles 下创建一个沙盒,同时生成一个原生 .app 或开始菜单快捷方式,通过 Spotlight 或 Windows 搜索即可启动。
使用之前需要先装好什么?需要 Google Antigravity 本身,以及 PATH 中的 Python 3.8+;pgrav 本身没有任何外部的 pip 或 npm 依赖。在 Windows 上完全支持 Git Bash(MSYS2)。
它支持 Linux 吗,还是只有 macOS 和 Windows?仅支持 macOS 和 Windows——文档中完全没有提到 Linux;配置文件在 macOS 上以 .app 应用包的形式生成,在 Windows 上则以桌面/开始菜单的 .lnk 快捷方式生成。
让编程智能体在配置文件里运行安全吗——我的 Google 凭据会存在哪里?OAuth 令牌以明文文件的形式存放在每个配置文件里,所以千万不要把 ~/.antigravity-profiles 同步或备份到云盘或代码仓库。另外,配置文件默认会以符号链接的方式关联 ~/.ssh 和 ~/.config 等真实目录——在让智能体进入之前,请先用 --links minimal 或 none 收紧权限。
它是免费开源的吗?是的——采用 MIT 许可证,没有任何付费档位,而且 README 特别强调它是一个独立工具,与 Google 没有任何隶属、赞助或背书关系。
为什么不直接在 Antigravity 里退出登录再切换账号?切换账号意味着重启或更换会话;而 pgrav 可以让每个账号同时在各自的窗口里运行,cookie、本地存储和聊天记录完全分开,工作区之间绝不会互相污染。
新建的配置文件能复用我现有的设置、智能体技能和 MCP 工具吗?可以——可以从宿主环境继承,它会复制设置和代码片段,并以链接方式关联技能和 MCP 工具;也可以对另一个配置文件做深度克隆,得到一份独立的副本。凭据、OAuth 令牌和对话历史永远不会被复制或继承。
它有图形界面吗,还是所有操作都得在终端里完成?它以命令行为先,但也提供了一个零依赖的网页控制台,可以可视化管理实例;还有一个紧凑的悬浮 HUD 实时显示状态;另外 pgrav list --json 能输出机器可读的结果,方便脚本和 CI 使用。
它在后台闲置的时候会吃内存吗?不会——它没有后台守护进程,闲置时占用为 0 MB;它是一个纯 Python 3 命令行工具,只有在你执行命令时才会工作。
Size
0.5 MB
Stars
235
Age
26d
Commits · 90 Days