Skip to content

A universal sandbox platform for AI application scenarios, providing multi-language SDKs, unified sandbox protocols, and sandbox runtimes for LLM-related capabilities.

License

Notifications You must be signed in to change notification settings

withlin/OpenSandbox

Β 
Β 

Repository files navigation

OpenSandbox

Ask DeepWiki


English | δΈ­ζ–‡

OpenSandbox is a universal sandbox platform for AI application scenarios, providing multi-language SDKs, unified sandbox protocols, and sandbox runtimes for LLM-related capabilities (command execution, file operations, code execution, browser operations, Agent execution, etc.).

Core Features

  • Multi-language SDKs: Provides client SDKs in Python, Java, TypeScript (TODO), and other languages (sdks/).
  • Sandbox Protocol: All sandboxes follow the same OAS interface specification (specs/). You can extend your own sandbox runtime through this unified protocol.
  • Sandbox Runtime: Supports local execution (server/) and Kubernetes cluster execution (TODO).
  • Multiple Sandbox Implementations: Built-in implementations for Command, Filesystem (components/execd/), Code Interpreter (sandboxes/code-interpreter/), Browser Use, Coding Agent (Claude Code), and more, with examples (examples/).

Usage Examples

Basic Sandbox Operations

Requirements:

  • Docker (required for local execution)
  • Python 3.10+ (recommended for examples and local runtime)

1. Clone the Repository

git clone https://github.com/alibaba/OpenSandbox.git
cd OpenSandbox

2. Start the Sandbox Server

cd server
uv sync
cp example.config.toml ~/.sandbox.toml # Copy configuration file
uv run python -m src.main # Start the service

3. Create a Code Interpreter and Execute Commands

Install the Code Interpreter SDK

uv pip install opensandbox-code-interpreter

Create a sandbox and execute commands

import asyncio
from datetime import timedelta

from code_interpreter import CodeInterpreter, SupportedLanguage, CodeContext
from opensandbox import Sandbox
from opensandbox.models import WriteEntry

async def main() -> None:
    # 1. Create a sandbox
    sandbox = await Sandbox.create(
        "opensandbox/code-interpreter:latest",
        entrypoint=["/opt/opensandbox/code-interpreter.sh"],
        env={"PYTHON_VERSION": "3.11"},
        timeout=timedelta(minutes=10),
    )

    async with sandbox:

        # 2. Execute a shell command
        execution = await sandbox.commands.run("echo 'Hello OpenSandbox!'")
        print(execution.logs.stdout[0].text)

        # 3. Write a file
        await sandbox.files.write_files([
            WriteEntry(path="/tmp/hello.txt", data="Hello World", mode=644)
        ])

        # 4. Read a file
        content = await sandbox.files.read_file("/tmp/hello.txt")
        print(f"Content: {content}") # Content: Hello World

        # 5. Create a code interpreter
        interpreter = await CodeInterpreter.create(sandbox)

        # 6. Execute Python code
        result = await interpreter.codes.run(
              """
                  import sys
                  print(sys.version)
                  result = 2 + 2
                  result
              """,
              context=CodeContext(language=SupportedLanguage.PYTHON)
        )

        print(result.result[0].text) # 4
        print(result.logs.stdout[0].text) # 3.11.14

    # 7. Cleanup the sandbox
    await sandbox.kill()

if __name__ == "__main__":
    asyncio.run(main())

More Examples

OpenSandbox provides rich examples demonstrating sandbox usage in different scenarios. All example code is located in the examples/ directory.

🎯 Basic Examples

  • code-interpreter - Complete Code Interpreter SDK example

    • Run commands and execute Python/Java/Go/TypeScript code inside a sandbox
    • Covers context creation, code execution, and result streaming
    • Supports custom language versions
  • aio-sandbox - All-in-One sandbox example

    • Uses OpenSandbox SDK to create an agent-sandbox instance
    • Shows how to connect and use the full AIO sandbox capabilities

πŸ€– Coding Agent Integrations

OpenSandbox integrates various Coding Agents, including Claude Code, Google Gemini, OpenAI Codex, and more.

🌐 Browser and Desktop Environments

  • chrome - Chrome headless browser

    • Launches Chromium browser with remote debugging functionality
    • Provides VNC (port 5901) and DevTools (port 9222) access
    • Suitable for scenarios requiring browser automation or debugging
  • playwright - Playwright browser automation

    • Uses Playwright + Chromium in headless mode to scrape web content
    • Can extract web page titles, body text, and other information
    • Suitable for web crawling and automated testing
  • desktop - VNC desktop environment

    • Launches a complete desktop environment (Xvfb + x11vnc + fluxbox)
    • Remote access to sandbox desktop via VNC client
    • Supports custom VNC password
  • vscode - VS Code Web environment

    • Runs code-server (VS Code web version) in a sandbox
    • Access complete VS Code development environment through browser
    • Suitable for remote development and code editing scenarios

For more details, please refer to examples and the README files in each example directory.

Directory Structure

OpenSandbox/
β”œβ”€β”€ sdks/                     # Multi-language SDKs
β”‚   β”œβ”€β”€ code-interpreter/     # Code Interpreter SDK
β”‚   └── sandbox/              # Sandbox base SDK
β”œβ”€β”€ specs/                    # OpenAPI specifications
β”‚   β”œβ”€β”€ execd-api.yaml        # Command execution and file operations API specification
β”‚   └── sandbox-lifecycle.yml # Sandbox lifecycle API specification
β”œβ”€β”€ server/                   # Sandbox server
β”œβ”€β”€ components/               # Core components
β”‚   └── execd/                # Command execution and file operations component (Go)
β”œβ”€β”€ docs/                     # Documentation
β”œβ”€β”€ examples/                 # Example integrations and use cases
β”œβ”€β”€ sandboxes/                # Sandbox implementations
β”‚   └── code-interpreter/     # Code Interpreter sandbox implementation
β”œβ”€β”€ scripts/                  # Build and utility scripts
└── tests                     # End-to-end tests

Documentation

  • docs/architecture.md – Overall architecture & design philosophy
  • SDK
  • specs/README.md - Contains OpenAPI definitions for sandbox lifecycle API and sandbox execution API
  • server/README.md - Contains sandbox server startup and configuration, currently supports Docker Runtime, will support Kubernetes Runtime in the future

License

This project is open source under the Apache 2.0 License.

You can use OpenSandbox for personal or commercial projects in compliance with the license terms.


Contact and Discussion

  • Issues: Submit bugs, feature requests, or design discussions through GitHub Issues

We welcome everyone to help build OpenSandbox into a universal sandbox infrastructure for AI scenarios.

About

A universal sandbox platform for AI application scenarios, providing multi-language SDKs, unified sandbox protocols, and sandbox runtimes for LLM-related capabilities.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 53.3%
  • Go 18.8%
  • Kotlin 17.2%
  • Java 7.4%
  • Shell 2.1%
  • Makefile 0.4%
  • Other 0.8%