Metadata-Version: 2.4
Name: sandbox-console
Version: 0.2.0
Summary: Sandbox Console — Web UI for OpenSandbox management
Author: Sandbox Console Contributors
License: Apache-2.0
Keywords: fastapi,opensandbox,sandbox,web-console
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Debuggers
Requires-Python: <3.15,>=3.11
Requires-Dist: agent-sandbox-backends[opensandbox]<0.2,>=0.1.0
Requires-Dist: aiosqlite<1,>=0.20
Requires-Dist: alembic<2,>=1.14
Requires-Dist: apscheduler<4,>=3.10
Requires-Dist: cryptography<46,>=43
Requires-Dist: fastapi<1,>=0.110
Requires-Dist: httpx<1,>=0.27
Requires-Dist: pydantic-settings<3,>=2.5
Requires-Dist: pydantic<3,>=2.11
Requires-Dist: python-multipart<1,>=0.0.9
Requires-Dist: sqlalchemy[asyncio]<2.1,>=2.0
Requires-Dist: structlog<26,>=24.4
Requires-Dist: uvicorn[standard]<1,>=0.30
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.11; extra == 'dev'
Provides-Extra: postgresql
Requires-Dist: asyncpg<1,>=0.29; extra == 'postgresql'
Description-Content-Type: text/markdown

# Sandbox Console

A web console for observing and operating sandbox environments. Manage sandboxes, browse files, execute commands, and view operation history — all from a browser.

## Install

```bash
pip install sandbox-console
```

## Quick Start

```bash
sandbox-console-server                      # Start on http://localhost:9090
sandbox-console-server --port 3000          # Custom port
sandbox-console-server --host 127.0.0.1     # Localhost only
```

Open `http://localhost:9090` in your browser.

## Features

- **Sandbox Management** — Create, list, pause, resume, delete sandboxes
- **File Explorer** — Browse, read, edit (Monaco Editor), upload, download
- **Command Runner** — Execute commands with real-time SSE streaming output
- **Terminal** — Interactive shell via xterm.js + WebSocket
- **History Timeline** — Unified operation history synced from sandbox
- **Connection Management** — Register and test sandbox connections with encrypted credentials

## Configuration

All configuration via environment variables (prefix `EXPLORER_`) or `.env` file.

| Variable | Default | Description |
|---|---|---|
| `EXPLORER_PORT` | `9090` | Server port |
| `EXPLORER_HOST` | `0.0.0.0` | Bind address |
| `EXPLORER_ADMIN_TOKEN` | (empty) | Admin bearer token (empty = auth disabled) |
| `EXPLORER_MASTER_KEY` | all-zeros | Fernet encryption key (64-char hex) |
| `EXPLORER_DATABASE_URL` | `sqlite+aiosqlite:///./data/explorer.db` | Database URL |

## License

Apache-2.0
