Metadata-Version: 2.4
Name: sandrpod-cli
Version: 0.2.4
Summary: Command-line client for SandrPod — self-hosted, multi-cloud sandbox infrastructure for AI agents
License: MIT
Project-URL: Homepage, https://github.com/sandrpod/sandrpod
Project-URL: Repository, https://github.com/sandrpod/sandrpod
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Requires-Dist: click>=8.0.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: shell
Requires-Dist: websocket-client>=1.0.0; extra == "shell"
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# sandrpod-cli

Command-line client for [SandrPod](https://github.com/sandrpod/sandrpod) — open-source, **self-hosted execution infrastructure (sandboxes) for AI agents**. Run sandboxes on your own substrate (8 clouds incl. Aliyun/Tencent, plain Docker, or a bare machine), drive them over the native REST API, and stay E2B-compatible.

## Install

```bash
pip install sandrpod-cli
pip install "sandrpod-cli[shell]"   # + interactive PTY shell (websocket-client)
```

## Configure

```bash
export SANDRPOD_API_URL=http://your-server:8080
export SANDRPOD_API_TOKEN=your-token          # only if the server runs with auth
# or pass per-command:  sandrpod-cli --api-url http://your-server:8080 <cmd>
```

## Quickstart

```bash
sandrpod-cli create mybox --provider local           # create a sandbox
sandrpod-cli execute mybox "echo hi; python3 -V"     # one-shot exec
sandrpod-cli run mybox "import numpy; print(1)"      # stateful code interpreter (Jupyter-style)
sandrpod-cli fs write mybox /workspace/a.txt hello   # filesystem ops
sandrpod-cli fs ls mybox
sandrpod-cli stream mybox "for i in 1 2 3; do echo \$i; sleep 1; done"   # real-time output
sandrpod-cli shell mybox                             # interactive PTY (needs the [shell] extra)
sandrpod-cli preview mybox 8000                      # proxy a web port inside the sandbox
sandrpod-cli stats mybox                             # CPU / memory / disk
sandrpod-cli delete mybox
```

**Charts**: `sandrpod-cli run` captures matplotlib figures, saving the rendered PNG plus structured chart data (E2B-style).

Full command list (cloud providers, snapshots, tokens, contexts, directory watch, …) is in the [SandrPod repository](https://github.com/sandrpod/sandrpod).

## License

MIT
