Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
]
},
"docs/code-interpreting/streaming",
"docs/code-interpreting/contexts",
{
"group": "Supported languages",
"pages": [
Expand Down
141 changes: 141 additions & 0 deletions docs/code-interpreting/contexts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
---
title: "Code Contexts"
---

Run code in different code execution contexts with E2B Code Interpreter SDK. This allows you to parallelize code execution by running code in different contexts at the same time.

By default the code is run in the Sandbox's default code execution context. You can change it by passing the `context` parameter to the `runCode()` method in JavaScript or `run_code()` in Python.

## Create a new Code Context

You can create a new code execution context by calling the `createCodeContext()` method in JavaScript or `create_code_context()` in Python and passing the context parameters.

<CodeGroup>
```js JavaScript & TypeScript
import { Sandbox } from '@e2b/code-interpreter'

const sandbox = await Sandbox.create()
const context = await sandbox.createCodeContext({
cwd: '/home/user',
language: 'python',
requestTimeoutMs: 60_000,
})

const result = await sandbox.runCode('print("Hello, world!")', { context })
console.log(result)
```
```python Python
from e2b_code_interpreter import Sandbox

sandbox = Sandbox.create()
context = sandbox.create_code_context(
cwd='/home/user',
language='python',
request_timeout=60_000,
)
result = sandbox.run_code('print("Hello, world!")', context=context)
print(result)
```
</CodeGroup>

## List active Code Contexts

You can list active code execution contexts by calling the `listCodeContexts()` method in JavaScript or `list_code_contexts()` in Python. This will return a list of active code execution contexts.

<CodeGroup>
```js JavaScript & TypeScript
import { Sandbox } from '@e2b/code-interpreter'

const sandbox = await Sandbox.create()
const contexts = await sandbox.listCodeContexts()
console.log(contexts)
```
```python Python
from e2b_code_interpreter import Sandbox

sandbox = Sandbox.create()
contexts = sandbox.list_code_contexts()
print(contexts)
```
</CodeGroup>

## Restart a Code Context

You can restart an active code execution context by calling the `restartCodeContext()` method in JavaScript or `restart_code_context()` in Python and passing the context object or context ID.
Restarting a context will clear its state and start a new code execution session in the same context.

<CodeGroup>
```js JavaScript & TypeScript
import { Sandbox } from '@e2b/code-interpreter'

const sandbox = await Sandbox.create()
const context = await sandbox.createCodeContext({
cwd: '/home/user',
language: 'python',
requestTimeoutMs: 60_000,
})

// using context object
await sandbox.restartCodeContext(context)

// using context ID
await sandbox.restartCodeContext(context.contextId)
```
```python Python
from e2b_code_interpreter import Sandbox

sandbox = Sandbox.create()
context = sandbox.create_code_context(
cwd='/home/user',
language='python',
request_timeout=60_000,
)

# using context object
restarted_context = sandbox.restart_code_context(context)
print(restarted_context)

# using context ID
restarted_context = sandbox.restart_code_context(context.contextId)
print(restarted_context)
```
</CodeGroup>

## Remove a Code Context

You can remove an active code execution context by calling the `removeCodeContext()` method in JavaScript or `remove_code_context()` in Python and passing the context object or context ID.

<CodeGroup>
```js JavaScript & TypeScript
import { Sandbox } from '@e2b/code-interpreter'

const sandbox = await Sandbox.create()
const context = await sandbox.createCodeContext({
cwd: '/home/user',
language: 'python',
requestTimeoutMs: 60_000,
})

// using context object
await sandbox.removeCodeContext(context)

// using context ID
await sandbox.removeCodeContext(context.contextId)
```
```python Python
from e2b_code_interpreter import Sandbox

sandbox = Sandbox.create()
context = sandbox.create_code_context(
cwd='/home/user',
language='python',
request_timeout=60_000,
)

# using context object
sandbox.remove_code_context(context)

# using context ID
sandbox.remove_code_context(context.contextId)
```
</CodeGroup>
2 changes: 1 addition & 1 deletion docs/code-interpreting/streaming.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Streaming"
---

Use E2B SDK allows you to stream the output, and results when executing code in the sandbox.
E2B Code Interpreter SDK allows you to stream the output, and results when executing code in the sandbox.


## Stream `stdout` and `stderr`
Expand Down