Clawdbot macOS 应用
Clawdbot macOS 配套应用提供菜单栏集成、权限管理和原生 macOS 功能,为您的 AI 助手服务。
Clawdbot macOS 配套应用概述
Clawdbot macOS 应用是 Clawdbot 的菜单栏配套应用。它管理权限,本地管理/连接网关(launchd 或手动),并将 macOS 功能作为节点暴露给代理。
功能
- 在菜单栏显示原生通知和状态
- 管理 TCC 提示(通知、辅助功能、屏幕录制、麦克风、语音识别、自动化/AppleScript)
- 运行或连接到网关(本地或远程)
- 暴露 macOS 专属工具(Canvas、相机、屏幕录制、system.run)
- 管理本地节点主机服务
- 按需通过 npm/pnpm 安装全局 CLI(
clawdbot)
本地 vs 远程模式
| 模式 | 描述 |
|---|---|
| 本地(默认) | 应用连接到运行中的本地网关;如需要则启用 launchd 服务 |
| 远程 | 应用通过 SSH/Tailscale 连接到网关;启动本地节点主机服务 |
应用不会将网关作为子进程启动。
Launchd 控制
应用管理每用户的 LaunchAgent,标签为 bot.molt.gateway(使用 --profile 时为 bot.molt.<profile>)。
# 重启网关
launchctl kickstart -k gui/$UID/bot.molt.gateway
# 停止网关
launchctl bootout gui/$UID/bot.molt.gateway如果 LaunchAgent 未安装,从应用启用或运行:
clawdbot gateway install节点功能(macOS)
macOS 应用作为节点呈现,具有以下功能:
| 类别 | 命令 |
|---|---|
| Canvas | canvas.present、canvas.navigate、canvas.eval、canvas.snapshot |
| 相机 | camera.snap、camera.clip |
| 屏幕 | screen.record |
| 系统 | system.run、system.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 方案用于本地操作。
clawdbot://agent
触发网关代理请求:
open 'clawdbot://agent?message=Hello%20from%20deep%20link'查询参数:
| 参数 | 描述 |
|---|---|
message | 必需 - 要发送的消息 |
sessionKey | 可选 - 会话标识符 |
thinking | 可选 - 启用思考模式 |
deliver / to / channel | 可选 - 投递目标 |
timeoutSeconds | 可选 - 请求超时 |
key | 可选 - 无人值守模式密钥 |
安全性: 没有 key 时,应用会提示确认。
引导流程
- 安装并启动 Clawdbot.app
- 完成权限检查清单(TCC 提示)
- 确保本地模式激活且网关正在运行
- 如需终端访问,安装 CLI
构建和开发工作流
cd apps/macos && swift build
swift run Clawdbot # 或使用 Xcode
# 打包应用
scripts/package-mac-app.sh调试网关连接
使用调试 CLI 测试网关 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 隧道)
远程网关访问:
# 控制隧道(网关 WebSocket 端口)
ssh -N -L 18789:127.0.0.1:18789 user@host下一步
- Clawdbot Linux - Linux 设置
- Clawdbot Windows - Windows WSL2 设置
- Clawdbot 网关 - 网关配置