Clawdbot macOS 應用程式

Clawdbot macOS 配套應用程式提供選單列整合、權限管理以及 AI 助手的原生 macOS 功能。

Clawdbot macOS 配套程式概覽

Clawdbot macOS 應用程式是 Clawdbot 的選單列配套程式。它擁有權限、管理/連接本機 Gateway(launchd 或手動),並將 macOS 功能以節點形式開放給代理。

功能說明

  • 在選單列顯示原生通知和狀態
  • 擁有 TCC 提示(通知、輔助使用、螢幕錄製、麥克風、語音辨識、自動化/AppleScript)
  • 執行或連接 Gateway(本機或遠端)
  • 開放 macOS 專屬工具(Canvas、相機、螢幕錄製、system.run)
  • 管理本機節點主機服務
  • 依需求透過 npm/pnpm 安裝全域 CLI(clawdbot

本機模式 vs 遠端模式

模式說明
本機(預設)應用程式連接執行中的本機 Gateway;若需要則啟用 launchd 服務
遠端應用程式透過 SSH/Tailscale 連接 Gateway;啟動本機節點主機服務

應用程式不會將 Gateway 作為子程序產生。

Launchd 控制

應用程式管理標記為 bot.molt.gateway(或使用 --profile 時為 bot.molt.<profile>)的每用戶 LaunchAgent。

# 重新啟動 gateway
launchctl kickstart -k gui/$UID/bot.molt.gateway

# 停止 gateway
launchctl bootout gui/$UID/bot.molt.gateway

如果 LaunchAgent 未安裝,請從應用程式啟用或執行:

clawdbot gateway install

節點功能(macOS)

macOS 應用程式以節點形式呈現,具有以下功能:

類別指令
Canvascanvas.presentcanvas.navigatecanvas.evalcanvas.snapshot
相機camera.snapcamera.clip
螢幕screen.record
系統system.runsystem.notify

節點會回報權限對應表,讓代理可以決定允許哪些操作。

執行核准(system.run)

system.run 由 macOS 應用程式中的執行核准控制(設定 → 執行核准)。

設定儲存於:

~/.clawdbot/exec-approvals.json

設定範例:

{
  "version": 1,
  "defaults": {
    "security": "deny",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [{"pattern": "/opt/homebrew/bin/rg"}]
    }
  }
}

注意:

  • 允許清單項目是已解析二進位路徑的 glob 模式
  • 在提示中選擇「永遠允許」會將該指令加入允許清單

深度連結

應用程式註冊 clawdbot:// URL scheme 用於本機操作。

clawdbot://agent

觸發 Gateway 代理請求:

open 'clawdbot://agent?message=Hello%20from%20deep%20link'

查詢參數:

參數說明
message必填 - 要傳送的訊息
sessionKey選填 - session 識別碼
thinking選填 - 啟用思考模式
deliver / to / channel選填 - 傳遞目標
timeoutSeconds選填 - 請求逾時
key選填 - 無人值守模式金鑰

安全性: 若無 key,應用程式會提示確認。

引導流程

  1. 安裝並啟動 Clawdbot.app
  2. 完成權限檢查清單(TCC 提示)
  3. 確保本機模式已啟動且 Gateway 正在執行
  4. 如需終端機存取,請安裝 CLI

建置與開發流程

cd apps/macos && swift build
swift run Clawdbot  # 或使用 Xcode

# 打包應用程式
scripts/package-mac-app.sh

除錯 Gateway 連線

使用除錯 CLI 測試 Gateway WebSocket 握手:

cd apps/macos
swift run clawdbot-mac connect --json
swift run clawdbot-mac discover --timeout 3000 --json

連接選項:

選項說明
--url <ws://host:port>覆寫設定
--mode <local|remote>從設定解析
--probe強制新的健康探測
--timeout <ms>請求逾時(預設:15000)
--json結構化輸出

遠端連接(SSH 通道)

遠端 Gateway 存取:

# 控制通道(Gateway WebSocket 埠)
ssh -N -L 18789:127.0.0.1:18789 user@host

後續步驟