agy-profiles
Provides multi-profile sandbox management for Google Antigravity Hub and Antigravity IDE on macOS, including isolated launches, process tracking and stopping, sanitized config inheritance, stale Chromium lock repair, and a local web console.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agy-profiles launch the core-research profile for Antigravity Hub"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agy-profiles
Clean-room multi-profile sandbox manager, stdio MCP server, and hardened localhost console for Google Antigravity on macOS.

Overview
Running multiple accounts, client workspaces, or untrusted repositories inside Google Antigravity Hub and Antigravity IDE risks cross-profile authentication bleed, shell login environment leakage, stale Chromium locks, and unintentional credential exposure. agy-profiles solves this through strict directory containment (0o700 / 0o600), locked .zshenv HOME rewriting, fail-closed MCP configuration sanitization, exact --user-data-dir process matching, and cryptographic CSRF/Origin isolation on its local web interface.
This repository is built purely on the Python 3 standard library (>= 3.9) with zero third-party runtime or test dependencies.
Related MCP server: local-mcp
Key Capabilities
Strict Sandbox Isolation: Provisions per-profile
data/,ide-data/,home/, andlogs/directories under/Volumes/Dev/.antigravity-profiles(when writable on macOS, or~/.antigravity-profiles, overridable viaAGY_PROFILES_DIRor--root). Writes an immutable0o600.zshenvpinningHOMEandZDOTDIRinside the profile so macOS login shell environment discovery never pulls host credentials.Dual Target Support (
hubandide): Launches and tracks both/Applications/Antigravity.app(Antigravity Hub) and/Applications/Antigravity IDE.app(Antigravity IDE) inside isolated--user-data-dirand--extensions-dirpaths, automatically settingapp_storage.jsonand IDEsettings.jsonflags to disable background auto-updaters.Fail-Closed Secret Sanitizer: When creating a profile with
--inherit-config, copies hostGEMINI.mdandmcp_config.jsonwhile redacting secrets in nestedenv,headers,args, URL userinfo, and secret query parameters. Rejects malformed JSON instead of falling back to raw copies.Symlink Allowlist and Blocklist: Rejects and strips symlinks pointing to sensitive host locations (
.ssh,.gnupg,.aws,.kube,.npmrc,.netrc,.pypirc,Library/Keychains,.gemini, shell startup dotfiles). Offers conservative opt-in link policies (none,minimal,dev) for benign runtime binaries and fonts.Exact Process Boundary Matching: Tracks and stops processes only when
--user-data-dir=<resolved_path>matches at strict token boundaries, including descendant child processes discovered via parent-PID traversal. Escalates cleanly fromSIGTERMtoSIGKILLand repairs stale Chromium locks (SingletonLock,SingletonSocket,SingletonCookie,DevToolsActivePort).Evidence and Obligation Ledgers: Emits structured
EvidenceRecordmetadata (evidence_id,authority,confidence,facts,limitations) on inspections and exposes six executable security self-checks viaagy-profiles obligations.Zero-Dependency Local Surfaces: Includes an
argparseCLI (agy-profiles/agyp), a line-delimited JSON-RPC 2.0 stdio MCP server (agy-profiles mcp), a native macOS.applauncher compiler (agy-profiles launcher build), and an Astryx Design System Web Console (agy-profiles web) with five curated palettes (Stone,Chocolate,Gothic,Matcha,Neutral), Light and Dark modes, and self-hosted variable fonts.
Installation
Install agy-profiles and its short alias agyp into ~/.local/bin via symlink:
git clone https://github.com/harrymove-ctrl/agy-profiles.git /Volumes/Dev/agy-profiles
cd /Volumes/Dev/agy-profiles
./install.shUseful installer options:
./install.sh --dry-run
./install.sh --prefix ~/.local/bin --with-skill
./install.sh --uninstallYou can also run directly from the repository without modifying PATH:
./bin/agy-profiles doctor --jsonQuick Start
Check host Antigravity bundles and sandbox health:
agy-profiles doctorVerify built-in security and isolation invariants:
agy-profiles obligationsCreate an isolated profile with minimal toolchain symlinks and sanitized host MCP config:
agy-profiles create core-research --label "Core Research" --target hub --links minimal --inherit-configLaunch Antigravity Hub or IDE for that profile:
agy-profiles launch core-research
agy-profiles launch core-research --target ide --workspace /Volumes/Dev/my-repoBuild a native Spotlight and Dock
.appbundle launcher:
agy-profiles launcher build core-research --target hubOpen the local Web Console on
127.0.0.1:
agy-profiles webConnect an AI coding client to the stdio MCP server:
{
"mcpServers": {
"agy-profiles": {
"command": "agy-profiles",
"args": ["mcp"]
}
}
}Web Console and Frontend Build
The local Web Console (agy-profiles web) is built with React 19, TypeScript, @astryxdesign/core, and @stylexjs/stylex from web-ui/, then pre-compiled with Vite into src/agy_profiles/web_static/ (index.html, styles.css, app.js, mark.svg, fonts/*.woff2) so end users install and run agy-profiles with zero Node or PyPI runtime dependencies.
Astryx Design System & Themes: Uses the warm
Stonepalette by default alongsideChocolate,Gothic,Matcha, andNeutralthemes, Light and Dark appearance switching, and six profile accent presets.Self-Hosted Variable Typography: Bundles
Fraunces Variable,Figtree Variable, andJetBrains Mono Variable.woff2font files directly insidesrc/agy_profiles/web_static/fonts/with zero externalfonts.googleapis.comrequests.Interactive Console Workflows: Provides
TopNavandSideNavswitching acrossProfiles,Obligations, andDoctor, searchable profile table and inspector actions, a profile creationDrawer, confirmation controls, and keyboard shortcuts (/to filter profiles,nto open Create Profile,rto refresh live state).Loopback & CSP Hardening: Binds strictly to
127.0.0.1or::1, authenticates requests via single-use bootstrap token andX-AGY-CSRF, enforcesscript-src 'self'andfont-src 'self', and isolates/fonts/static serving with single-segment extension checks.Rebuilding Frontend Assets (Optional Dev Only):
cd web-ui
npm install
npm run buildThis updates src/agy_profiles/web_static/ directly for packaging and verification (docs/assets/web-console-overview.png).
CLI Command Reference
Command | Purpose |
| List all profiles, runtime states, disk sizes, and detected host targets. |
| Provision a new sandbox profile with strict directory modes. |
| Inspect permissions, symlinks, live PIDs, and |
| Update label, accent color, default target, symlink policy, or auth mode. |
| Launch Hub or IDE inside the profile sandbox. |
| Stop verified profile processes with |
| Clean stale Chromium lock files and reconcile |
| Clone a stopped profile while excluding transient locks and symlinks. |
| Delete a profile sandbox safely inside root boundaries. |
| Compile or remove a macOS |
| Inspect host Antigravity binaries, storage root modes, and stale locks. |
| Execute and report all six live security obligation checks. |
| Serve 13 tools over line-delimited JSON-RPC 2.0 stdio. |
| Start the CSRF-guarded local web console. |
Verification and Testing
Run the full zero-dependency test suite across Python 3.9 and 3.14, plus the secret and contamination scanner:
python3 -m unittest discover -s tests -v
python3 scripts/check_secrets.pyDocumentation
Architecture Overview: Five-layer clean-room module design, shell isolation rationale, and lock lifecycle.
Reconstruction Obligations: Live invariant definitions verified on every release.
Security Model: Threat model, CSP/CSRF controls, symlink jail, and fail-closed redaction guarantees.
License
MIT License. See LICENSE.
Available Tools
13 toolslauncher_buildC
Compile a macOS Spotlight/Dock .app shim for launching a sandboxed profile.
Inputs: name (required), dest, target.
launcher_removeC
Remove the macOS .app launcher shim associated with a sandbox profile.
Inputs: name (required), dest, target.
obligations_verifyB
Run live security self-checks across isolation, MCP scrubbing, PID matching, and CSRF guards.
Inputs: no named parameters.
profile_cloneB
Clone a stopped sandbox profile to a new profile slug with freshly locked .zshenv HOME.
Inputs: source (required), target (required), label.
profile_createB
Create a hardened isolated profile directory with 0700/0600 permissions and optional sanitized config inheritance.
Inputs: name (required), label, accent, auth_mode, +4 more.
profile_deleteC
Delete a sandbox profile and its macOS launchers after unlinking managed symlinks safely.
Inputs: name (required), confirm (required), force_stop.
profile_inspectB
Inspect one sandbox profile, its permissions, symlinks, runtime PIDs, and Evidence record.
Inputs: name (required).
profile_launchC
Launch Antigravity Hub or IDE strictly sandboxed inside the profile directory.
Inputs: name (required), target, workspace.
profile_listA
List all isolated Antigravity sandbox profiles, host binaries, and live status.
Inputs: no named parameters.
profile_repairC
Clean stale Chromium locks when stopped and reconcile sandbox .zshenv and permissions.
Inputs: name (required), target.
profile_stopB
Stop verified running processes owned by a sandbox profile using staged SIGTERM then SIGKILL.
Inputs: name (required), target, timeout_sec.
profile_updateC
Update profile metadata, auth mode, or symlink policy and reconcile sandbox directories.
Inputs: name (required), label, accent, auth_mode, +3 more.
system_doctorB
Inspect host Antigravity bundles, sandbox root permissions, stale locks, and isolation state.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Profile lifecycle operations are clearly distinct: list, inspect, create, update, launch, stop, repair, clone, delete. Launcher build/remove are separate macOS app management tools. The only mild overlap is system_doctor versus obligations_verify, both diagnostic/security-oriented, but their descriptions distinguish host inspection from security control self-checks.
All tools use snake_case and a predictable resource_action pattern: profile_*, launcher_*, system_doctor, obligations_verify. The convention is consistent across the entire set and easy to parse.
13 tools is well within a reasonable range for a sandbox profile management server. Each tool covers a distinct lifecycle, launcher, or diagnostic responsibility, with no obviously redundant entries.
The surface covers full profile lifecycle: list, inspect, create, update, launch, stop, repair, clone, and delete. Launcher creation/removal and system/security verification are also included, leaving no obvious CRUD or operational gaps.
Maintenance
Related MCP Connectors
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Persistent cloud workspaces for AI agents: run commands, edit files, use git and a browser.
Develop, manage, and debug Railway projects, services, and deployments from within agents.
Hosted coding agent: start, follow up on and stop tasks that can open GitHub pull requests.
Related MCP Servers
- AlicenseAqualityBmaintenanceWraps Google Antigravity CLI into 11 typed MCP tools, enabling any MCP client to invoke agy for code review, prototyping, execution, and long-running tasks.1173 PyPI26MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to securely inspect, modify, and manage local projects with trusted filesystem access, safe Git operations, controlled task execution, and developer runtime process management over stdio or HTTP.4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables STDIO-compatible AI assistants to queue coding work onto the official Google Antigravity CLI and track status, read reports or patches, query capabilities, or cancel running tasks without blocking. Supports trusted direct execution plus optional isolated or read-only modes depending on the platform.MIT
- AlicenseNot gradedqualityBmaintenanceEnables Codex or Claude Code to orchestrate persistent Antigravity CLI workers as independent implementers and testers within restricted workspace roots. It supports asynchronous task dispatch, progress polling, result inspection, follow-up messages, and cancellation with bounded, audited local event logging.34 npm4MIT