Skip to main content

E2B Desktop Sandbox - Deskstop sandbox in cloud powered by E2B

Project description

E2B Desktop Sandbox (beta)

E2B Desktop Sandbox is an isolated cloud environment with a desktop-like interface powered by E2B.

Launching E2B Sandbox takes about 300-500ms. You can customize the desktop environment and preinstall any dependencies you want using our custom sandbox templates.

Desktop Sandbox

Work in progress This repository is a work in progress. We welcome feedback and contributions. Here's the list of features we're working on:

  • JavaScript SDK
  • Streaming live desktop
  • Tests
  • Docstrings

Getting started

The E2B Desktop Sandbox is built on top of E2B Sandbox.

1. Get E2B API key

Sign up at E2B and get your API key. Set environment variable E2B_API_KEY with your API key.

2. Install SDK

Python

pip install e2b-desktop

JavaScript

Coming soon

3. Create Desktop Sandbox

from e2b_desktop import Sandbox

desktop = Sandbox()

Features

Mouse control

from e2b_desktop import Sandbox
desktop = Sandbox()

desktop.double_click()
desktop.left_click()
desktop.right_click()
desktop.middle_click()
desktop.scroll(10) # Scroll by the amount. Positive for up, negative for down.
desktop.mouse_move(100, 200) # Move to x, y coordinates

Locate on screen

from e2b_desktop import Sandbox
desktop = Sandbox()

# Find "Home" text on the screen and return the coordinates
x, y = desktop.locate_on_screen("Home")
# Move the mouse to the coordinates
desktop.mouse_move(x, y)

Keyboard control

from e2b_desktop import Sandbox
desktop = Sandbox()

desktop.write("Hello, world!") # Write text at the current cursor position
desktop.hotkey("ctrl", "c") # Press ctrl+c

Screenshot

from e2b_desktop import Sandbox
desktop = Sandbox()

# Take a screenshot and save it as "screenshot.png" locally
desktop.screenshot("screenshot.png")

Open file

from e2b_desktop import Sandbox
desktop = Sandbox()

# Open file with default application
desktop.files.write("/home/user/index.js", "console.log('hello')") # First create the file
desktop.open("/home/user/index.js") # Then open it

Run any bash commands

from e2b_desktop import Sandbox
desktop = Sandbox()

# Run any bash command
desktop.commands.run("ls -la /home/user")

Run PyAutoGUI commands

from e2b_desktop import Sandbox
desktop = Sandbox()

# Run any PyAutoGUI command
desktop.pyautogui("pyautogui.click()")

Under the hood

You can use PyAutoGUI to control the whole environment programmatically.

The desktop-like environment is based on Linux and Xfce at the moment. We chose Xfce because it's a fast and lightweight environment that's also popular and actively supported. However, this Sandbox template is fully customizable and you can create your own desktop environment. Check out the code here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

e2b_desktop-1.0.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

e2b_desktop-1.0.2-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file e2b_desktop-1.0.2.tar.gz.

File metadata

  • Download URL: e2b_desktop-1.0.2.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.20 Linux/5.15.0-1074-azure

File hashes

Hashes for e2b_desktop-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d33dbe5a75acd92376f65f567967b61e7e1c552a517f343067795e06e52ccc0e
MD5 cf2d58d8290129f16a8b597ff54306e5
BLAKE2b-256 d4a759d061670844f75610bf93a3c38655d448ca7da7fd3ddddebe56abb4667d

See more details on using hashes here.

File details

Details for the file e2b_desktop-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: e2b_desktop-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.20 Linux/5.15.0-1074-azure

File hashes

Hashes for e2b_desktop-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b25f2626b9112b73844dccabf84dc8e55046859a6aa32fea31f8472439c69a98
MD5 d273c7fd09b5132925efb4c9f847a04b
BLAKE2b-256 841a4a25e61039053a2b721b98c76ea03ff0d6b5a6f83498824fb7ce2302653f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page