☰
【openclaw部署与使用之问题速查速决系列】openclaw升级后Peekaboo在macOS上的安装与授权配置速查
2026/9/26 19:49:42 网站建设 项目流程

1. openclaw 升级后 Peekaboo 为什么突然不干活了

如果你在 macOS 上把 openclaw 从旧版本升上来,大概率会遇到一个很割裂的现象:终端里敲peekaboo permissions一切正常,屏幕录制和辅助功能都显示 Granted,但 openclaw 一调用 Peekaboo 就报权限缺失,或者干脆静默失败。这不是你装错了,而是升级过程中二进制路径、签名身份、TCC 授权记录三者对不上导致的。

openclaw 本身是一个本地运行的自动化代理框架,升级后它会重新拉取依赖、迁移配置,Peekaboo 作为负责屏幕捕获和 UI 交互的组件,往往会被重新安装到新的路径下。macOS 的隐私授权(TCC)是按「可执行文件路径 + 签名」来记账的,路径一变,之前给旧 Peekaboo 的授权就失效了,但系统设置里可能还残留着旧条目,看起来像授权了,实际新进程拿不到。

这篇速查面向本地部署用户,重点解决三件事:升级后 Peekaboo 怎么正确安装、授权链路怎么重新打通、以及怎么用统一的 API 通道把模型调用接进来验证整条链路。我会给出可直接复制的config.toml和settings.json骨架,并附上授权状态与连通性的验证动作。适合已经跑过 openclaw、现在卡在权限或模型接入上的同学。

2. 前置准备:TaoToken 统一 Key 与 API 通道

在折腾 Peekaboo 授权之前,建议先把模型调用通道理顺,否则你分不清是权限问题还是网络/鉴权问题。我习惯用 TaoToken 做统一入口,它把多家模型的调用收敛成一个 Key 和一个 API 地址,省得在 openclaw 里为每个 Provider 单独配一遍。

你需要先拿到一个 API Key。打开控制台创建即可:

  • 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Key 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

创建完 Key 之后,API 基地址统一用https://taotoken.net/api,注意这个地址不带任何查询参数。openclaw 的 Provider 配置里填这个 base URL,模型名按你实际要用的填,比如claude-sonnet-4-5或gpt-4o这类。这样后面排查时,只要curl能通,就说明通道没问题,问题一定在 Peekaboo 授权侧。

提示:Key 只创建一次就够,多个模型共用同一个 Key,不要每个模型建一个,否则后面换模型又要改配置。

如果你还没装 openclaw,升级命令是这条,它会自动检测 macOS 环境、Node 版本并迁移旧配置:

curl -fsSL https://openclaw.ai/install.sh | bash

跑完会看到类似OpenClaw installed successfully和Running doctor to migrate settings的输出。注意 Node 需要 24 以上,低于这个版本 doctor 阶段可能直接失败。

3. 可复制配置:config.toml 与 settings.json 骨架

openclaw 升级后配置结构可能变了,下面这份config.toml骨架可以直接改。重点是 Provider 段用 TaoToken 的 base URL,models 段声明你要用的模型,peekaboo 段控制权限检查行为。

# ~/.openclaw/config.toml [provider.taotoken] type = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" timeout = 60 [models.default] provider = "taotoken" model = "claude-sonnet-4-5" max_tokens = 4096 [peekaboo] enabled = true binary_path = "/opt/homebrew/bin/peekaboo" require_screen_recording = true require_accessibility = true check_on_start = true

binary_path这一项很关键。升级后 Peekaboo 可能被装到/opt/homebrew/bin/或/usr/local/bin/,用which peekaboo确认实际路径再填,填错会导致 openclaw 调用的是另一个副本,授权自然对不上。

然后是settings.json,这个文件通常放在~/.openclaw/settings.json,控制运行时行为和授权检查策略:

{ "runtime": { "node_version_min": "24.0.0", "log_level": "info" }, "peekaboo": { "permission_check": { "screen_recording": true, "accessibility": true, "applescript": true }, "retry_on_denied": 2, "retry_delay_ms": 800 }, "provider": { "default": "taotoken", "fallback": [] } }

retry_on_denied设成 2 是有原因的:macOS 授权生效有时有延迟,第一次调用被拒、隔几百毫秒再试往往就过了。设成 0 会让你误以为授权没生效。

4. 授权链路重做:从系统设置到终端

升级后最容易被忽略的一步是:旧授权条目还在,但绑的是旧路径。你需要先把旧条目清掉,再重新授权。

先跑一次权限检查,看当前真实状态:

peekaboo permissions

