Skip to main content

OpenSandbox execution backend for Hermes Agent - secure sandboxed code execution

Project description

hermes-open-sandbox

OpenSandbox execution backend for Hermes Agent.

Run Hermes terminal and file tools inside secure, isolated OpenSandbox containers instead of your local machine.

Architecture

hermes-open-sandbox (pip package)         Hermes Agent (after setup)
┌──────────────────────────────┐        ┌─────────────────────────────────┐
│ SandboxConfig                │        │ tools/environments/opensandbox  │
│ OpenSandboxSession           │──delegates──│  - BaseEnvironment subclass    │
│  - pure SDK wrapper          │        │  - auto-generated by CLI        │
│  - zero Hermes deps          │        │                                 │
└──────────────────────────────┘        └─────────────────────────────────┘

The package itself has no dependency on Hermes Agent internals. The thin adapter that bridges Hermes's BaseEnvironment interface is auto-generated into the Hermes installation directory by hermes-open-sandbox-setup.

Quick Start

# 1. Install the package
pip install hermes-open-sandbox opensandbox

# 2. Patch Hermes to register the backend (idempotent)
hermes-open-sandbox-setup

# 3. Configure
hermes config set terminal.backend opensandbox
export OPENSANDBOX_DOMAIN=your-server:8080
export OPENSANDBOX_API_KEY=sk-xxx

# 4. Restart Hermes and use it
hermes

Standalone Usage

You can also use the package directly without Hermes:

from hermes_opensandbox import OpenSandboxSession, SandboxConfig

config = SandboxConfig.from_env(
    domain="your-server:8080",
    api_key="sk-xxx",
)
with OpenSandboxSession(config) as session:
    session.create()
    output, exit_code = session.execute("echo hello")
    print(f"Output: {output}, Exit: {exit_code}")
    session.kill()

Supported Images

Any Docker image that includes bash:

  • python:3.11
  • nikolaik/python-nodejs:python3.11-nodejs20 (default, includes Node.js)
  • ubuntu:22.04
  • Custom images from your registry

Environment Variables

Variable Default Description
OPENSANDBOX_DOMAIN localhost:8080 OpenSandbox server address
OPENSANDBOX_API_KEY (none) Authentication key
OPENSANDBOX_IMAGE nikolaik/python-nodejs:python3.11-nodejs20 Container image
OPENSANDBOX_CWD /workspace Working directory
OPENSANDBOX_CPU 1.0 CPU cores
OPENSANDBOX_MEMORY 5120 Memory in MiB
OPENSANDBOX_DISK 51200 Disk in MiB

Hermes Config Keys

These can be set via hermes config set and take precedence over env vars:

Key Description
terminal.opensandbox_domain Server address
terminal.opensandbox_api_key API key
terminal.opensandbox_image Container image

Manual Uninstall

# Remove the wrapper
rm ~/.hermes/hermes-agent/tools/environments/opensandbox.py

# Restore backups
mv ~/.hermes/hermes-agent/tools/terminal_tool.py.bak ~/.hermes/hermes-agent/tools/terminal_tool.py
mv ~/.hermes/hermes-agent/agent/prompt_builder.py.bak ~/.hermes/hermes-agent/agent/prompt_builder.py

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_open_sandbox-0.3.0.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_open_sandbox-0.3.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file hermes_open_sandbox-0.3.0.tar.gz.

File metadata

  • Download URL: hermes_open_sandbox-0.3.0.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hermes_open_sandbox-0.3.0.tar.gz
Algorithm Hash digest
SHA256 04af91c426c3e0ceebd1b9222def3f044c4ccd56f078c93e639615e417fa7763
MD5 93b56e0b6ae86458825dc08950a5d50f
BLAKE2b-256 ce2b28ffa149f2290188252b9fdcfb9b66210581bdf2f885a4f18211774f0517

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_open_sandbox-0.3.0.tar.gz:

Publisher: workflow.yml on lordqyxz/hermes-open-sandbox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hermes_open_sandbox-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_open_sandbox-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1bb2b24bd9fbbbc67563c7f5ea4ccf3f7dfaae08b7e99658fd4eef2a2115dd55
MD5 38cf7266d118cca5a0bc23d377b58217
BLAKE2b-256 b4199fbf4d0214b3b13d7f4713cdff70f9644100084f479a92a1400a50af6212

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_open_sandbox-0.3.0-py3-none-any.whl:

Publisher: workflow.yml on lordqyxz/hermes-open-sandbox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page