Open Computer Use (E2B cloud desktop)
An open-model agent that operates an isolated cloud desktop through keyboard, mouse, and shell actions.
- Source repo
- e2b-dev/open-computer-use
- Stars
- ★ 2.4k
- Last updated
- 16d ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 44/100 · Major gaps
At a glance
- How it runs
- Works with
- Platform-specificOpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer who needs an LLM to operate keyboard, mouse, and shell controls inside an isolated cloud Ubuntu desktop.
- Not a fit if
- Users who cannot obtain an E2B API key or register separate accounts for multiple model providers
- Windows or macOS users who need documented, supported installation instructions
- Source review
- 44/100 · Major gaps
What does this agent do, and when should you use it?
Open Computer Use is a cloud Linux computer powered by E2B Desktop Sandbox and controlled by open-source LLMs. The agent operates the sandbox through keyboard, mouse, and shell commands, while its display is live-streamed to the client computer. It includes a web interface where users can pause the agent and provide another prompt at any time. Ubuntu is the documented operating system, although the project says the design is intended to work with other operating systems. Model selection is configured in os_computer_use/config.py, with provider integrations defined in providers.py.
After receiving a prompt, the agent controls the cloud Linux computer supplied by E2B Desktop Sandbox using keyboard, mouse, and shell commands, and streams the sandbox display to the client. A user can pause execution and send an additional prompt. os_computer_use/config.py selects the models, for example with providers.OSAtlasProvider() for grounding and providers.GroqProvider("llama3.2") or providers.GroqProvider("llama3.3") for vision and actions. The documented providers in providers.py include Fireworks, OpenRouter, Llama API, Groq, DeepSeek, Google, OpenAI, Anthropic, HuggingFace Spaces, Moonshot, and Mistral AI.
- A developer who needs an LLM to operate keyboard, mouse, and shell controls inside an isolated cloud Ubuntu desktop.
- An operator who wants to watch the remote desktop live and interrupt the agent when a task needs correction.
- A team evaluating Groq, OpenAI, Anthropic, Gemini, or another documented provider by changing model configuration in config.py.
- A researcher experimenting with OS-Atlas or ShowUI as the agent's grounding model.
- A user who wants to start the web interface with an initial CLI prompt, such as asking the agent to use a web browser for a weather lookup.
How do you install or deploy this agent?
Prerequisites are Python 3.10 or later, git, an E2B API key, and an API key for the selected LLM provider. Install Poetry and ffmpeg with: brew install poetry ffmpeg. Clone the project with: git clone https://github.com/e2b-dev/open-computer-use/. Enter it with: cd open-computer-use. Create a .env file containing E2B_API_KEY="your-e2b-api-key", then add the key required by the provider selected in config.py, such as GROQ_API_KEY, OPENAI_API_KEY, or ANTHROPIC_API_KEY. For HuggingFace Spaces, the documented setup requires HF_TOKEN to bypass Gradio rate limits. Run: poetry install.
How do you use this agent?
From the project directory, run: poetry run start. This starts the web interface, which opens and asks for the first instruction. To supply one at launch, run: poetry run start --prompt "use the web browser to get the current weather in sf". The sandbox display stream should appear a few seconds after the Python program starts. Change grounding_model, vision_model, and action_model in os_computer_use/config.py as needed, and ensure the matching provider credentials are in .env.
What are this agent's strengths and limitations?
- Uses E2B Desktop Sandbox for an isolated cloud Linux desktop and live-streams that desktop to the client.
- Separates grounding, vision, and action model configuration, enabling documented provider and model combinations in config.py.
- Documents grounding support for OS-Atlas and ShowUI alongside multiple API-based model providers.
- Users can pause the agent and send another prompt while it is operating the computer.
- Core operation depends on E2B Desktop Sandbox and requires an E2B API key.
- Except for HuggingFace Spaces, selected model providers require separate API credentials, adding account, billing, and secret-management overhead.
- The documented setup uses brew and requires Poetry and ffmpeg; equivalent instructions for other installation environments are not supplied.
- Ubuntu is the explicitly documented operating system; support details for other operating systems are not provided.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Open Computer Use (E2B cloud desktop) This agent | 44 · Major gaps | CLIFree + model costs | ★ 2.4k | 16d ago | Python | OpenAI API · Claude API |
| Open Computer Use (MCP desktop service) | 79 · Good | CLIFree + model costs | ★ 2.9k | 1d ago | Swift | Codex · Claude Code |
| Hermes Agent | 74 · Some gaps | CLIFree + model costs | ★ 262k | today | Python | OpenAI API |
| Clawd Cursor | 72 · Some gaps | MCP serverFree + model costs | ★ 407 | today | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The README describes the E2B Desktop Sandbox, keyboard/mouse/shell operation, multiple model providers, and a user pause-and-prompt feature. main.py opens a VNC client and attempts to terminate the sandbox in a finally block. This provides limited evidence of isolation, visibility, and a stop mechanism, supporting scores of 1 on those criteria. The supplied material does not show permission configuration, sensitive-data policies, per-action confirmation, or recovery procedures; sandboxing alone does not remove the external effects of agent actions. Dependency security is also only supported by version ranges in pyproject.toml, with no lockfile or review evidence, so it scores 1. The README credits and links E2B, model providers, and related projects, earning 2 for source attribution; maintainer identity and update responsibility remain unclear.
main.py prints agent errors and returns to the prompt, but offers limited handling or reporting for failures during setup, so failure_messages scores 1. The README's live-display description does not fully match the VNC flow currently started in main.py, and a code comment identifies an ffmpeg limitation for a particular desktop image; these visible inconsistencies keep self_consistency at 1. The README lists Python, Poetry, ffmpeg, E2B, and model-key requirements, but provides no evidence about availability or alternatives, so dependency_availability scores 1.
The README describes natural-language desktop operation, model swapping, several providers, and a startup example. That gives ordinary audiences and scenarios some coverage, earning 2 for audience_and_scenarios. It does not adequately define permitted actions, stopping conditions, or high-risk task boundaries, so capability_boundaries and trigger_precision each score 1. Although the README claims the design can work with different operating systems, the installation uses macOS brew and the code refers to Ubuntu and desktop-image behavior; evidence for environment fit is limited, scoring 1.
The README organizes features, design, model support, and setup, with links to configuration and provider files, earning 2 for information_architecture. Setup covers key prerequisites and commands but only demonstrates brew, without platform guidance or troubleshooting, so install_notes scores 1. Project, package, and script names are mostly consistent in the supplied files, earning 2 for naming_stability. There is a short startup example but no FAQ, so examples_and_faq scores 1. The README and code comments reveal some limitations, but there is no comprehensive known-limitations section, so known_limitations scores 1. LICENSE contains the full Apache 2.0 terms, earning 3. pyproject.toml states version 0.1.0, but no changelog is included in the supplied material, so versioning_changelog scores 1. The README invites provider-change PRs, but maintenance responsibility and update paths are otherwise limited, so maintenance_responsibility scores 1.
The product offers desktop operation, VNC viewing, model selection, and prompt input. The README provides startup commands, while main.py creates an output directory and handles Ctrl-C, giving output_usability a score of 2. Connecting models to a graphical desktop in a sandbox with visible screen access provides a clear capability beyond ordinary model chat, earning 2 for marginal_value. Cost-benefit evidence is limited to the required E2B and at least one model-provider API key; the supplied material gives no cost, resource-use, or performance information, so cost_benefit scores 1.
The README's setup requirements, provider list, and main operation descriptions can be partially checked against dependencies in pyproject.toml and the startup flow in main.py, earning 2 for claim_traceability. Cross-source support is limited, and the README's display-stream description differs from the VNC flow in main.py, so cross_source_corroboration scores 1. The documentation names concrete features and dependencies, but some security, cross-platform, and model-support claims are not sufficiently verified by the supplied code; the materials also do not clearly distinguish implemented behavior from design intent, so fact_inference_separation scores 1.
- The agent can use the sandbox's keyboard, mouse, and shell. Before use, confirm that the visible screen, model provider, and API keys are appropriate for the data involved.
- The supplied material does not show per-action confirmation, sensitive-data policies, or recovery procedures. Terminating a sandbox does not reverse external effects that have already occurred.
FAQ
Which credentials are required?
What can the agent control?
Can I intervene while it runs?
Can I use OpenAI or Anthropic models?
Thanks — we use this to improve the page.