Codex 截屏权限怎么关?TaoToken 配置 settings.json 骨架与验证动作

发布时间:2026/9/28 18:17:01
Codex 截屏权限怎么关?TaoToken 配置 settings.json 骨架与验证动作 1. 为什么你的 Codex 可能正在“看”你的屏幕如果你在 macOS 上用 Codex 桌面端并且开过 Personalization 里的 Memories 和 Chronicle那它大概率已经在后台周期性抓屏了。原理不复杂后台 agent 定时截屏把图像送去做 OCR 和视觉分析生成一段段 Markdown 摘要再回传到本地目录下次打开 Codex 时作为上下文塞进窗口。原始截图本地留六小时但摘要文件是明文、未加密、长期保存的。这意味着什么你开会时共享的财报、随手打开的私聊窗口、浏览器里没关的工单页面都可能被“炼”成记忆。OpenAI 自己的建议也很直白开会前、看敏感内容前记得暂停 Chronicle。但把“记得暂停”交给用户本身就是个隐患——人总会忘。所以这篇不讲怎么开讲怎么关、怎么审计、怎么确认关干净了。同时给一份可复制的settings.json骨架把 TaoToken 的统一 Key 和 API 通道接进去让 Codex 的模型调用走一个可控入口而不是散落在各处。适合谁macOS 上跑 Codex、对会议隐私和屏幕内容敏感、又不想放弃 AI 编码效率的开发者。核心检索词先摆出来Codex 截屏权限怎么关、Chronicle 关闭方法、macOS 屏幕录制权限审计、settings.json 配置骨架、TaoToken 接入。下面按“先关权限、再配通道、最后验证”的顺序走每一步都能跟做。2. 前置TaoToken 统一 Key 与 API 通道准备在动settings.json之前先把模型调用的入口统一掉。Codex 这类工具默认可能走官方直连但如果你同时用多个模型、多个项目Key 散落各处很难审计。TaoToken 在这里的角色是提供一个统一的 API 通道和 Key 管理位让你在配置文件里只写一个入口后续换模型、加项目都不用改代码。你需要先拿到一个 Key。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台里创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。创建时建议按项目命名比如codex-mac-privacy方便后面审计哪个 Key 在跑。API 基础地址是 https://taotoken.net/api 注意这个地址不带 UTM 参数直接写进配置即可。如果你用的是兼容 OpenAI 协议的客户端Base URL 填这个Key 填刚创建的。想先验证模型通不通可以用模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 发一条测试消息确认返回正常再往下走。这一步的目的不是“注册教程”而是让你后面在settings.json里有一个明确的接入位。Codex 的截屏权限和模型调用是两件事但都写在同一个配置体系里分开管才不会互相干扰。Key 拿到后先放好下一节直接进配置文件。3. 可复制配置settings.json 骨架与截屏关闭位Codex 桌面端的配置目录在 macOS 上通常是~/.codex/主配置文件是settings.json。如果你没建过先创建目录mkdir -p ~/.codex touch ~/.codex/settings.json下面是一份骨架包含三块模型通道接入位、Chronicle/截屏相关开关、以及本地记忆目录的审计路径。注意不同 Codex 版本字段名可能有差异以你本地codex --version对应的文档为准但结构可以参考。{ model_provider: { name: taotoken, base_url: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, default_model: gpt-4o }, personalization: { memories: false, chronicle: { enabled: false, screen_capture: false, accessibility: false, retention_hours: 0, summary_dir: ~/.codex/chronicle/summaries } }, privacy: { telemetry: false, local_only: true } }几个关键点解释一下。model_provider里的base_url填 TaoToken 的 API 地址api_key_env指向环境变量不要把 Key 明文写进 JSON。然后在 shell 里导出export TAOTOKEN_API_KEY你的Key想让它持久化写进~/.zshrc或~/.bash_profile。personalization.chronicle.enabled设为false是总开关screen_capture和accessibility分别对应 macOS 的屏幕录制和辅助功能权限都关掉。retention_hours设 0 表示不保留摘要summary_dir留着是为了审计——即使关了也去看看里面有没有历史残留。如果你之前开过 Chronicle摘要目录里可能已经有明文 Markdown。先别删后面验证环节要检查。配置改完后Codex 需要重启才生效。重启前建议先备份原配置cp ~/.codex/settings.json ~/.codex/settings.json.bak这样万一字段名不对导致启动失败可以快速回滚。配置骨架给到这里下一节讲怎么验证它真的生效了。4. 三步验证权限开关、截屏触发、日志残留配置写完不等于生效得动手验。三步走查系统权限、复现截屏触发、确认日志无残留。4.1 检查 macOS 权限开关打开“系统设置 → 隐私与安全性 → 屏幕录制”看列表里有没有 Codex。如果有把开关关掉。同样在“辅助功能”里检查一遍。命令行也可以辅助确认sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \ SELECT client, auth_value FROM access WHERE servicekTCCServiceScreenCapture;这条命令会列出所有申请过屏幕录制权限的应用auth_value为 2 表示允许0 表示拒绝。如果 Codex 还在列表里且为 2说明系统层还没关干净。注意直接改 TCC.db 可能被 SIP 拦截建议走系统设置界面操作命令行只用来审计。4.2 复现截屏触发观察是否还被抓关掉权限后重启 Codex然后做一个“诱饵”操作打开一个带明显文字的窗口比如一个写着PRIVACY_TEST_2026的文本文件停留几分钟。然后去 Chronicle 的摘要目录看有没有新文件生成ls -lt ~/.codex/chronicle/summaries/ | head -20如果目录里出现了包含PRIVACY_TEST_2026的新 Markdown说明截屏还在跑配置没生效。正常情况下关了screen_capture后不应该有新摘要。你也可以用fswatch监控目录变化fswatch -o ~/.codex/chronicle/summaries/ | xargs -n1 -I{} echo 目录有变动: {}跑着这个监控再去操作 Codex如果一直没输出说明没有新摘要写入。4.3 确认日志无残留最后检查历史残留。摘要目录里的旧文件是明文可能包含之前的屏幕内容。列出所有文件并检查内容grep -rl PRIVACY_TEST ~/.codex/chronicle/summaries/ 2/dev/null如果找到旧摘要确认是否包含敏感信息。确认不需要后可以清理rm -rf ~/.codex/chronicle/summaries/*同时检查 Codex 的运行日志里有没有截屏相关的记录grep -i chronicle\|screen_capture\|screenshot ~/.codex/logs/*.log 2/dev/null | tail -50如果日志里还在打印截屏任务说明后台进程没停干净需要完全退出 Codex 再重启。三步做完基本能确认截屏权限已关、无新摘要、无残留日志。5. 本篇常见错排查报错一settings.json解析失败Codex 启动报 JSON 语法错误。最常见的原因是尾逗号或引号不匹配。用python -m json.tool ~/.codex/settings.json校验一下它会指出具体行号。另外注意~在 JSON 里不会自动展开summary_dir最好写绝对路径比如/Users/你的用户名/.codex/chronicle/summaries。报错二改了配置但截屏还在跑。先确认 Codex 是否完全退出。macOS 上点关闭按钮可能只是最小化到菜单栏后台 agent 还在。用ps aux | grep -i codex找到进程kill掉再重启。另外检查是否有多个配置文件比如项目级.codex/settings.json覆盖了全局配置。报错三TaoToken 通道返回 401 或 403。先确认环境变量TAOTOKEN_API_KEY在当前 shell 里能echo出来。如果是 GUI 启动的 Codex可能读不到 shell 的环境变量需要在配置里改用api_key字段直接写或者用 launchd 配置环境变量。另外确认 Base URL 是https://taotoken.net/api不要多加斜杠或路径。报错四摘要目录删了又自动生成。说明chronicle.enabled还是true或者有别的进程在写。检查配置里enabled和screen_capture是否都为false然后确认没有其他 Codex 实例在跑。如果用的是研究预览版某些版本可能强制开启需要升级或降级到可控版本。报错五系统设置里找不到 Codex 的屏幕录制开关。如果之前从没授权过列表里可能不显示。这时可以手动触发一次授权请求比如打开 Chronicle 开关再关掉让系统弹出权限对话框然后再去设置里关。或者用tccutil reset ScreenCapture重置该应用的权限记录再重新检查。6. 把通道和权限分开管才是长期做法截屏权限和模型调用通道本质是两套东西。截屏是本地隐私边界模型通道是数据出境边界。把settings.json里的personalization和model_provider分开配置好处是你可以独立审计关截屏不影响模型调用换模型通道也不用动隐私开关。TaoToken 在这里的价值是让模型通道有一个统一入口。你可以在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 按项目建 Key在控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 看调用量接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果后面要跑长期编码任务或 Agent可以看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 把额度规划好避免截屏类后台任务偷偷烧配额。最后留一个实用习惯每次升级 Codex 后重新跑一遍第 4 节的三步验证。新版本可能重置权限或改字段名花两分钟检查比事后发现摘要目录里躺着一堆会议记录要划算得多。