SDK for managing e2b environment sessions
Project description
E2B Python SDK
The E2B Python SDK provides an interface for managing cloud environments for AI agents.
This SDK gives your agent a full cloud development environment that's sandboxed. That means:
- Access to Linux OS
- Using filesystem (create, list, and delete files and dirs)
- Run processes
- Sandboxed - you can run any code
- Access to the internet
These cloud environments are meant to be used for agents. Like a sandboxed playgrounds, where the agent can do whatever it wants.
Installation
pip install e2b
Usage
Initialize new cloud environment session
from e2b import Session
session = Session(id="Nodejs", on_scan_ports=lambda ports: print("Open ports", ports))
# Start a session and create a connection to it
await session.open()
...
# Close the session after you are done
await session.close()
Use filesystem inside cloud environment
# List
dir_b_content = await session.filesystem.list("/dirA/dirB")
# Write
# This will create a new file "file.txt" inside the dir "dirB" with the content "Hello world".
await session.filesystem.write("/dirA/dirB/file.txt", "Hello World")
# Read
file_content = await session.filesystem.read("/dirA/dirB/file.txt")
# Remove
# Remove a file.
await session.filesystem.remove("/dirA/dirB/file.txt")
# Remove a directory and all of its content.
await session.filesystem.remove("/dirA")
# Make dir
# Creates a new directory "dirC" and also "dirA" and "dirB" if those directories don"t already exist.
await session.filesystem.make_dir("/dirA/dirB/dirC")
# Watch dir for changes
watcher = session.filesystem.watch_dir("/dirA/dirB")
watcher.add_event_listener(lambda e: print("Event", e))
await watcher.start()
Start process inside cloud environment
proc = await session.process.start(
cmd="echo Hello World",
on_stdout=on_stdout,
on_stderr=on_stderr,
on_exit=lambda: print("Exit"),
rootdir="/code",
)
await proc.send_stdin("\n")
print(proc.process_id)
await proc.kill()
# Wait for process to finish
await proc.finished
Create interactive terminal cloud environment
term = await session.terminal.create_session(
on_data=lambda data: print("Data", data),
cols=80,
rows=24,
rootdir="/code",
# If you specify a command, the terminal will be closed after the command finishes.
# cmd="echo Hello World",
)
await term.send_data("echo 1\n")
await term.resize(80, 30)
print(term.terminal_id)
await term.destroy()
Get public URL for an exposed port inside cloud environment
# Get URL for port 3000. The URL is without the protocol (http://).
url = await session.get_hostname(3000)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
e2b-0.1.0.tar.gz
(38.8 kB
view hashes)
Built Distribution
e2b-0.1.0-py3-none-any.whl
(69.4 kB
view hashes)