自動化
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 查看