Midscene.js - AI 驱动,带来愉悦的 UI 自动化体验

视觉模型驱动,支持全平台的 UI 自动化 SDK

📣 v1.0 正式发布公告

我们已发布 v1.0 版本。 目前已在 npm 发布。
最新文档与代码请查看 https://midscenejs.com/ 以及 main 分支。
历史文档请访问 https://v0.midscenejs.com/
v1.0 变更记录: https://midscenejs.com/zh/changelog

功能特性

用自然语言编写自动化脚本

  • 描述你的目标和步骤,Midscene 会为你规划和操作用户界面。
  • 使用 JavaScript SDK 或 YAML 格式编写自动化脚本。

Web & Mobile App & 任意界面

面向开发者

  • 三种类型的 API:
    • 交互 API: 与用户界面交互。
    • 数据提取 API: 从用户界面和 DOM 中提取数据。
    • 实用 API: 实用函数,如 aiAssert() (断言), aiLocate() (定位), aiWaitFor() (等待)。
  • MCP: Midscene 提供 MCP 服务,将 Midscene Agent 的原子操作暴露为 MCP 工具,上层 Agent 可以用自然语言检查和操作界面。文档
  • 使用缓存,提高执行效率: 使用缓存能力重放脚本,提高执行效率。
  • 调试体验: Midscene.js 提供可视化回放报告、内置 Playground 和 Chrome 插件,帮助开发者更高效地定位与排障。

演示案例

在 Web 浏览器中自主注册 Github 表单,通过所有字段校验:

此外还有这些实战案例:

零代码快速体验

视觉语言模型驱动

Midscene.js 在 UI 操作上采用纯视觉(pure-vision)路线:元素定位和交互只基于截图完成。支持视觉语言模型,例如 Qwen3-VLDoubao-1.6-visiongemini-3-progemini-3-flashUI-TARS。在数据提取和页面理解场景中,需要时仍可选择附带 DOM 信息。

  • UI 操作采用纯视觉定位,不再提供 DOM 提取兼容模式。
  • 适用于 Web、移动端、桌面应用,甚至 <canvas> 场景。
  • UI 操作无需 DOM,Token 更少、成本更低、运行更快。
  • 数据提取和页面理解可按需附带 DOM 信息。
  • 支持开源模型,方便自托管。

更多信息请阅读 模型策略

两种自动化风格

自动规划

AI 自主规划执行流程,完成任务

await aiAct('逐一点击所有记录。如果某个记录包含文本"completed",则跳过它');

工作流风格

将复杂逻辑拆分为多个步骤,以提高自动化代码的稳定性。

const recordList = await agent.aiQuery('string[], the record list')
for (const record of recordList) {
  const hasCompleted = await agent.aiBoolean(`check if the record ${record}" contains the text "completed"`)
  if (!hasCompleted) {
    await agent.aiTap(record)
  }
}

有关工作流风格的更多详细信息,请参阅 使用 JavaScript 优化 AI 自动化代码

资源

社区

致谢

我们要感谢以下项目:

License

Midscene.js 使用 MIT 许可协议