Connect to a running sandbox
If you have a running sandbox, you can connect to it using the Sandbox.connect method and then start controlling it with our SDK. This is useful when you want to reuse the same sandbox instance for a user after a short period of inactivity.
The Sandbox.connect method returns a Sandbox object.
1. Get the sandbox ID
Section titled “1. Get the sandbox ID”To connect to a running sandbox, first retrieve its ID by calling Sandbox.list().
Note: Sandbox.list was updated. See List Sandboxes for details.
from agentbox import Sandbox
# Create sandbox and keep it running for 60 seconds (timeout is in seconds).
sandbox = Sandbox(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
template="wemmodr8mb2uk3kn7exw",
timeout=60
)
# Get all running sandboxes
running_sandboxes = Sandbox.list(api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx")
if len(running_sandboxes) == 0:
raise Exception("No running sandboxes found")
# Use the first sandbox's ID (adjust selection logic as needed)
sandbox_id = running_sandboxes[0].sandbox_id
print(sandbox_id)
from agentbox import AsyncSandbox
# Create sandbox and keep it running for 60 seconds (timeout is in seconds).
sandbox = await AsyncSandbox.create(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
template="wemmodr8mb2uk3kn7exw",
timeout=60
)
# Get all running sandboxes
running_sandboxes = await AsyncSandbox.list(api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx")
if len(running_sandboxes) == 0:
raise Exception("No running sandboxes found")
sandbox_id = running_sandboxes[0].sandbox_id
print(sandbox_id)
2. Connect to the sandbox
Section titled “2. Connect to the sandbox”Once you have the sandbox ID, connect using Sandbox.connect().
from agentbox import Sandbox
# Create sandbox and keep it running for 60 seconds (timeout is in seconds).
sandbox = Sandbox(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
template="wemmodr8mb2uk3kn7exw",
timeout=60
)
# Get all running sandboxes
running_sandboxes = Sandbox.list(api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx")
if len(running_sandboxes) == 0:
raise Exception("No running sandboxes found")
sandbox_id = running_sandboxes[0].sandbox_id
print(sandbox_id)
conn = Sandbox.connect(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
sandbox_id=sandbox_id
)
print(conn.get_info())
from agentbox import AsyncSandbox
# Create sandbox and keep it running for 60 seconds (timeout is in seconds).
sandbox = await AsyncSandbox.create(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
template="wemmodr8mb2uk3kn7exw",
timeout=60
)
# Get all running sandboxes
running_sandboxes = await AsyncSandbox.list(api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx")
if len(running_sandboxes) == 0:
raise Exception("No running sandboxes found")
sandbox_id = running_sandboxes[0].sandbox_id
print(sandbox_id)
conn = await AsyncSandbox.connect(
api_key="ab_xxxxxxxxxxxxxxxxxxxxxxxxx",
sandbox_id=sandbox_id
)
print(await conn.get_info())