Workflows2026年5月7日·1 分钟阅读

E2B Desktop — Headless Linux Desktop for AI Computer Use

E2B Desktop is a managed cloud Linux desktop with X11, browser, file manager, terminal. Plug into Claude Computer Use or OpenAI's CUA without local Docker.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Needs Confirmation · 66/100策略:需确认
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:New
入口
Asset
通用 CLI 安装命令
npx tokrepo install 8ddcd984-892f-4088-8efe-402414d16f97

简介

E2B Desktop 是托管的云 Linux 桌面 —— 完整 X11 环境、Firefox、终端、文件管理器 —— 通过 VNC 和 SDK 暴露。直接作为 Claude Computer Use 或 OpenAI CUA 的目标环境,不用本地搭 Docker / X11。适合用电脑的 AI agent 的生产部署、每个用户拿到独立桌面的多租户 SaaS。兼容 Python SDK / Claude Computer Use / 任何驱动屏幕+键盘+鼠标的 agent。装机时间 5 分钟。


起一个桌面 sandbox

from e2b_desktop import Sandbox

with Sandbox.create() as desktop:
    # 拿实时 VNC URL(嵌 iframe 或用 VNC viewer 看)
    print(desktop.stream.get_url())

    # 截屏
    screenshot = desktop.screenshot()
    with open("screenshot.png", "wb") as f:
        f.write(screenshot)

    # 驱动鼠标 + 键盘
    desktop.left_click(500, 300)
    desktop.write("hello world")
    desktop.press("Enter")

    # 启动应用
    desktop.launch("firefox", "https://news.ycombinator.com")

配 Claude Computer Use

from anthropic import Anthropic
from e2b_desktop import Sandbox

desktop = Sandbox.create()

response = anthropic.beta.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=4096,
    tools=[
        {
            "type": "computer_20241022",
            "name": "computer",
            "display_width_px": desktop.width,
            "display_height_px": desktop.height,
        }
    ],
    messages=[{"role": "user", "content": "Find the top story on HN, screenshot it"}],
    extra_headers={"anthropic-beta": "computer-use-2024-10-22"},
)

# Claude 每个 tool 调用 —— 在 desktop 上执行:
for content in response.content:
    if content.type == "tool_use" and content.input.get("action") == "screenshot":
        ss = desktop.screenshot()
        # …把 base64 返给 Claude
    elif content.input.get("action") == "left_click":
        x, y = content.input["coordinate"]
        desktop.left_click(x, y)
    # …处理其他动作

多租户模式

# 每个用户独立 sandbox
def get_user_desktop(user_id):
    sandbox = Sandbox.create(timeout=3600)
    sandbox.set_metadata("user_id", user_id)
    return sandbox

# 通过 ID 重连到运行中的 sandbox
sandbox = Sandbox.connect(sandbox_id)

会话跨调用保留 —— 适合「agent 干了点活,返回给用户,现在恢复」这种流。


FAQ

Q: 跟 Open Interpreter OS Mode 啥区别? A: Open Interpreter OS Mode 跑在你的机器上 —— 你的屏幕、你的键盘。E2B Desktop 跑在云上 —— agent 拿到隔离的云桌面,你的机器不参与。OS Mode 适合个人自动化;E2B Desktop 适合生产 / 多租户 SaaS。

Q: 能在桌面里装自定义应用吗? A: 能 —— E2B Desktop 底层是 Ubuntu。跑 desktop.commands.run('apt install --yes <package>'),或用 e2b template build 构建自定义镜像加速冷启动。

Q: 支持音频 / 视频吗? A: VNC 实时流可视桌面。音频还没支持;视频应用可视输出能用。要音频交互就叠一条独立的音频管道。


🙏

来源与感谢

Built by E2B. Licensed under Apache-2.0.

e2b-dev/desktop — ⭐ 1,500+

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产