E2B SDK that give agents cloud environments
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
# You can use some of the predefined environments by using specific id:
# 'Nodejs', 'Bash', 'Python3', 'Java', 'Go', 'Rust', 'PHP', 'Perl', 'DotNET'
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 inside cloud environment
term = await session.terminal.start(
on_data=lambda data: print("Data", data),
on_exit=lambda: print("Exit"),
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.kill()
Get public hostname for an exposed port inside cloud environment
# Get hostname for port 3000. The hostname is without the protocol (http://).
hostname = 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.9.tar.gz
(41.0 kB
view hashes)
Built Distribution
e2b-0.1.9-py3-none-any.whl
(72.2 kB
view hashes)