Peekaboo Bridge 是由 OpenClaw.app 托管的 macOS UI 自动化代理,使 peekaboo CLI 能够复用应用的 TCC 权限。
概述
OpenClaw.app 可以充当 PeekabooBridge 主机,为命令行工具提供 UI 自动化权限的桥接服务。这使得 peekaboo CLI 无需单独申请权限,即可复用 OpenClaw 应用已获得的 TCC(透明同意与控制)权限。
核心特性
安全机制
- 代码签名验证: 验证客户端的代码签名
- 超时保护: 10 秒操作超时
- 内存快照: 使用内存中的快照,不写入磁盘
- TeamID 白名单: 强制执行 TeamID 允许列表
权限复用
Peekaboo CLI 通过桥接访问以下权限:
- 屏幕录制
- 辅助功能
- UI 元素访问
启用 Peekaboo Bridge
在 OpenClaw 中启用
- 打开 OpenClaw 应用
- 进入设置(Settings)
- 找到并启用 "Enable Peekaboo Bridge" 选项
主机发现顺序
Peekaboo CLI 按以下顺序查找可用的桥接主机:
- Peekaboo.app
- Claude.app
- OpenClaw.app
使用方法
检查桥接状态
# 查看桥接状态
peekaboo bridge status
# 查看详细信息
peekaboo bridge status --verbose
基本操作
# 捕获屏幕快照
peekaboo capture
# 获取 UI 元素树
peekaboo tree
# 点击指定元素
peekaboo click --element "Button Name"
错误处理
权限错误
如果遇到权限问题,不会弹出系统设置提示,而是显示清晰的错误信息:
- 检查 OpenClaw.app 是否已授予必要权限
- 确认已在设置中启用 Peekaboo Bridge
- 验证客户端的代码签名
"bridge client is not authorized"
此错误表示客户端未被授权。解决方法:
- 验证客户端代码签名:
codesign -dv /path/to/peekaboo - 确认 TeamID 在白名单中
- 调试模式: 设置环境变量(仅限调试):
export PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1
安全警告
仅在调试环境中使用
PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1。在生产环境中启用此选项会降低安全性。
常见问题排查
找不到桥接主机
- 确认 OpenClaw.app 正在运行
- 检查设置中是否启用了 Peekaboo Bridge
- 使用
--verbose查看详细的连接信息
连接超时
- 操作超时时间为 10 秒
- 检查网络连接和进程间通信
- 查看系统日志获取详细错误
权限被拒绝
- 打开系统设置 → 隐私与安全性
- 确认 OpenClaw.app 已获得:
- 辅助功能权限
- 屏幕录制权限
- 重启 OpenClaw.app 使权限生效
开发指南
集成到自定义应用
如果要在自己的应用中集成 Peekaboo Bridge:
- 实现 PeekabooBridge 协议
- 配置代码签名和 TeamID
- 实现超时和安全检查
- 参考 OpenClaw 的实现示例
安全最佳实践
- 始终验证客户端代码签名
- 使用 TeamID 白名单限制访问
- 实施操作超时保护
- 使用内存快照,避免敏感数据落盘
- 记录所有桥接操作用于审计