Sandbox Class
TheSandbox class is the main entry point for interacting with Hopx sandboxes. It provides methods for creating, connecting to, and managing sandboxes, as well as access to all resources.
Class Definition
Class Methods
Sandbox.create()
Create a new sandbox from a template.
template(str, optional): Template name (e.g., “code-interpreter”)template_id(str, optional): Template ID (alternative to template name)region(str, optional): Preferred region (auto-selected if not specified)timeout_seconds(int, optional): Auto-kill timeout in seconds (default: no timeout)internet_access(bool, optional): Enable internet access (default: True)env_vars(Dict[str, str], optional): Environment variables to set in the sandboxapi_key(str, optional): API key (or use HOPX_API_KEY env var)base_url(str): API base URL (default: production)
Sandbox instance
Raises:
ValidationError: Invalid parametersResourceLimitError: Insufficient resourcesAPIError: API request failed
Sandbox.connect()
Connect to an existing sandbox.
sandbox_id(str): Sandbox IDapi_key(str, optional): API key (or use HOPX_API_KEY env var)base_url(str): API base URL
Sandbox instance
Raises:
NotFoundError: Sandbox not foundHopxError: If sandbox is stopped or in invalid state
Sandbox.iter()
Lazy iterator for listing sandboxes.
status(str, optional): Filter by status (“running”, “stopped”, “paused”, “creating”)region(str, optional): Filter by regionapi_key(str, optional): API keybase_url(str): API base URL
Sandbox instances
Example:
Sandbox.list()
List all sandboxes (returns list, not iterator).
status(str, optional): Filter by statusregion(str, optional): Filter by regionlimit(int, optional): Maximum number of sandboxes to returnapi_key(str, optional): API keybase_url(str): API base URL
SandboxInfo objects
Example:
Instance Methods
Lifecycle Methods
get_info()
Get sandbox information.
SandboxInfo object with sandbox details
Example:
kill()
Delete the sandbox.
start()
Start a stopped sandbox.
stop()
Stop a running sandbox.
pause()
Pause a running sandbox.
resume()
Resume a paused sandbox.
Code Execution
run_code()
Execute code synchronously.
code(str): Code to executelanguage(str): Language (“python”, “javascript”, “bash”, “go”)timeout(int): Execution timeout in seconds (default: 60)working_dir(str): Working directory (default: “/workspace”)env(Dict[str, str], optional): Environment variables for this executionrich(bool): If True, captures rich outputs (plots, DataFrames) (default: False)
ExecutionResult with stdout, stderr, exit_code, execution_time
Example:
Properties
files
File operations resource (lazy-loaded).
commands
Command execution resource (lazy-loaded).
desktop
Desktop automation resource (lazy-loaded).
env
Environment variables resource (lazy-loaded).
cache
Cache management resource (lazy-loaded).
terminal
Interactive terminal resource (lazy-loaded, requires websockets).
Advanced Methods
get_token()
Get current JWT token for agent authentication.
refresh_token()
Refresh JWT token for agent authentication.
Automatic Cleanup
The preferred way to ensure automatic cleanup is usingtimeout_seconds:
Sandbox class supports context manager protocol:
AsyncSandbox
For async/await workflows, useAsyncSandbox:
AsyncSandbox.
