一个 Windows 优先的 Codex Desktop 外部换肤原型。
当前版本通过本机 CDP 注入 CSS 和装饰背景,不修改 Codex 的安装文件、app.asar 或 WindowsApps。它只提供换肤核心,启动 Codex 的调试端口需要后续按本机安装方式补充。
点击预览图可以查看原始背景。背景图用于展示主题的主色调和氛围,实际使用时会叠加 Codex 原生界面与对应的 CSS 样式。
- Node.js 22 或更高版本
- Codex Desktop
- 仅使用受信任的本机软件
cd D:\codex-skin
npm run check所有命令都在 PowerShell 中执行。第一次使用前,先手动完全退出 Codex Desktop。
- 如果 Codex 是通过
start-skin.ps1启动的,换主题时不需要退出,直接执行下面的命令即可;新主题会替换当前主题。 - 如果 Codex 是普通方式打开的,普通窗口没有 CDP 端口,需要先正常退出,再运行
start-skin.ps1。 - 不需要先执行
restore-theme.ps1才能切换主题。
| 操作 | 命令 | 说明 |
|---|---|---|
| 启动并应用皮肤 | powershell -ExecutionPolicy Bypass -File .\scripts\start-skin.ps1 |
自动找到 Store 版 Codex,打开本机 CDP,并应用 cobalt |
| 启动并指定主题 | powershell -ExecutionPolicy Bypass -File .\scripts\start-skin.ps1 -Theme cobalt |
将 cobalt 替换为其他主题 ID |
| 只启动 Codex | powershell -ExecutionPolicy Bypass -File .\scripts\start-skin.ps1 -SkipApply |
启动 Codex,但不注入皮肤 |
| 单独应用皮肤 | powershell -ExecutionPolicy Bypass -File .\scripts\apply-theme.ps1 -Port 9335 -Theme cobalt |
适用于 Codex 已经通过 CDP 启动的情况 |
| 验证皮肤 | powershell -ExecutionPolicy Bypass -File .\scripts\verify-theme.ps1 -Port 9335 |
检查注入标记、样式和背景层 |
| 关闭/恢复原生外观 | powershell -ExecutionPolicy Bypass -File .\scripts\restore-theme.ps1 -Port 9335 |
移除皮肤,恢复 Codex 原生外观 |
启动、切换和恢复时,脚本也会处理 Codex 独立宠物窗口的输入状态,避免鼠标点击穿透到下面的窗口。
最常用的启动命令:
cd D:\codex-skin
powershell -ExecutionPolicy Bypass -File .\scripts\start-skin.ps1关闭 Codex 时,请使用 Codex 窗口自己的退出按钮或 Alt + F4,不要强制结束进程,以免影响正在运行的任务。关闭 Codex 后,下次正常启动 Codex 不会自动注入皮肤;如果要再次使用皮肤,重新运行启动命令即可。
如果看到 Theme injection failed,先确认 Codex 已完全退出,再重新运行 start-skin.ps1。启动器会自动选择 Codex 的主渲染页面,不要直接对普通 Codex 窗口使用 apply-theme.ps1。
查看当前注入状态:
cd D:\codex-skin
powershell -ExecutionPolicy Bypass -File .\scripts\verify-theme.ps1 -Port 9335聊天页正常时,结果中应至少包含:
"theme": "cobalt"
"shell": true
"task": true
"composer": true
"style": true
"background": true
themes/<theme-id>/
├── theme.json
├── theme.css
└── background.png (或 background.svg)
theme.json 用来描述主题,CSS 负责视觉样式,背景图必须是不包含 Codex 界面截图的纯背景素材。
cobalt:Cobalt Night,默认的深蓝青色主题。violet-night:Violet Night,紫夜星云与霓虹紫色调。neon-stage:Neon Stage,青蓝虚拟舞台与冷色光带。black-gold:Black Gold,黑金舞台与暖金色调。preset-midnight-aurora:上游「午夜极光」抽象预设。preset-sakura-dawn:上游「樱粉晨曦」抽象预设。preset-amber-dusk:上游「琥珀黄昏」抽象预设。preset-forest-mist:上游「森野薄雾」抽象预设。preset-cyber-neon:上游「赛博霓虹」抽象预设。preset-romantic-rose:上游「桥本有菜」真人背景预设,仅建议本地个人使用。preset-ragdoll-moon:原创写实布偶猫背景,蓝眼睛、奶油白与淡紫星夜风格。enfp-spark:原创 ENFP 灵感主题,薄荷绿、柠檬黄、桃橙色与右侧水彩人物构图;首页附带可勾选的每日任务、能量值和创意积分,进度保存在本机并按天重置。
preset-romantic-rose 与 enfp-spark 会启用 Dream Skin 渲染层,额外提供首页标题、功能卡和主题装饰;其他主题继续使用本项目的轻量 CSS 背景模式。
enfp-spark 在 Codex 首页增加一个本地交互层:五项每日任务可以勾选或重置,完成度会同步计算能量值以及创意、动力、乐趣三项积分。状态仅写入 Codex 渲染页的 localStorage,不会读取或修改聊天内容;日期变化后会自动生成新一天的进度。进入聊天页时面板自动隐藏,执行恢复主题时面板和事件监听会一起移除。
运行 verify-theme.ps1 时,dashboard、dashboardVisible 和 dashboardTasks 会分别报告增强层是否存在、当前是否显示以及任务数量。
验证结果还会分别显示 localTheme 和 dreamTheme。正常情况下只应有一个非空;如果 mixed 为 true,表示普通主题与 Dream 主题发生了混合注入,验证命令会以失败状态退出。
切换示例:
powershell -ExecutionPolicy Bypass -File .\scripts\start-skin.ps1 -Theme violet-night
powershell -ExecutionPolicy Bypass -File .\scripts\apply-theme.ps1 -Port 9335 -Theme black-gold
powershell -ExecutionPolicy Bypass -File .\scripts\apply-theme.ps1 -Port 9335 -Theme enfp-spark这是第一版骨架,尚未自动发现并启动 Codex,也没有覆盖所有 Codex 页面选择器。下一步可以增加启动器、主题切换、图片导入、浅色/深色适配和截图验证。
不要把 API Key、auth.json 或第三方 Base URL 写入这个项目。










