自动化
steve avatar

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
在 GitHub 查看