如果输出里 Screen Recording 或 Accessibility 是Denied,或者显示 Granted 但 openclaw 调用仍失败,就按下面走。

打开「系统设置 → 隐私与安全性 → 屏幕录制」,找到 Peekaboo 条目,先点减号删掉。然后回到终端,手动触发一次授权请求:

peekaboo permissions --request

这时系统会弹出授权窗口。如果没有弹窗,就点屏幕录制面板里的加号,手动选择/opt/homebrew/bin/peekaboo这个二进制文件加进去。加完后勾选它。

辅助功能同理,在「隐私与安全性 → 辅助功能」里删掉旧条目,重新添加同一个二进制路径并勾选。AppleScript 权限在「隐私与安全性 → 自动化」里,找到终端和 Peekaboo 的条目,确保勾选。

做完这三步,再跑一次:

peekaboo permissions

正常应该看到:

Source: local runtime Screen Recording (Required): Granted Accessibility (Required): Granted

到这里终端侧就通了。但 openclaw 调用可能还是失败,因为 openclaw 是以自己的进程身份去调 Peekaboo 的,TCC 认的是调用链上的父进程。解决办法是给 openclaw 的启动终端也授权,或者用openclaw doctor重新注册一次权限。

openclaw doctor --fix-permissions

这个命令会重新扫描 Peekaboo 路径并刷新 openclaw 内部的权限缓存。跑完重启 openclaw 服务。

5. 验证请求:确认整条链路通了

授权配好后,别急着上复杂任务,先用最小请求验证。第一步验证 TaoToken 通道:

curl -s https://taotoken.net/api/v1/models \ -H "Authorization: Bearer sk-你的TaoToken密钥" | head -c 300

能返回模型列表就说明 Key 和网络没问题。第二步验证 openclaw 能否正常调用模型:

openclaw run --model default --prompt "reply with ok"

预期输出里应该包含模型返回的ok。如果这一步报鉴权错误,回去检查config.toml里的base_url有没有多写斜杠或路径。

第三步验证 Peekaboo 在 openclaw 上下文里是否可用:

openclaw peekaboo check

这个子命令会以 openclaw 的进程身份去调 Peekaboo 并返回授权状态。如果这里显示 Granted,但实际任务里还是失败,多半是任务用的二进制路径和config.toml里写的不一致,用openclaw peekaboo which确认一下。

想更直观地看模型对话效果,可以直接在网页端试:

  • 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite

在网页端发一条消息,确认 Key 可用,再回到本地排查 Peekaboo,能少走很多弯路。

6. 本篇常见错排查

错误一:peekaboo: command not found升级后 PATH 没刷新。执行hash -r或重开终端。如果还是没有,用brew list peekaboo确认是否装上,没装就brew install peekaboo。

错误二:终端显示 Granted,openclaw 仍报权限缺失这是最典型的升级后遗症。原因是 openclaw 缓存的 Peekaboo 路径是旧的。执行openclaw doctor --fix-permissions,然后确认config.toml里binary_path和which peekaboo输出一致。

错误三:授权窗口不弹出macOS 有时会静默拒绝重复请求。先去系统设置里删掉旧条目,再执行peekaboo permissions --request。如果还不弹,手动用加号添加二进制文件。

错误四:TaoToken 返回 401Key 复制时带了空格,或者base_url写成了https://taotoken.net/api/(末尾多斜杠)。改成https://taotoken.net/api再试。

错误五:模型调用超时config.toml里timeout默认可能偏短,改成 60 或 120。同时确认没有其他进程占用网络代理设置。

错误六:升级后 settings.json 被重置openclaw 升级时可能覆盖旧配置。升级前备份~/.openclaw/目录,升级后对比settings.json的peekaboo段是否还在。

7. 长期编码与 Agent 场景的接入建议

如果你不只是临时验证,而是要把 openclaw 当长期编码或 Agent 跑,建议把模型调用固定到 Coding Plan,避免每次手动换 Key 或改配置。入口在这里:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

接入文档里有完整的 Provider 配置示例和不同客户端的填法,遇到 base URL 或模型名不确定时直接对照:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

如果你用的是 Claude Code 这类工具,也有对应的配置说明:

  • Claude Code 接入:https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claudecode-anthropic&utm_campaign=rewrite

我自己的做法是:Peekaboo 授权配好后,先用openclaw peekaboo check确认一次,再跑一个只读屏幕的简单任务,比如让 openclaw 截当前窗口并描述内容。这一步能同时验证授权、模型通道和任务编排三件事。如果截图成功但描述失败,问题在模型侧;如果截图就失败,问题还在授权。这样分层排查,比一上来就跑复杂 Agent 任务高效得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询