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.1.tar.gz (38.0 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.1-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hermes_open_sandbox-0.3.1.tar.gz
  • Upload date:
  • Size: 38.0 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.1.tar.gz
Algorithm Hash digest
SHA256 55a9b97bf436840f913b02abf8c755404e3e494f678744211fd2824fb616da00
MD5 bd555f1ce3f39b248cad0c3faf15cadc
BLAKE2b-256 8114d07f9b228e61e41c301943203d5bdb7386d3f32b4ac2b5947827f3590af0

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_open_sandbox-0.3.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_open_sandbox-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ab4b1f6367235e66f091be8f19f4bb837fe5fbd6abb59a8421cce460f4a78b73
MD5 d34c58b9cd3d79a84ddb72e18cabe6a6
BLAKE2b-256 fe1e2c233e58ebee9421dfd1a9db19f548d756af629abc6cac4c7faeb5c3df8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_open_sandbox-0.3.1-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