Omnigent OpenSandbox provider
omnigent-community-sandbox-opensandbox is a community sandbox provider that
runs server-managed Omnigent hosts in
OpenSandbox sandboxes. It uses Omnigent's
omnigent.sandbox_providers entry point and keeps all provider code in the
required omnigent.community.sandbox.* namespace.
This is an independent community implementation. It has not been submitted to or endorsed by the Omnigent maintainers.
Compatibility
- Python 3.12+
- Omnigent 0.8.2 through 0.9.x
- OpenSandbox Python SDK 0.1.15
Install
From this directory:
python -m pip install .
After installation, Omnigent discovers the provider as opensandbox. For a
server-managed deployment, configure Omnigent with the provider and supply the
OpenSandbox connection through environment variables:
sandbox:
provider: opensandbox
server_url: https://your-omnigent-server.example
export OPEN_SANDBOX_DOMAIN=localhost:8080
export OPEN_SANDBOX_PROTOCOL=http
omnigent server
The default sandbox image is Omnigent's official DEFAULT_HOST_IMAGE. Set
OMNIGENT_OPENSANDBOX_IMAGE to use another prebuilt image, or set
OMNIGENT_OPENSANDBOX_SNAPSHOT_ID to restore a snapshot. Image and snapshot
are mutually exclusive.
Configuration
| Variable | Default | Purpose |
|---|---|---|
OPEN_SANDBOX_DOMAIN |
SDK default (localhost:8080) |
OpenSandbox management endpoint |
OPEN_SANDBOX_API_KEY |
unset | Management API credential |
OPEN_SANDBOX_PROTOCOL |
http |
http or https |
OPEN_SANDBOX_REQUEST_TIMEOUT |
30 |
Management request timeout in seconds |
OPEN_SANDBOX_USE_SERVER_PROXY |
false |
Route sandbox service calls through the server proxy |
OMNIGENT_OPENSANDBOX_IMAGE |
Omnigent DEFAULT_HOST_IMAGE |
Prebuilt host image |
OMNIGENT_OPENSANDBOX_SNAPSHOT_ID |
unset | Snapshot to restore instead of an image |
OMNIGENT_OPENSANDBOX_TIMEOUT_SECONDS |
86400 |
Maximum sandbox lifetime; minimum 60 |
OMNIGENT_OPENSANDBOX_READY_TIMEOUT_SECONDS |
120 |
Create, connect, and resume readiness timeout |
OMNIGENT_OPENSANDBOX_ENV |
unset | Comma-separated host variable names copied into the sandbox |
OMNIGENT_OPENSANDBOX_RESUME_STOPPED |
false |
Advertise and enable in-place resume only when the deployment has checkpoint/snapshot support |
OpenSandboxLauncher also accepts an explicit ConnectionConfigSync, image or
snapshot, environment, passthrough variable names, metadata, and timeout
values. Explicit environment and metadata dictionaries are useful when the
launcher is instantiated by deployment code rather than the Omnigent registry.
Implemented contract
- management-plane preflight with
prepare(); - create from image or snapshot and wait for readiness;
- attach to an existing running sandbox without taking ownership;
- synchronous commands with separate stdout, stderr, and exit code;
- binary file upload with parent-directory creation and source mode retention;
- terminate, pause-state detection, and in-place resume;
- local SDK client cleanup that never implicitly terminates remote sandboxes.
The launcher advertises only those capabilities. managed_launch,
programmatic_terminate and file_copy are enabled. resume_stopped is
conservatively disabled by default because OpenSandbox checkpoint support is a
deployment capability. Set OMNIGENT_OPENSANDBOX_RESUME_STOPPED=true only
after pause/resume has been verified against that deployment.
cli_bootstrap, streaming exec, foreground exec, and local port forwarding are
disabled.
Boundaries
- The implementation targets one prebuilt, single-container sandbox. It does not build Dockerfiles or model Compose applications.
- Omnigent CLI bootstrap is intentionally unavailable because OpenSandbox SDK 0.1.15 does not provide the required foreground/PTY streaming and local port forwarding contract.
close()releases local HTTP clients only. Omnigent must callterminate()when it intends to delete remote compute.- OpenSandbox snapshots, images, and endpoint reachability remain deployment responsibilities.
- In-place resume requires a configured OpenSandbox checkpoint/snapshot provider. The capability must be explicitly enabled per deployment.
Development
python -m pip install -e '.[test]'
ruff format --check .
ruff check .
pyrefly check src
pytest -q
python -m build --outdir /tmp/omnigent-opensandbox-dist
The live test is opt-in and creates a real sandbox:
OPEN_SANDBOX_INTEGRATION_TEST=1 pytest -q tests/test_live.py
Without that flag, the live test is reported as skipped, not passed.
See the verification record for the latest automated results and the boundary of the live checks.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnigent_community_sandbox_opensandbox-0.1.0.tar.gz.
File metadata
- Download URL: omnigent_community_sandbox_opensandbox-0.1.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57ce90522106f4c07a0aab654cbadc6c5477f16454fcfcd64ab597061dcb0d7b
|
|
| MD5 |
dda35366b6097d033bea0fb95fb30e02
|
|
| BLAKE2b-256 |
8e925fbaffeb466b70e747e63d80e51e270b6fbb9f433700ded54c11e6de23f4
|
Provenance
The following attestation bundles were made for omnigent_community_sandbox_opensandbox-0.1.0.tar.gz:
Publisher:
publish.yml on jianpingpei/omnigent-community-sandbox-opensandbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigent_community_sandbox_opensandbox-0.1.0.tar.gz -
Subject digest:
57ce90522106f4c07a0aab654cbadc6c5477f16454fcfcd64ab597061dcb0d7b - Sigstore transparency entry: 2495275195
- Sigstore integration time:
-
Permalink:
jianpingpei/omnigent-community-sandbox-opensandbox@528066dcb6cd16a69596df49fa0ef657a6709adb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jianpingpei
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528066dcb6cd16a69596df49fa0ef657a6709adb -
Trigger Event:
release
-
Statement type:
File details
Details for the file omnigent_community_sandbox_opensandbox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: omnigent_community_sandbox_opensandbox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d709aef3993aff6820496fce4007b83f03e4867cffe01e4af6858e3a145875d
|
|
| MD5 |
c1e1dc869afd38d6f14d79feea9c051f
|
|
| BLAKE2b-256 |
5cf7ee4e2c436cc75c4443a91ec49ca837d36c702cf919761977c90904787d52
|
Provenance
The following attestation bundles were made for omnigent_community_sandbox_opensandbox-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on jianpingpei/omnigent-community-sandbox-opensandbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnigent_community_sandbox_opensandbox-0.1.0-py3-none-any.whl -
Subject digest:
5d709aef3993aff6820496fce4007b83f03e4867cffe01e4af6858e3a145875d - Sigstore transparency entry: 2495275215
- Sigstore integration time:
-
Permalink:
jianpingpei/omnigent-community-sandbox-opensandbox@528066dcb6cd16a69596df49fa0ef657a6709adb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jianpingpei
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528066dcb6cd16a69596df49fa0ef657a6709adb -
Trigger Event:
release
-
Statement type: