When using the runCode() method in JavaScript or run_code() in Python you can pass onStdout/on_stdout and onStderr/on_stderr callbacks to handle the output.
import { Sandbox } from '@e2b/code-interpreter'const codeToRun = ` import time import sys print("This goes first to stdout") time.sleep(3) print("This goes later to stderr", file=sys.stderr) time.sleep(3) print("This goes last")`const sandbox = await Sandbox.create()sandbox.runCode(codeToRun, { // Use `onError` to handle runtime code errors onError: error => console.error('error:', error), onStdout: data => console.log('stdout:', data), onStderr: data => console.error('stderr:', data),})
The code above will print the following:
stdout: { error: false, line: "This goes first to stdout\n", timestamp: 1729049666861000,}stderr: { error: true, line: "This goes later to stderr\n", timestamp: 1729049669924000,}stdout: { error: false, line: "This goes last\n", timestamp: 1729049672664000,}
When using the runCode() method in JavaScript or run_code() in Python you can pass onResults/on_results callback
to receive results from the sandbox like charts, tables, text, and more.
const codeToRun = `import matplotlib.pyplot as plt# Prepare datacategories = ['Category A', 'Category B', 'Category C', 'Category D']values = [10, 20, 15, 25]# Create and customize the bar chartplt.figure(figsize=(10, 6))plt.bar(categories, values, color='green')plt.xlabel('Categories')plt.ylabel('Values')plt.title('Values by Category')# Display the chartplt.show()`const sandbox = await Sandbox.create()await sandbox.runCode(codeToRun, { onResult: result => console.log('result:', result),})