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等)需要一种可靠的方式来闭合感知-行动循环:
- 捕获 屏幕(或特定窗口)→ 将图像输入视觉模型。
- 决策 基于模型输出决定下一步操作。
- 执行 通过移动鼠标、点击、输入等方式行动。
- 重复。
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;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目