remorses/usecomputer

Fast computer automation CLI for AI agents. Control any desktop with screenshots, clicks, typing, scrolling, and more.

usecomputer – AI代理人的桌面自动化CLI

是什么 – usecomputer 是一个跨平台命令行工具(以及配套的npm库),让AI代理能够与真实计算机屏幕进行交互。它可以截取屏幕、移动鼠标、点击、拖拽、滚动、输入文本、按下快捷键,甚至流式传输全局输入事件。其核心由原生Zig后端完成,安装后无需Node.js运行时即可运行。

对AI为何重要 – 现代的“计算机使用代理”(Claude、OpenAI、Anthropic、OpenCode等)需要一种可靠的方式来闭合感知-行动循环:

  1. 捕获 屏幕(或特定窗口)→ 将图像输入视觉模型。
  2. 决策 基于模型输出决定下一步操作。
  3. 执行 通过移动鼠标、点击、输入等方式行动。
  4. 重复。 usecomputer 提供了完全匹配该循环的CLI命令和TypeScript API,并配备一个 coord-map 系统,可将截图像素坐标准确映射回真实屏幕坐标,彻底消除常见的“偏移几像素”问题。

核心功能

  • 截图:支持全屏或窗口范围截图,自动缩放(最大1568px),并返回一个coordMap字符串,记录截图空间与屏幕空间的映射关系。
  • 鼠标:移动、点击(单击/双击)、拖拽(直线或二次贝塞尔曲线)、滚动。
  • 键盘:type(支持可选延迟、stdin流式输入、分块处理)和press(用于单个键或组合快捷键)。
  • 观察:通过Server-Sent Events(SSE)流式传输所有鼠标/键盘事件——对需要监控用户行为的代理非常有用。
  • 原生Zig后端:安装后无需Node.js运行时。
  • 跨平台:支持macOS、Linux(X11/XWayland)和Windows(仅交互式桌面)。目前全局事件observe命令仅支持macOS。
  • 代理友好型图形:当设置AGENT_GRAPHICS=kitty时,截图将通过Kitty Graphics Protocol以内联方式输出,使OpenCode等代理无需额外文件读取即可接收图像。
  • 库API:npm包镜像CLI的原生函数(screenshot、click、mouseMove、type、press、observe等),并提供TypeScript类型,支持强编辑器提示。

典型工作流

# 1️⃣ 捕获屏幕(或窗口)并获取coord-map
usecomputer screenshot ./screen.png --json
# → {"path":"./screen.png","coordMap":"0,0,1600,900,1568,882",…}

# 2️⃣ 将PNG输入你的视觉模型(如Claude、OpenAI等)
#    模型返回一个操作,例如在(400,220)处点击

# 3️⃣ 使用相同的coord-map执行操作
usecomputer click -x 400 -y 220 --coord-map "0,0,1600,900,1568,882"

相同模式适用于拖拽、滚动或输入操作。

安装

npm install -g usecomputer   # 安装CLI和TypeScript库

在macOS上需授予终端辅助功能和输入监控权限;在Linux上需确保设置了X11 DISPLAY;在Windows上需在交互式桌面会话中运行。

从代码中使用(TypeScript示例)

import * as usecomputer from 'usecomputer'

const shot = await usecomputer.screenshot({ path: './tmp.png', display: null, window: null, region: null, annotate: null })
const map = usecomputer.parseCoordMapOrThrow(shot.coordMap)
const point = usecomputer.mapPointFromCoordMap({ point: { x: 400, y: 220 }, coordMap: map })
await usecomputer.click({ point, button: 'left', count: 1 })

所有函数均接受null作为可选原生字段,与CLI的参数结构完全一致。

谁应该使用它

  • 开发需要控制桌面的AI代理的开发者(计算机使用工具、自主助手、RPA风格机器人)。
  • 实验视觉-语言模型在GUI上执行操作的研究人员。
  • 任何希望使用轻量级、可脚本化方式自动化macOS/Linux/Windows,而无需重型UI自动化框架的人。

相关生态系统

  • npx skills add remorses/usecomputer 可为OpenCode等代理注册一个技能,教会它们“截图→行动→截图”的循环。
  • kitty-graphics-agent 插件可自动设置AGENT_GRAPHICS=kitty,使截图直接出现在LLM的上下文窗口中。
  • README中提供了OpenAI、Anthropic和OpenCode的示例集成,展示如何将模型的工具调用转换为usecomputer操作。

以上所有细节均直接取自仓库的README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目