多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

【openclaw部署与使用之问题速查速决系列】openclaw升级后Peekaboo在macOS上的安装与授权配置速查

【openclaw部署与使用之问题速查速决系列】openclaw升级后Peekaboo在macOS上的安装与授权配置速查 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_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Key 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite创建完 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 URLmodels 段声明你要用的模型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 truebinary_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_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite在网页端发一条消息确认 Key 可用再回到本地排查 Peekaboo能少走很多弯路。6. 本篇常见错排查错误一peekaboo: command not found升级后 PATH 没刷新。执行hash -r或重开终端。如果还是没有用brew list peekaboo确认是否装上没装就brew install peekaboo。错误二终端显示 Grantedopenclaw 仍报权限缺失这是最典型的升级后遗症。原因是 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 Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite接入文档里有完整的 Provider 配置示例和不同客户端的填法遇到 base URL 或模型名不确定时直接对照接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你用的是 Claude Code 这类工具也有对应的配置说明Claude Code 接入https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite我自己的做法是Peekaboo 授权配好后先用openclaw peekaboo check确认一次再跑一个只读屏幕的简单任务比如让 openclaw 截当前窗口并描述内容。这一步能同时验证授权、模型通道和任务编排三件事。如果截图成功但描述失败问题在模型侧如果截图就失败问题还在授权。这样分层排查比一上来就跑复杂 Agent 任务高效得多。
返回列表