OpenSpace sandbox-fallback-execution-5eda7b
Fallback pattern for executing Python code when sandbox execution fails by writing scripts to disk and running via shell
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/sandbox-fallback-execution-5eda7b" ~/.claude/skills/hkuds-openspace-sandbox-fallback-execution-5eda7b && rm -rf "$T"
manifest:
gdpval_bench/skills/sandbox-fallback-execution-5eda7b/SKILL.mdsource content
Sandbox Fallback Execution
Overview
When
execute_code_sandbox fails due to e2b initialization errors or sandbox unavailability, use this fallback pattern to execute Python code by writing it to disk and running it via run_shell. This approach is particularly useful for PDF generation, data processing, and other Python-intensive tasks.
When to Use
Use this skill when you encounter errors like:
e2b initialization errorsandbox not available
timeout or connection failuresexecute_code_sandbox- Any sandbox execution that consistently fails
Step-by-Step Instructions
Step 1: Attempt Sandbox Execution First
Always try
execute_code_sandbox first, as it provides isolation and artifact handling:
execute_code_sandbox(code="your_python_code_here")
Step 2: Detect Failure and Switch to Fallback
When sandbox execution fails with initialization errors, switch to the fallback pattern:
-
Write the Python script to disk using
:write_file- Choose a descriptive filename (e.g.,
,generate_pdf.py
)process_data.py - Include the complete Python code with all necessary imports
- Choose a descriptive filename (e.g.,
-
Execute via shell using
:run_shell- Run the script with
orpythonpython3 - Capture stdout/stderr for verification
- Run the script with
Step 3: Example Implementation
# Write the script to disk write_file( path="generate_pdf.py", content=""" from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas def create_pdf(filename, content): c = canvas.Canvas(filename, pagesize=letter) c.drawString(100, 750, content) c.save() create_pdf('output.pdf', 'Hello World') """ ) # Execute the script via shell run_shell(command="python generate_pdf.py")
Step 4: Handle Dependencies
If the script requires external packages:
# Install dependencies first run_shell(command="pip install reportlab pillow") # Then execute the script run_shell(command="python generate_pdf.py")
Step 5: Verify Output
After execution, verify the output was created:
# Check if file was created run_shell(command="ls -la output.pdf") # Optionally read the file to confirm read_file(file_path="output.pdf", filetype="pdf")
Best Practices
- Keep scripts self-contained: Include all imports and logic in the written file
- Use descriptive filenames: Make it clear what each script does
- Clean up when done: Remove temporary scripts if not needed for debugging
- Capture errors: Always check stdout/stderr from
for debuggingrun_shell - Handle paths carefully: Use relative paths or absolute paths consistently
Complete Example Pattern
# Primary: Try sandbox execution try: result = execute_code_sandbox(code=python_code) except Exception as e: if "e2b" in str(e).lower() or "sandbox" in str(e).lower(): # Fallback: Write to disk and execute via shell script_path = "task_script.py" write_file( path=script_path, content=python_code ) # Install any required dependencies run_shell(command="pip install -q reportlab") # Execute the script result = run_shell(command=f"python {script_path}") # Verify output run_shell(command="ls -la")
Applicable Use Cases
- PDF generation (reportlab, fpdf, etc.)
- Image processing (PIL, OpenCV)
- Data analysis (pandas, numpy)
- File manipulation tasks
- Any Python script that doesn't require special sandbox features