Skills2026年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 dry-run、列出写入项,确认后再继续。

Needs Confirmation · 66/100策略:需确认
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:Community
入口
Asset
先审查命令
npx -y tokrepo@latest install 8ddcd984-892f-4088-8efe-402414d16f97 --target codex

先 dry-run,确认写入项后再运行此命令。

简介

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+

讨论

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

相关资产