開源 · MIT · macOS

讓 agent 操作你的 Mac

終端裡的 agent 會改程式碼,卻看不到你開著的 Safari 分頁,也按不到別的 app 裡的按鈕。Cueward 是一個 CLI,讓 agent 觀察並操作 macOS app、Safari、Apple 內建 app 與檔案,輸出 agent 能直接用的 JSON。

能做什麼

在背景操作 app

列出各個 Space 的視窗、讀取視窗的輔助使用樹,按按鈕、填文字欄位、打字、送按鍵、捲動、點擊、拖曳。Cueward 不會移動你的游標,也不會把 app 切到前景,agent 操作別的視窗時你可以繼續工作。

等待與確認

等待元素出現、變成可按或達到指定值,比對動作前後的視窗截圖,也能啟動 app、把視窗移到其他 Space。

Safari

在你已登入的 Safari 裡讀取分頁、頁面文字與原始碼,執行 JavaScript、點擊、填寫、等待、檢查元素,讀取 console 與網路紀錄,管理書籤。

透過 Safari 用 ChatGPT 與 Gemini

用你自己已登入的 Safari 送出 prompt、啟動 Gemini Deep Research、讀取對話內容、儲存生成的圖片。

備忘錄、提醒事項、行事曆

新增、修改、刪除備忘錄、提醒事項與行事曆事件,也支援快速備忘錄與便條紙;可讀取語音備忘錄資訊。提醒事項與行事曆透過 EventKit 讀取。

檔案

限定範圍的瀏覽、分段讀取、搜尋、Spotlight、預覽、Finder 標籤與 iCloud 狀態。複製、搬移、重新命名、批次重新命名與丟到垃圾桶都會先檢查版本並保留驗證過的備份,不會永久刪除。

螢幕、OCR 與剪貼簿

擷取整個螢幕或單一視窗,用 Vision OCR 從圖片與 PDF 取出文字(繁中、簡中、英文、日文),讀寫剪貼簿。

本機記憶與捷徑

擷取近期的 Safari、備忘錄與訊息內容,加上標籤後從本機索引搜尋。從 CLI 或規格檔建立、修改、執行 Apple 捷徑。透過公開 JSON 讀取 Reddit。

運作方式

  • 使用 macOS 原生 API:輔助使用、SQLite 讀取、AppleScript、EventKit、Vision OCR 與捷徑。
  • 本機優先:本機資料在你的 Mac 上讀取,沒有爬取代理,也沒有第三方資料後端。操作 ChatGPT、Gemini 或 Reddit 的指令會連到這些服務。
  • Cueward 不呼叫任何 LLM,只輸出 JSON,由你的 agent 決定下一步。
  • 每個動作都回報結果狀態。無法確認效果時會明說,agent 先重新觀察再決定要不要重試。

目前的限制

  • 只支援 macOS,Windows adapter 尚未發佈。
  • 背景操作視窗需要「輔助使用」權限與 Swift 工具鏈。純 canvas 的 app、鎖定畫面,以及部分首次點擊或非作用中 Space 的情況尚未驗證。
  • 可用指令依安裝版本而定,請用 cueward --help 確認。

安裝

需要 macOS 與 Rust 1.88 以上。

cargo install cueward-cli --locked
cueward doctor

cueward doctor 會列出缺少的權限。執行 Cueward 的終端 app 需要「完整磁碟取用權限」;備忘錄、提醒事項、行事曆與 Finder 另需「自動化」權限,操作視窗需要「輔助使用」權限。

Agent skill

Repo 內附 cueward-agent skill,供 Claude Code 與 Codex 使用,告訴 agent 哪個指令適合手上的任務,以及怎麼確認結果。Skill 只有說明,CLI 要另外安裝。

可以搭配 Termdock,但不需要它

Cueward 是 Termdock 團隊的獨立專案,沒有內建在 Termdock app 裡。Termdock 終端裡的 agent 能呼叫它,Terminal.app、iTerm2、WezTerm 裡的 agent 也可以。