Codex 皮肤安全与兼容
了解主题包边界、Helper 与官方 Codex 身份校验、失败回滚,以及 Codex 更新后的兼容处理
Codex Skin 是独立第三方项目,并非 OpenAI 产品。它通过范围受限的本地事务修改 ChatGPT 桌面应用中受支持的 Codex 界面,不会改动官方安装包,也不声称控制 Chat、Work、网页版、CLI 或 IDE 扩展。
本页解释面向用户的信任边界。组件与事务的技术设计请查看系统架构。
产品作用范围
当前 Paid Alpha 支持 macOS 与 Windows。两个平台分别验证,不能用一端的结果替代另一端证据。
皮肤只负责已经验证的 Home、对话与 composer 区域。原生 Sites、Scheduled、Plugins、设置与右侧工具区域会继续使用匹配的官方 light 或 dark palette。Helper 会在应用固定皮肤规则前重新识别当前 route,不会因为 Codex 复用了容器,就把原生工具页当作聊天页。
Codex Skin 不会编辑 Codex .app、app.asar、WindowsApps 包、官方代码签名或其他系统保护安装路径。
组件之间如何建立信任
用户路径由不同部分组成:
| 部分 | 负责内容 |
|---|---|
| 网站 | 主题目录、登录、设备批准、结账、账户与主题交付授权 |
| 插件 | 识别受支持任务,独立保留六位 ID,调用固定 wrapper 并解释结构化结果 |
| Bootstrap | 选择固定发布版本,完成校验与自检,再原子激活外部 Helper |
| Helper | 执行一次有限 Apply、Switch、Status 或 Restore 事务,然后退出 |
| 主题包 | 为一套已发布皮肤提供声明过的结构化数据与本地图片 |
公开插件仓库包含 MIT License 下的插件、Skills、wrappers、Helper、Bootstrap、Restorer、允许公开的合同、测试与发布文档。网站源码、客户数据、私钥、Production 配置、商业主题包、源 artwork、权利记录与未发布资产继续保留在 Private。
这条分界很实际:主题包不能重新定义签名 Helper 可以做什么。
主题包只包含数据与图片
已发布主题包含版本化白名单字段,以及声明过的本地 PNG、JPEG 或 WebP 资源。进入 staging 前,引擎会核对 manifest、文件清单、路径、MIME、大小限制、包 digest 与 detached signature。
主题包不能提供:
- 任意 CSS 或 JavaScript
- Shell 或 PowerShell 命令
- 自带 selector 或 adapter 代码
- 远程执行 URL
- 路径穿越、符号链接或未声明文件
固定实现位于签名 Helper 中,由它使用允许的数据来完成换肤。主题包 data-only 不等于本机完全不运行代码,而是目录内容不能把自己变成可执行程序。
Helper 供应链
插件会固定 release-tagged Bootstrap launcher 及其平台 SHA-256。Bootstrap 只接受固定的公开 GitHub Releases 来源,核对签名 descriptor、平台、文件大小、SHA-256 与 Helper 自检,再原子更新外部 current pointer。
descriptor 使用 Ed25519,并绑定预期 Helper binaries。签名、平台、大小、hash、发布 profile、自检或激活结果不一致时,候选版本不会成为 current。激活失败后,之前验证过的 Helper 与 recovery engine 仍然保留。
当前 Production Paid Alpha 报告 Plugin 0.1.0-paid-alpha、Helper .17、Bootstrap .16 与 https://codexskin.ai。它通过 GitHub prerelease 分发,并非 stable/latest。
Paid Alpha 的 Apple Developer ID/notarization 与 Windows 公开代码签名属于上线后优先事项,因此操作系统可能显示 Gatekeeper 或 SmartScreen 提示。Codex Skin 不会要求移除安全属性、关闭 Gatekeeper 或 Defender,也不会伪装 Publisher。
官方 Codex 身份与 loopback
熟悉的进程名或一个可访问端口并不足够。主题操作前,Helper 会核对官方 Codex 应用身份、当前进程与 profile、loopback CDP listener,以及固定 adapter 所需的 renderer 结构与能力。
受控会话只通过 127.0.0.1 等 loopback 地址连接,不会开放通用网络控制入口。进程身份、profile、listener 或所需界面无法确认时,操作会 fail closed。
这些检查不依赖单一精确版本白名单。未见过的版本在身份、能力与 marker 都通过时可以继续;已经登记过的版本如果当前检查失败,仍然会停止。
事务与回滚
Apply 与 Switch 使用下面的事务:
validate -> stage -> backup -> apply -> verify -> commitrenderer 修改发生在 validate 与 stage 之后。第一次 Apply 会把准确的 system、light 或 dark 选择与相关代码主题设置保存在插件 cache 之外。Helper 只对验证过的当前窗口应用皮肤,目标主题完成可见确认后才提交。
主题包校验失败时,新内容不会进入 renderer。Apply 或最终验证失败时,事务会回滚皮肤与已修改的原生外观。回滚无法确认时,Helper 会返回稳定失败并停止,不会报告成功,也不会猜测当前状态。
离线 Restore是独立恢复边界。它位于可替换插件 cache 之外,不依赖网络、登录、当前访问权、Node 或工作正常的插件 cache。
隐私边界
产品合同禁止采集或上传提示词、对话、代码、项目文件、本地绝对路径、Token、Cookie 与截图。Access Token 只保留在内存中,Refresh credential 使用 macOS Keychain 或 Windows Credential Manager,不写入普通状态文件。
为了交付、支持或付款访问,最小服务记录可以包含用户、设备、主题、版本、时间、结果与必要字节数。公开 Issue 不应包含账户、付款、提示词、源码或本地路径信息,账户与订单问题请使用联系页面。
兼容性如何判断
兼容性分三步判断:
- 身份检查确认目标是受支持的官方 Codex 进程,并且使用同一用户 profile
- 能力与 marker 检查确认当前 renderer 拥有固定 adapter 所需界面
- Apply 后验证核对当前窗口中的目标 ID、marker、artwork、palette、route scope 与可读结果
即使普通功能仍然正常,Codex 更新也可能改变内部界面。固定合同缺失或有歧义时,新的 Apply 与 Switch 会安全停止。Codex Skin 不会猜本地化文字去点击,也不会注入半套皮肤来假装兼容。
当前主题包与恢复点会留在本地。即使新的 Apply 无法证明兼容,Restore 仍然可用。
平台路径与系统提示
Paid Alpha 的产品范围覆盖受支持 macOS 系统与 Windows x64。两个平台可以选择不同执行路径,但主题包、身份、事务、验证与 Restore 边界相同。
- macOS 的可信跨模式切换优先使用已验证的应用内 Appearance 合同,修改前发现合同不可用时回退到一次确认的受控重载
- Windows 的跨模式切换使用一次确认的受控重载
不要根据 macOS 结果推断 Windows 已有应用内路径,也不要把操作系统警告理解为关闭保护的许可。请保留警告,并使用文档中的发布来源或报告阻断。
更新与当前窗口边界
Apply、Switch 与 Restore 使用一次性有限 Helper。当前窗口验证完成后,Helper 会退出。Paid Alpha 没有 Guardian、controller、heartbeat、登录项、托盘应用、daemon 或后台自动重应用承诺。
一般 Apply 或 Switch 需要 20–60 秒。操作仍在运行时,请保持当前 Codex 窗口不动,直到出现明确结果。事务打开的浏览器授权页或 Pricing 页面仍然可以使用。
完全退出 Codex、重启电脑或之后的 renderer reload 会结束可见保证。下次请再次让 Codex Skin Apply。保存的 last-applied ID 只是本地历史记录,不能证明新 renderer 仍有皮肤。
Codex 更新阻止新操作时,请查看更新后的故障排查,或通过 Restore回到保存过的官方外观。
常见问题
Codex Skin 是 OpenAI 产品吗?
不是。它是面向 ChatGPT 桌面应用中受支持 Codex 界面的独立第三方项目。
主题包可以运行代码吗?
主题包不能提供可执行代码、selector 或远程命令。固定签名 Helper 会使用包中的允许数据与图片完成有限本地事务。
Codex Skin 会采集我的对话或代码吗?
产品合同禁止采集或上传提示词、对话、代码、项目文件、绝对路径、Token、Cookie 与截图。
每一个 Codex 版本都兼容吗?
项目不做全版本绝对承诺。每笔新操作都要通过身份、能力、marker 与最终可见结果检查。无法证明时,操作会停止,Restore 继续保留。
