steve
使用 Accessibility API 自动化 macOS 应用程序,适用于确定性 UI 控制、自动化测试及 AI 代理脚本编写。
简介
Steve 是一款为 macOS 设计的强大命令行工具,它利用 Accessibility API 为桌面应用程序提供确定性且可编写脚本的控制能力。它专为开发人员、自动化工程师以及需要以编程方式与窗口、菜单、按钮和文本字段等 GUI 元素交互的 AI 代理而量身打造。通过提供结构化的 JSON 输出和可靠的元素识别,Steve 消除了 GUI 自动化中常见的不确定性,从而实现了稳健的 UI 烟雾测试和复杂的工作流程编排。
-
精确的 UI 目标定位:使用应用程序名称、进程 ID (PID)、包标识符 (Bundle ID) 或窗口标题来有效设定指令范围。
-
强大的元素发现功能:透过文本匹配、标识符、角色或坐标来定位 UI 元素,确保与复杂应用程序布局的兼容性。
-
丰富的交互集合:执行点击、文字输入、键盘快捷键、滚动和菜单导航,并支持可选的窗口启动和最前端应用程序修饰符。
-
状态监控与断言:使用内置指令验证应用程序状态(如检查存在性、值或元素状态),并使用等待机制来处理异步的 UI 更新。
-
快照与差异比较工具:将应用程序状态树捕获为 JSON 格式,并比较快照以侦测 UI 回归或布局变更。
-
结构化报告:每个操作都提供一致的 JSON 响应,便于整合进 CI/CD 流水线和编程化的代理决策流程。
-
用户必须授予终端或执行环境 Accessibility 权限,Steve 才能正常运作。
-
强烈建议优先使用基于元素识别(使用 --text 或 --title)的方法,而非直接使用屏幕坐标,以确保脚本在不同分辨率下的稳定性。
-
交互结果与错误分别输出至标准输出 (stdout) 与标准错误 (stderr),并提供特定的退出代码以处理超时或权限错误。
-
虽然 Steve 在确定性 UI 任务方面表现出色,但元素 ID 仅在单次会话内稳定,在应用程序重启后可能会发生变更。
-
本工具非常适合在自动化测试套件中驱动 macOS 应用程序,执行重复性的桌面任务,或赋能 AI 代理在图形环境中执行操作。
仓库统计
- Star 数
- 161
- Fork 数
- 6
- Open Issue 数
- 3
- 主要语言
- Swift
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年5月1日 09:54