From 7d1c7a26b902e1120394fe82d6a2242fb90990b8 Mon Sep 17 00:00:00 2001
From: CalvinDawn <85914531+CCDawn@users.noreply.github.com>
Date: Sat, 18 Jul 2026 22:06:15 +0800
Subject: [PATCH] Improve repository discoverability
---
README.en.md | 278 ++++++++++++++++++---------------
README.md | 263 ++++++++++++++++++-------------
docs/images/social-preview.png | Bin 0 -> 374870 bytes
docs/images/social-preview.svg | 76 +++++++++
docs/promo-copy.md | 98 +++++++-----
docs/showcase.en.md | 71 +++++++++
docs/showcase.md | 71 +++++++++
7 files changed, 580 insertions(+), 277 deletions(-)
create mode 100644 docs/images/social-preview.png
create mode 100644 docs/images/social-preview.svg
create mode 100644 docs/showcase.en.md
create mode 100644 docs/showcase.md
diff --git a/README.en.md b/README.en.md
index 911759a..cc09e58 100644
--- a/README.en.md
+++ b/README.en.md
@@ -1,184 +1,212 @@
-# Codex Dream Skin
+
Codex Dream Skin
- 中文 · English
+ Themes, image wallpapers, and live wallpapers for the Codex desktop app.
+ Keep the native sidebar, tasks, project picker, and composer. Never patch the official app package.
-> This repository is an enhanced derivative of [Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin) and preserves its full upstream history. Its current focus is compatibility with recent Windows Codex DOM, sidebar, and system-tray behavior.
-
- Give Codex a face that breathes.
- External themes for the Codex desktop app · Local CDP inject · No official package mutation
+ 中文 · English
- One image, one mood · Code with atmosphere
+
+
+
+
- Unofficial. Does not modify .app / app.asar / WindowsApps.
+
-## Sponsors
-
-
-
-
+ Download Windows EXE
+ ·
+ Install on macOS
+ ·
+ View showcase
+ ·
+ Report an issue
-
- Smarter Connections · Passionate Creation
- Connect AI · Power Creation
-
+> Unofficial and not affiliated with OpenAI. Codex Dream Skin injects themes through loopback-only `127.0.0.1` CDP. It does not modify WindowsApps, `.app`, `app.asar`, or the official code signature.
-
- Thanks to passion8.cc for sponsoring this project.
- Full-power AI gateway: official models, no silent downgrades, no wrapper shells.
- One-line setup for Codex / Claude Code / Grok.
-
+## Why use it
-
-
- Theme install and API config stay separate — this project never rewrites your provider settings.
-
-
+- **The native UI stays interactive** — This is not a fake screenshot over the window. Sidebar, chat, tasks, and composer continue to work.
+- **Live wallpapers inside Codex** — Windows supports muted, looping local MP4/WebM backgrounds. It does not change your desktop wallpaper.
+- **One Windows manager** — Browse, search, preview, and switch wallpapers; control reveal; pause the skin; or restore the stock appearance.
+- **Turn images into themes** — Import PNG, JPEG, or WebP artwork and keep full-window composition readable.
+- **Reversible and auditable** — No official binary patching. Stop injection and return to the stock Codex appearance at any time.
+- **Windows and macOS** — Windows ships a self-contained EXE; macOS ships a menu-bar Studio and installation scripts.
-## Tested featured preset: Arina Hashimoto
+## Windows: start in 30 seconds
-“Arina Hashimoto / 桥本有菜” has been verified on the real Codex home screen in
-both light and dark appearances. The user-provided source PNG is `1672 × 941`;
-the preset's `2560 × 1440` JPEG is a standardized derived export that preserves
-the source's near-16:9 composition and does not add source detail. The sidebar,
-cards, project picker, and composer
-shown below are native Codex controls.
+1. Download [`CodexDreamSkinManager.exe`](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/releases/latest/download/CodexDreamSkinManager.exe).
+2. Run it and select a PNG, JPEG, WebP, MP4, or WebM from your wallpaper library.
+3. Click **应用到 Codex**. Use **启动 / 重新应用** if Codex needs the skin reapplied.
-
- 
- Light · real injected screenshot; unsent input hidden during capture (preview only)
-
+The manager is a self-contained single-file app with the tested Dream Skin engine and Node.js runtime embedded. End users do not need the .NET SDK, Node.js, or manual PowerShell commands.
-
- 
- Dark · real injected screenshot; unsent input hidden during capture (preview only)
-
+> Releases are currently unsigned, so Windows may show an unknown-publisher prompt. Download only from this repository's [Releases](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/releases) page and verify the companion `.sha256` file.
+
+### Wallpaper reveal
+
+The right-side slider controls the relationship between the theme veil and the wallpaper:
+
+- `100%` shows the original image/video with the page-wide veil reduced to zero.
+- Lower values increase text-area and theme treatment visibility for busy backgrounds or task pages.
+
+## macOS installation
+
+Open [`macos/`](./macos/) and double-click:
-Install from the repo and switch in one command on macOS:
+```text
+Install Codex Dream Skin.command
+```
+
+Or run:
```bash
cd macos
-./scripts/install-dream-skin-macos.sh --no-launch
-~/.codex/codex-dream-skin-studio/scripts/switch-theme-macos.sh \
- --id preset-romantic-rose
+./scripts/install-dream-skin-macos.sh
+```
+
+Use the menu-bar Studio to import, save, and switch image themes. See [`macos/README.md`](./macos/README.md) for the full guide.
+
+## Feature matrix
+
+| Feature | Windows | macOS |
+|---|:---:|:---:|
+| PNG / JPEG / WebP image themes | ✅ | ✅ |
+| MP4 / WebM live wallpapers | ✅ | — |
+| Graphical theme manager | ✅ Standalone EXE | ✅ Menu-bar Studio |
+| Wallpaper search and preview | ✅ | ✅ |
+| Save and switch themes | ✅ | ✅ |
+| Wallpaper reveal control | ✅ | — |
+| Pause injection / restore stock appearance | ✅ | ✅ |
+| Modifies official app files | **Never** | **Never** |
+
+## Real results
+
+| Windows / shared theme | macOS dark theme |
+|---|---|
+|  |  |
+
+See [`docs/showcase.en.md`](./docs/showcase.en.md) for more real screenshots, the character preset, and eight concept directions.
+
+## How it works
+
+```text
+Local wallpaper / theme config
+ ↓
+Dream Skin local theme store
+ ↓
+127.0.0.1 loopback CDP
+ ↓
+Independent background layer in the Codex renderer
+ ↓
+Native sidebar, tasks, and composer stay interactive
```
-Windows has a persistent local theme store and system-tray controls, and seeds
-the same Arina Hashimoto preset. For the first repo-based setup:
+Windows videos are transferred to the renderer in chunks and assembled into a Blob URL. Players and blobs are released when switching, pausing, or cleaning up. Video pauses automatically while the page is hidden.
+
+## Security boundaries
+
+- CDP binds only to `127.0.0.1`; it is not exposed to your LAN.
+- The project does not modify WindowsApps, `.app`, `app.asar`, or official signatures.
+- It does not read or rewrite API keys, base URLs, model providers, or Codex conversation content.
+- Avoid running untrusted local programs while a debugging port is active; a malicious local process may attempt to access it.
+- Official Codex updates can change the DOM. If a theme stops applying, try **启动 / 重新应用** and check [Issues](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/issues).
+
+## Run from source and build
+
+### Windows script entry points
```powershell
-powershell -ExecutionPolicy Bypass -File .\windows\scripts\install-dream-skin.ps1
-powershell -ExecutionPolicy Bypass -File .\windows\scripts\start-dream-skin.ps1
+powershell.exe -ExecutionPolicy Bypass -File .\windows\scripts\install-dream-skin.ps1
+powershell.exe -ExecutionPolicy Bypass -File .\windows\scripts\start-dream-skin.ps1
```
-After launch, switch directly through **已保存主题 → 桥本有菜**; no cross-folder
-manual import is required. The enhanced **更换背景图或视频** action accepts
-PNG/JPEG/WebP artwork and muted looping MP4/WebM video, which can then be saved
-for one-click switching.
+### Build the single-file EXE
-> The downloadable user source is [`docs/images/presets/romantic-rose-source.png`](./docs/images/presets/romantic-rose-source.png) (`1672 × 941`); the macOS one-click preset uses the normalized derived [`background.jpg`](./macos/presets/preset-romantic-rose/background.jpg) (`2560 × 1440`). Do not import either screenshot above: they contain real UI and are previews only. The background is a user-provided AI-generated example, not an official OpenAI/Codex visual or endorsement; confirm likeness and asset rights before redistributing it.
+Requires the .NET 8 SDK and Node.js 22+:
-## Concept gallery (not importable backgrounds)
+```powershell
+powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\windows\app\build-manager.ps1
+```
-These eight images communicate achievable visual directions, but they are
-interface mockups rather than usable theme backgrounds. Generate a UI-free
-`2560 × 1440` image with the copy-ready [reference prompt guide](./docs/reference-background-prompt-guide.en.md)
-before importing a similar look. See the [concept prompt breakdown](./docs/background-generation-prompts.md)
-for the eight individual styles.
+Output is written to `windows/dist/`. The build runs the Windows regression suite, publishes a self-contained `win-x64` EXE, and executes a post-publish self-test.
-
- 
- Pink Custom
-
+### Tests
-
- 
- God of Wealth
-
+```powershell
+powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\windows\tests\run-tests.ps1
+```
-
- 
- Red-White Sci-Fi
-
+```bash
+bash macos/tests/run-tests.sh
+```
-
- 
- Clear Custom
-
+## FAQ
-
- 
- Inspiration
-
+
+Is this a Wallpaper Engine replacement?
-
- 
- Purple Night
-
+No. It controls only the theme background inside Codex. The Windows manager can import ordinary MP4/WebM files, but it does not render Wallpaper Engine Scene, Web, or packaged projects.
+
-
- 
- Cyan Virtual Singer
-
+
+Why can an official Codex update break a theme?
-
- 
- Stage Black-Gold
-
+Dream Skin depends on the Codex renderer DOM and local CDP. Official updates can move those structures. **启动 / 重新应用** often fixes it; compatibility patches are published in this repository.
+
-## What it does
+
+Can I return to completely stock Codex?
-- **Real UI** — Sidebar, cards, project picker, and input stay native. Not a fake full-window screenshot.
-- **Continuous wallpaper** — One 16:9 image spans the full window; adaptive focus, safe-area, and route treatment keep native content readable.
-- **Swappable art** — Drop in a UI-free image you like and it becomes your theme.
-- **Saved themes** — Switch local themes from the macOS menu bar or Windows system tray.
-- **Restorable** — One-click restore to the stock look.
-- **Safer path** — Local-loopback CDP inject only. No official binary or signature changes.
+Yes. The Windows manager provides **恢复官方外观**, and the macOS Studio includes uninstall/restore actions. No official application package is patched.
+
-## Quick start
+
+Are wallpaper files uploaded?
-Platform scripts are ready — different plumbing, same goal: theme Codex.
+No. Wallpapers and themes stay local, and injection uses only a loopback connection on your machine.
+
-| Platform | Dir | Entry |
-|------|------|------|
-| Apple Silicon / Intel Mac | [`macos/`](./macos/) | Double-click `Install Codex Dream Skin.command` |
-| Windows | [`windows/`](./windows/) | `scripts/install-dream-skin.ps1` → `start-dream-skin.ps1` |
+## Documentation
-More detail:
+- [Windows guide](./windows/README.en.md)
+- [macOS guide](./macos/README.md)
+- [Platform and path map](./docs/platforms.md)
+- [Showcase](./docs/showcase.en.md)
+- [Reference image-generation prompts](./docs/reference-background-prompt-guide.en.md)
+- [Concept prompt breakdown](./docs/background-generation-prompts.md)
+- [Project notes](./docs/PROJECT.md)
-- Mac: [`macos/README.md`](./macos/README.md)
-- Windows: [`windows/SKILL.md`](./windows/SKILL.md)
-- Paths: [`docs/platforms.md`](./docs/platforms.md)
-- Copy-ready reference prompt guide: [`docs/reference-background-prompt-guide.en.md`](./docs/reference-background-prompt-guide.en.md)
-- Eight concept prompt breakdowns: [`docs/background-generation-prompts.md`](./docs/background-generation-prompts.md)
-- Project notes: [`docs/PROJECT.md`](./docs/PROJECT.md)
+## Sponsor
+
+
+
+
+
+
-## Feedback & contributions
+Thanks to [passion8.cc](https://passion8.cc/register?aff=TuPe) for sponsoring this project. Theme installation and API configuration remain separate; this project never rewrites model-provider settings.
-- **Issues:** Use the [issue templates](./.github/ISSUE_TEMPLATE/) (bug / feature). Blank issues are disabled. Please try Verify / Restore self-checks before filing bugs.
-- **PRs:** Follow the [PR template](./.github/pull_request_template.md) — describe the change and tick the self-checks you actually ran (e.g. `macos/tests/run-tests.sh`, verify / restore).
+## Feedback and contributions
-## Safety
+- Use the [Bug / Feature issue templates](./.github/ISSUE_TEMPLATE/).
+- PRs should include the platform, reproduction or goal, validation command, and restore test.
+- Contribution guide: [中文](./.github/CONTRIBUTING.md) · [English](./.github/CONTRIBUTING.en.md)
-- CDP binds `127.0.0.1` only — avoid untrusted local processes while the theme runs.
-- Does not touch the official install directory or code signature.
-- **Never** rewrites API Key / Base URL; relay and theme stay separate.
+This repository is an enhanced derivative of [Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin) and preserves the full upstream history.
-## License
+## License and trademark notice
-- See [`macos/LICENSE`](./macos/LICENSE) (MIT) and [`macos/NOTICE.md`](./macos/NOTICE.md)
-- Unofficial; Codex and related rights belong to their owners.
-- People / IP material in bundled presets and previews is illustrative only — clear likeness, asset, and trademark rights before commercial redistribution.
+[MIT License](./LICENSE). Not affiliated with OpenAI. Codex and related trademarks belong to their respective owners. Character/IP assets in presets and previews are examples only; confirm likeness, asset, and trademark rights before redistribution.
---
-Star it, pick a look, and make Codex yours for today.
+If Dream Skin makes Codex feel more like your own workspace, consider leaving a **Star** and sharing a screenshot of your theme.
diff --git a/README.md b/README.md
index 2435ad5..292dab8 100644
--- a/README.md
+++ b/README.md
@@ -1,171 +1,212 @@
-# Codex Dream Skin
+Codex Dream Skin
- 中文 · English
+ 给 Codex 桌面端换上主题、静态壁纸和动态壁纸。
+ 保留原生侧栏、任务、项目选择器与输入框,不修改官方安装包。
-> 本仓库是 [Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin) 的增强派生版本,保留完整上游历史;当前重点维护新版 Windows Codex 的 DOM、边栏与系统托盘兼容性。
-
- 给 Codex 桌面端换一张会呼吸的脸。
- 外部主题 / 换肤工具 · 本机 CDP 注入 · 不改官方安装包
+ 中文 · English
- 一张图,一种心情 · 写代码,也要有氛围感
+
+
+
+
- 非 OpenAI 官方产品。不修改 .app / app.asar / WindowsApps。
+
-## 赞助商
-
-
-
-
+ 下载 Windows EXE
+ ·
+ macOS 安装
+ ·
+ 查看效果展厅
+ ·
+ 反馈问题
-
- 更智能的连接 · 更热爱的创造
- 热爱驱动 · 无限可能 · Connect AI · Power Creation
-
+> 非 OpenAI 官方产品。Codex Dream Skin 通过仅绑定 `127.0.0.1` 的本机 CDP 注入主题,不修改 WindowsApps、`.app`、`app.asar` 或官方代码签名。
-
- 感谢 passion8.cc 赞助本项目。
- 满血 AI 中转:官方模型直连,无降智、无套壳;一行配置接入 Codex / Claude Code / Grok。
-
+## 为什么用它
-
-
- 换肤与 API 配置互相独立,本项目不会自动改写你的模型供应商设置。
-
-
+- **原生 UI 保持可用**:不是把一张假界面贴满窗口;侧栏、聊天、任务和输入框仍可正常交互。
+- **Codex 内部动态壁纸**:Windows 支持本地 MP4/WebM 静音循环,不是修改桌面壁纸。
+- **一键式 Windows 管理器**:浏览、搜索、预览和切换壁纸,调整透出度,暂停或恢复官方外观。
+- **图片变主题**:导入喜欢的 PNG、JPEG 或 WebP,自动适配全窗背景与内容可读性。
+- **可恢复、可审计**:不改官方二进制;随时停止注入并恢复 Codex 官方外观。
+- **Windows + macOS**:Windows 提供自包含 EXE,macOS 提供菜单栏 Studio 与安装脚本。
-## 实测精选预设:桥本有菜
+## Windows:30 秒开始
-下面这套「桥本有菜 / Arina Hashimoto」已经在真实 Codex 首页分别验证浅色和暗色外观。用户提供的源 PNG 为 `1672 × 941`,主题包在保持源图近 16:9 构图的前提下派生导出 `2560 × 1440` JPEG,并不代表增加了源图细节。截图中的侧栏、卡片、项目选择和输入框都是 Codex 原生控件。
+1. 下载 [`CodexDreamSkinManager.exe`](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/releases/latest/download/CodexDreamSkinManager.exe)。
+2. 双击运行,在壁纸库选择 PNG、JPEG、WebP、MP4 或 WebM。
+3. 点击「应用到 Codex」。需要时点击「启动 / 重新应用」。
-
- 
- 浅色 · 真实注入截图(未发送输入已在截图时遮蔽,仅预览)
-
+管理器是自包含的单文件程序,内置经过测试的 Dream Skin 引擎与 Node.js 运行时;最终用户不需要安装 .NET SDK、Node.js 或手动执行 PowerShell。
-
- 
- 暗色 · 真实注入截图(未发送输入已在截图时遮蔽,仅预览)
-
+> 当前发布版尚未进行代码签名,Windows 可能显示“未知发布者”。请只从本仓库的 [Releases](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/releases) 下载,并使用同页 `.sha256` 文件核对。
+
+### 壁纸透出
+
+右侧滑杆控制主题蒙层与壁纸的关系:
+
+- `100%`:显示原始壁纸/视频画面,整页主题蒙层降为零。
+- 较低数值:提高文字区与主题蒙层可见度,适合任务页或高对比背景。
+
+## macOS 安装
+
+在仓库的 [`macos/`](./macos/) 目录双击:
+
+```text
+Install Codex Dream Skin.command
+```
-从仓库安装并一键切换(macOS):
+也可在终端执行:
```bash
cd macos
-./scripts/install-dream-skin-macos.sh --no-launch
-~/.codex/codex-dream-skin-studio/scripts/switch-theme-macos.sh \
- --id preset-romantic-rose
+./scripts/install-dream-skin-macos.sh
```
-Windows 使用本地主题仓库与系统托盘,并会预置同一套「桥本有菜」。首次从仓库使用:
+安装后通过菜单栏 Studio 导入、保存和切换图片主题。完整说明见 [`macos/README.md`](./macos/README.md)。
+
+## 功能对照
+
+| 功能 | Windows | macOS |
+|---|:---:|:---:|
+| PNG / JPEG / WebP 图片主题 | ✅ | ✅ |
+| MP4 / WebM 动态壁纸 | ✅ | — |
+| 图形化主题管理 | ✅ 独立 EXE | ✅ 菜单栏 Studio |
+| 壁纸库搜索与预览 | ✅ | ✅ |
+| 保存与切换主题 | ✅ | ✅ |
+| 壁纸透出度 | ✅ | — |
+| 暂停注入 / 恢复官方外观 | ✅ | ✅ |
+| 修改官方应用文件 | **不会** | **不会** |
+
+## 真实效果
+
+| Windows / 通用主题 | macOS 暗色主题 |
+|---|---|
+|  |  |
+
+更多实机截图、人物预设与八种概念方向见 [`docs/showcase.md`](./docs/showcase.md)。
+
+## 工作原理
+
+```text
+本地壁纸 / 主题配置
+ ↓
+Codex Dream Skin 本地主题仓库
+ ↓
+127.0.0.1 回环 CDP
+ ↓
+Codex renderer 中的独立背景层
+ ↓
+原生侧栏、任务与输入框继续交互
+```
+
+Windows 视频会分块传入 renderer 并组装为 Blob URL;切换、暂停或清理时会释放播放器与 Blob。页面隐藏后自动暂停视频,避免无意义播放。
+
+## 安全边界
+
+- CDP 只绑定 `127.0.0.1`,不会对局域网开放调试端口。
+- 不修改 WindowsApps、`.app`、`app.asar` 或官方签名。
+- 不读取或改写 API Key、Base URL、模型供应商或 Codex 聊天内容。
+- 主题运行期间不要运行来路不明的本机程序;本机恶意进程可能尝试访问调试端口。
+- Codex 官方更新可能改变 DOM。若主题失效,请先使用管理器「启动 / 重新应用」,再查看 [Issues](https://github.com/CCDawn/Codex-Dream-Skin-Enhanced/issues)。
+
+## 从源码运行与构建
+
+### Windows 脚本入口
```powershell
-powershell -ExecutionPolicy Bypass -File .\windows\scripts\install-dream-skin.ps1
-powershell -ExecutionPolicy Bypass -File .\windows\scripts\start-dream-skin.ps1
+powershell.exe -ExecutionPolicy Bypass -File .\windows\scripts\install-dream-skin.ps1
+powershell.exe -ExecutionPolicy Bypass -File .\windows\scripts\start-dream-skin.ps1
```
-启动后可直接从「已保存主题 → 桥本有菜」切换;不需要跨目录手动导入。增强版托盘里的「更换背景图或视频」支持 PNG/JPEG/WebP 与静音循环的 MP4/WebM,保存后可继续一键切换。
+### 构建单文件 EXE
-> 可下载的用户源图是 [`docs/images/presets/romantic-rose-source.png`](./docs/images/presets/romantic-rose-source.png)(`1672 × 941`);macOS 一键预设使用 [`macos/presets/preset-romantic-rose/background.jpg`](./macos/presets/preset-romantic-rose/background.jpg)(规范化派生 `2560 × 1440`)。上面两个效果图包含真实 UI,**只作预览,绝不能当背景导入**。背景为用户提供的 AI 生成示例,不代表 OpenAI/Codex 官方视觉或背书;公开再分发前请确认人物与素材权利。
+需要 .NET 8 SDK 和 Node.js 22+:
-## 概念效果图(不可直接导入)
+```powershell
+powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\windows\app\build-manager.ps1
+```
-下面八张图用于表达可实现的视觉方向,但它们是带界面的概念效果图,不是可直接使用的主题背景。需要同类效果时,先按[参考生图提示词](./docs/reference-background-prompt-guide.md)生成无 UI 的 `2560 × 1440` 素材;八种风格的详细拆解见[概念图提示词](./docs/background-generation-prompts.md)。
+输出位于 `windows/dist/`。构建会运行 Windows 回归测试、发布自包含 `win-x64` EXE,并执行发布后自检。
-
- 
- 粉系定制
-
+### 测试
-
- 
- 财神打工版
-
+```powershell
+powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\windows\tests\run-tests.ps1
+```
-
- 
- 红白科幻
-
+```bash
+bash macos/tests/run-tests.sh
+```
-
- 
- 清透定制
-
+## 常见问题
-
- 
- 灵感小宇宙
-
+
+这是 Wallpaper Engine 的替代品吗?
-
- 
- 紫夜限定
-
+不是。它只控制 Codex 应用内部的主题背景。Windows 管理器可以导入普通 MP4/WebM,但不渲染 Wallpaper Engine 的 Scene、Web 或打包项目。
+
-
- 
- 青蓝虚拟歌姬
-
+
+为什么 Codex 更新后主题可能失效?
-
- 
- 舞台黑金
-
+Dream Skin 依赖 Codex 的 renderer DOM 和本机 CDP。官方更新可能调整结构;通常点击「启动 / 重新应用」即可恢复,兼容性修复会持续发布在本仓库。
+
-## 它能做什么
+
+能否恢复完全原生的 Codex?
-- **真·可交互**:侧栏、建议卡、项目选择、输入框都是原生控件,不是整窗假截图贴上去
-- **真背景层**:一张 16:9 纯壁纸连续铺满整窗,首页突出氛围,任务页自动降低干扰
-- **可换图**:换一张喜欢的纯背景,自适应焦点、安全区和配色后变成你的主题
-- **可播视频**:Windows 增强版支持本地 MP4/WebM 静音循环动态壁纸,页面隐藏时自动暂停
-- **可存主题**:macOS 菜单栏与 Windows 系统托盘都能保存/切换本地主题
-- **可恢复**:一键还原官方外观
-- **相对安全**:本机回环 CDP 注入,不改官方二进制与签名
+可以。Windows 管理器提供「恢复官方外观」,macOS Studio 也提供卸载/恢复入口。项目不会修改官方应用包。
+
-## 快速开始
+
+壁纸文件会上传吗?
-仓库内按平台放了现成脚本(实现细节不同,效果都是「主题化 Codex」):
+不会。壁纸与主题保存在本机,注入只通过本机回环连接完成。
+
-| 平台 | 目录 | 入口 |
-|------|------|------|
-| Apple Silicon / Intel Mac | [`macos/`](./macos/) | 双击 `Install Codex Dream Skin.command` |
-| Windows | [`windows/`](./windows/) | `scripts/install-dream-skin.ps1` → `start-dream-skin.ps1` |
+## 文档
-更细的说明:
+- [Windows 使用说明](./windows/README.md)
+- [macOS 使用说明](./macos/README.md)
+- [平台与路径对照](./docs/platforms.md)
+- [效果展厅](./docs/showcase.md)
+- [参考生图提示词](./docs/reference-background-prompt-guide.md)
+- [概念图提示词](./docs/background-generation-prompts.md)
+- [项目记录](./docs/PROJECT.md)
-- Mac:[`macos/README.md`](./macos/README.md)
-- Windows:[`windows/SKILL.md`](./windows/SKILL.md)
-- 路径对照:[`docs/platforms.md`](./docs/platforms.md)
-- 可直接复制的参考生图模板:[`docs/reference-background-prompt-guide.md`](./docs/reference-background-prompt-guide.md)
-- 八种概念方向详细提示词:[`docs/background-generation-prompts.md`](./docs/background-generation-prompts.md)
-- 项目记录:[`docs/PROJECT.md`](./docs/PROJECT.md)
+## 赞助商
-## 反馈与贡献
+
+
+
+
+
-- **Issue:** 请用 [Issue 模板](./.github/ISSUE_TEMPLATE/)(Bug / 功能);已关闭空白 Issue。提交前建议先跑 Verify / Restore 自检。
-- **PR:** 请按 [PR 模板](./.github/pull_request_template.md) 写清改动,并勾选对应自测(如 `macos/tests/run-tests.sh`、verify / restore)。
+感谢 [passion8.cc](https://passion8.cc/register?aff=TuPe) 赞助本项目。换肤与 API 配置互相独立,本项目不会自动改写模型供应商设置。
-## 安全边界
+## 反馈与贡献
+
+- 使用 [Bug / 功能 Issue 模板](./.github/ISSUE_TEMPLATE/) 提交问题。
+- PR 请说明平台、复现或目标、验证命令与恢复测试。
+- 贡献指南:[中文](./.github/CONTRIBUTING.md) · [English](./.github/CONTRIBUTING.en.md)
-- CDP 只绑 `127.0.0.1`,主题运行期间勿跑来路不明的本机程序
-- 不修改官方安装目录与代码签名
-- **不会**自动改写 API Key / Base URL;中转与换肤分开
+本仓库是 [Fei-Away/Codex-Dream-Skin](https://github.com/Fei-Away/Codex-Dream-Skin) 的增强派生版本,并保留完整上游历史。
## 许可与声明
-- 见 [`macos/LICENSE`](./macos/LICENSE)(MIT)与 [`macos/NOTICE.md`](./macos/NOTICE.md)
-- 非 OpenAI 官方产品;Codex 及相关权利归其权利人
-- 随仓库预设及效果图中的人物 / IP 素材仅作主题示意;商用或公开再分发请自行确认肖像、素材与商标权利
+[MIT License](./LICENSE)。非 OpenAI 官方产品;Codex 及相关商标归其权利人。随仓库预设与效果图中的人物/IP 素材仅作主题示意,公开再分发前请自行确认肖像、素材和商标权利。
---
-Star 一下,然后挑一张图,把你的 Codex 变成今天想要的样子。
+如果 Dream Skin 让你的 Codex 更像自己的工作空间,欢迎点一个 **Star**,也欢迎分享你的主题截图。
diff --git a/docs/images/social-preview.png b/docs/images/social-preview.png
new file mode 100644
index 0000000000000000000000000000000000000000..117eeebfc5c42db60c23754857a33a7b35f7c407
GIT binary patch
literal 374870
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