今天在 GitHub Trending 上看到一个相当有意思的项目:Codex Dream Skin——一个专为 Codex 桌面端打造的外部换肤/主题工具。它不改动官方安装包,而是用本机 CDP 注入的方式,给写代码的界面换上「会呼吸」的皮肤。

一、项目概述

Codex Dream Skin 的本质,是一个第三方「主题工作室」:它把一张 16:9 的纯背景图注入到 Codex 桌面客户端的界面层,让侧栏、建议卡、项目选择、输入框等原生控件浮于其之上,从而在保持完整交互能力的前提下改变整体视觉氛围。

项目明确定位为非 OpenAI 官方产品,并在多处强调「不修改 .app / app.asar / WindowsApps」,力求在不触碰官方二进制与代码签名的前提下完成换肤。核心特性可以归纳为几点:

  • 真·可交互:被注入的仍是原生控件,而不是把整窗假截图贴上去,鼠标、键盘、焦点逻辑完全可用。
  • 真背景层:一张 16:9 纯壁纸连续铺满整窗,首页突出氛围,进入任务页时自动降低干扰。
  • 可换图 / 可存主题:导入任意纯背景图,自适应焦点、安全区与配色后变成你的专属主题;macOS 菜单栏与 Windows 系统托盘都能保存并一键切换本地主题。
  • 可恢复:提供一键还原官方外观的能力。
  • 相对安全:仅使用本机回环(loopback)的 CDP 注入,不改官方二进制与签名。

二、技术原理

1. 为什么不用「改安装包」

直接修改 app.asar 或注入到官方安装目录,会破坏代码签名、在更新时被覆盖,并带来安全合规风险。Codex Dream Skin 选择了一条更「克制」的路径:

CDP 只绑定 127.0.0.1,主题运行期间勿运行来路不明的本机程序。

即它借助 Chrome DevTools Protocol(CDP),在 Codex 桌面端启动后,通过本机回环地址连接其调试端口,再注入 CSS / 结构覆盖层。由于注入发生在应用进程运行期,且目标仅为渲染层,因此无需改写磁盘上的官方文件。

2. 保护层与边界

项目在「安全边界」一节明确列出了三条红线:

  • CDP 仅监听 127.0.0.1,不对外暴露;
  • 不修改官方安装目录与代码签名;
  • 不会自动改写 API Key / Base URL —— 即「中转配置」与「换肤」在逻辑上彼此独立,换肤脚本不会动你的模型供应商设置。

这一点对 Codex 用户尤为关键:很多人会用满血中转(如官方模型直连、无降智的中转服务)来接入 Codex,而换肤工具与 API 配置解耦,意味着你换皮肤时不必担心被悄悄改掉 Base URL。

3. 跨平台实现差异

README 指出:仓库内按平台放置了现成脚本,实现细节不同,但效果都是「主题化 Codex」。

平台目录入口
Apple Silicon / Intel Macmacos/双击 Install Codex Dream Skin.command
Windowswindows/scripts/install-dream-skin.ps1start-dream-skin.ps1

macOS 端提供菜单栏(menu bar)入口,Windows 端走系统托盘(system tray),两者都支持「已保存主题」的持久化与快速切换。

三、安装与快速开始

macOS

macOS 支持双击图形化安装入口,也支持命令行:

cd macos
./scripts/install-dream-skin-macos.sh --no-launch
~/.codex/codex-dream-skin-studio/scripts/switch-theme-macos.sh \
  --id preset-arina-hashimoto

安装后,macOS 全新安装默认启用名为 Gothic Void Crusade / 哥特虚空远征 的精选预设(由社区成员 @seansong-ideogram 设计并贡献)。

也可从「已保存主题」直接切换,或运行命令切到指定预设:

~/.codex/codex-dream-skin-studio/scripts/switch-theme-macos.sh \
  --id preset-gothic-void-crusade

Windows

Windows 侧使用本地主题仓库与系统托盘,并预置同一套主题:

powershell -ExecutionPolicy Bypass -File .\windows\scripts\install-dream-skin.ps1
powershell -ExecutionPolicy Bypass -File .\windows\scripts\start-dream-skin.ps1

启动后可直接从「已保存主题 → 桥本有菜」切换,无需跨目录手动导入;托盘里的「更换背景图」仍可导入你自己的纯背景,保存后继续一键切换。

四、使用方法与实战

1. 挑选并使用一套预设

项目内置多套实测精选预设,例如「哥特虚空远征」与「桥本有菜 / Arina Hashimoto」。后者已在真实 Codex 首页分别验证浅色与暗色外观:源 PNG 为 1672 × 941,主题包在保持近 16:9 构图的前提下派生导出 2560 × 1440 JPEG。

注意:仓库内的效果预览图是带界面的概念图,包含真实 Codex UI,只能当预览,绝不能当作背景导入。可作为背景的,是 docs/images/presets/arina-hashimoto-source.png 这类无 UI 的纯素材。

2. 用你自己的图做主题

换肤与 API 配置互相独立,你完全可以导入一张自己喜欢的纯背景:工具会自适应焦点、安全区与配色,把它变成你的专属主题。要复刻仓库里的视觉方向,可参考:

  • 可直接复制的参考生图模板:docs/reference-background-prompt-guide.md
  • 八种概念方向的详细提示词:docs/background-generation-prompts.md

3. 还原官方外观

不需要主题时,一键即可恢复官方外观,不影响后续正常使用。

五、常见问题与解决方案

Q:是否会被 Codex 更新覆盖? A:不会。注入发生在运行期渲染层,且未修改磁盘上的官方文件,常规更新不影响换肤逻辑;若某次更新改变了调试端口或 DOM 结构,主题可能需要同步适配。

Q:换肤会影响我的 API Key / Base URL 吗? A:不会。项目明确「不会自动改写 API Key / Base URL」,换肤与中转配置相互独立。

Q:为什么概念效果图不能直接导入? A:效果预览图是带侧栏、卡片、输入框等真实 UI 的合成图,若当作纯背景导入会叠出双层界面;只能导入无 UI 的 2560 × 1440 素材。

Q:安全吗? A:项目仅在 127.0.0.1 上做本机 CDP 注入,不修改官方安装目录与签名;但主题运行期间应避免运行来路不明的本机程序。

Q:可以商用或公开再分发预设里的图片吗? A:仓库预设及效果图中的人物 / IP 素材仅作主题示意,商用或公开再分发前请自行确认肖像、素材与商标权利。

六、总结

Codex Dream Skin 展示了一种「克制而优雅」的桌面端定制思路:不拆官方安装包、不碰代码签名,仅靠本机 CDP 注入就在原生控件之上叠出可呼吸的氛围层。对既想让写代码更有「氛围感」、又不想冒险破坏客户端完整性的人来说,这是一条值得一试的路径。Star 一下,挑一张图,把你的 Codex 变成今天想要的样子吧。

项目地址:https://github.com/Fei-Away/Codex-Dream-Skin