Metadata-Version: 2.4
Name: hyperterse-sandboxer
Version: 0.1.0
Summary: Unified sandbox client for E2B, Daytona, Blaxel, Runloop, Fly Machines, and local Docker
License-Expression: Apache-2.0
Keywords: agent-sdk,ai-agents,automation,blaxel,ci-cd,cloud,cloud-sandbox,daytona,developer-tools,devtools,docker,e2b,fly-machines,go,local-sandbox,multi-provider,nodejs,python,remote-sandbox,runloop,sandbox,sandbox-sdk,sdk,typescript,unified-api,unified-sdk
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Description-Content-Type: text/markdown

# Sandboxer (Python)

Python client for Sandboxer. You choose a **provider** (a sandbox host or
local Docker); the library calls that backend directly. There is no Sandboxer
cloud service between your code and the host.

## Install

Published on PyPI as **`hyperterse-sandboxer`**; the import package is **`sandboxer`**.

```bash
pip install hyperterse-sandboxer
```

From a clone of the repository:

```bash
pip install -e ./sdks/python
# optional development dependencies
pip install -e "./sdks/python[dev]"
```

## Usage

```python
from sandboxer import Sandboxer, RunCommandRequest

client = Sandboxer("e2b", {"api_key": "...", "base_url": "https://api.e2b.app"})
sb, info = client.create_sandbox()
try:
    print(sb.run_command(RunCommandRequest(cmd="echo hi")).stdout)
finally:
    sb.kill()
    client.close()
```

Full API tables and types: [Python API reference](../../docs/reference-python.md).

## Layout

- Package code: [`src/sandboxer/`](src/sandboxer/)
- Provider drivers: [`src/sandboxer/providers/`](src/sandboxer/providers/)
