Skip to main content

agy-sandbox

agy-sandbox logo

Secure, isolated development environments powered by Docker and the Antigravity AI agent.

PyPI version Python License: MIT


Why does this exist?

Antigravity CLI's default safety constraints require too much manual intervention, but granting the agent full system access is a security risk.

agy-sandbox solves this by running the CLI inside an isolated Docker container. This gives the AI agent the freedom to execute tasks autonomously while strictly preventing it from accessing or modifying your host machine. In short, the tool minimizes the blast radius if something bad happens.

This Python package is meant to abstract the underlying Docker commands and handle OS-specific configurations, providing a streamlined, cross-platform sandbox out of the box.


Prerequisites

Ensure your system has:

  • Python: 3.10+
  • Docker: 24.0+ (and running)

Installation

Install via pip:

pip install agy-sandbox

Or using uv:

uv pip install agy-sandbox

Install from Source (Development)

Clone the repository

git clone https://github.com/lideta-technologies/agy-sandbox.git
cd agy-sandbox

Install in development mode (editable)

uv venv
source .venv/bin/activate   # On Windows: .venv\Scripts\activate
uv pip install -e .

Quick Start & Usage

When you run agy-sandbox on a project directory, the tool automatically handles the container lifecycles:

  • Running ➜ Connects directly via docker exec.
  • Stopped ➜ Starts the container, then connects.
  • Nonexistent ➜ Builds the image, runs the container, and initializes the remote agent session.
# Provision and start a sandbox (default provider is Google AI Studio)
agy-sandbox /path/to/your/project

# Explicitly specify Vertex AI billing
agy-sandbox /path/to/your/project --provider vertex

# List all sandbox containers
agy-sandbox list

# Stop a sandbox container (accepts current workspace, a custom path, or direct container name)
agy-sandbox stop
agy-sandbox stop /path/to/your/project

# Remove a sandbox container (accepts current workspace, a custom path, or direct container name)
agy-sandbox remove
agy-sandbox remove /path/to/your/project

# View container logs
agy-sandbox logs --follow

Switching Providers and Authentication State

AI Studio uses a simple web authentication mechanism. Vertex AI requires a Google Cloud project setup with Application Default Credentials (ADC) configured on your host (gcloud auth application-default login).

Switching between them is not always as simple as changing an environment variable because the Antigravity CLI prioritizes cached Google OAuth sessions over new configurations.

How to Switch Providers

To switch from Google AI Studio to Google Vertex AI:

  1. Log out of your active session: Inside the active /workspace terminal of the container (or from the agy prompt), run:
    agy logout
    # (Or type /logout directly in the active agent session)
    
  2. Re-run with your new provider:
    agy-sandbox /path/to/your/project --provider vertex
    
  3. Select GCP Project Option: When prompted, choose option 2. Use a Google Cloud project. This bypasses the cached Google AI Studio OAuth flow and forces the CLI to use your mounted ADC credentials.

How It Works (Volume Mounts)

The following host paths are automatically mounted into your isolated container:

Host Path Container Path Purpose
Your project directory /workspace Project code (live-mounted)
~/.config/antigravity ~/.config/antigravity Antigravity auth tokens and agent state
~/.gemini ~/.gemini_host (re-mapped) Google Gemini credentials
~/.cache/uv ~/.cache/uv Shared python package cache
~/.local/share/uv ~/.local/share/uv Shared python binaries and environments

Contributing

We welcome contributions to help improve agy-sandbox.

Development Setup

  1. Clone the repository:
    git clone https://github.com/lideta-technologies/agy-sandbox.git
    cd agy-sandbox
    
  2. Create and activate a virtual environment:
    python3 -m venv .venv
    source .venv/bin/activate
    
  3. Install dependencies in editable mode:
    pip install -e ".[dev]" pytest pytest-cov
    

Running Tests

Make sure all unit tests run and pass before submitting a pull request:

pytest --cov=agy_sandbox --cov-report=term-missing

License

MIT

Metadata

Release files for agy-sandbox 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agy-sandbox 0.1.2
File Size Uploaded
agy_sandbox-0.1.2.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agy-sandbox 0.1.2
File Interpreter ABI Platform
agy_sandbox-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 38.9 kB

Release files / agy_sandbox-0.1.2.tar.gz

Download URL agy_sandbox-0.1.2.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0a73f136fe9342c4a7a601c6019ada3b5fd41d17d7e50633c05ba9847362acbb
BLAKE2b-256 checksum
How to use checksums
f9afe39f00a883fad5d3a4863304a476a6de7971e44953dca70ef3e4819987f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / agy_sandbox-0.1.2-py3-none-any.whl

Download URL agy_sandbox-0.1.2-py3-none-any.whl
Size 18.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a71b90cc24cf9020db1e663cf6791c6e6f31c8637978378b9995842249b47663
BLAKE2b-256 checksum
How to use checksums
dabbc4eb94b341de1c61876fa6cb4b3183c0f155443dc6a512d2a7930e994d04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page