https://github.com/e2b-dev/desktop Skip to content Navigation Menu Toggle navigation Sign in * Product + GitHub Copilot Write better code with AI + Security Find and fix vulnerabilities + Actions Automate any workflow + Codespaces Instant dev environments + Issues Plan and track work + Code Review Manage code changes + Discussions Collaborate outside of code + Code Search Find more, search less Explore + All features + Documentation + GitHub Skills + Blog * Solutions By company size + Enterprises + Small and medium teams + Startups By use case + DevSecOps + DevOps + CI/CD + View all use cases By industry + Healthcare + Financial services + Manufacturing + Government + View all industries View all solutions * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} e2b-dev / desktop Public * Notifications You must be signed in to change notification settings * Fork 3 * Star 34 E2B Desktop Sandbox for LLMs. E2B Sandbox with desktop graphical environment that you can connect to any LLM for secure computer use. e2b.dev License Apache-2.0 license 34 stars 3 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 0 * Pull requests 0 * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Security * Insights e2b-dev/desktop main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 72 Commits .changeset .changeset .github .github .vscode .vscode python python template template .gitignore .gitignore .npmrc .npmrc LICENSE LICENSE README.md README.md package.json package.json pnpm-lock.yaml pnpm-lock.yaml pnpm-workspace.yaml pnpm-workspace.yaml screenshot.png screenshot.png View all files Repository files navigation * README * Apache-2.0 license 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 sandbox template's code here. About E2B Desktop Sandbox for LLMs. E2B Sandbox with desktop graphical environment that you can connect to any LLM for secure computer use. e2b.dev Topics gui vm ai desktop computer gpt e2b llm e2b-dev Resources Readme License Apache-2.0 license Activity Custom properties Stars 34 stars Watchers 5 watching Forks 3 forks Report repository Releases No releases published Contributors 2 * @mlejva mlejva Vasek Mlejnsky * @ValentaTomas ValentaTomas Tomas Valenta Languages * Python 68.4% * HTML 19.4% * Dockerfile 10.9% * Shell 1.3% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.