中文 · English
Give Codex a face that breathes.
External themes for the Codex desktop app · Local CDP inject · No official package mutation
One image, one mood · Code with atmosphere
Official theme library: DreamSkin.cc · Gallery · Online Studio
Unofficial. Does not modify .app / app.asar / WindowsApps.
|
Thanks to Passion8 for being this project's exclusive sponsor! Passion8 is an AI API relay for developers, giving individuals and teams stable, low-cost access to mainstream large models. Full-power AI, within reach: the full OpenAI and Claude lineups, original models, no silent downgrades and no wrapper shells; frontier models for a fraction of official pricing, with top-ups at 1:1 — $1 = ¥1. Keep your official SDK and point the base URL at Passion8: Claude Code, Codex, Grok, and any OpenAI-compatible client just work — one line of config, no code changes. Global edge acceleration: Cloudflare's global edge plus multi-route BBR acceleration for low latency and high availability; 7×24 relay, 99.9% SLA, sub-second TTFT target. Secure by default: isolated API keys, encrypted key storage, and HTTPS end to end — privacy first. Passion8 has a benefit for this project's users: register through this link and your first top-up earns an automatic 10% bonus — no application needed, credited within 30 minutes. Questions go to support@passion8.cc. |
Theme install and API config stay separate — this project never rewrites your provider settings.
Ordinary users first install and quit the official Codex / ChatGPT app once, then download from GitHub Releases:
- macOS: open
CodexDreamSkin-vX.Y.Z.dmgand drag the app to Applications. - Windows: run
CodexDreamSkin-Setup-vX.Y.Z.exeand follow the wizard.
No source checkout, Node.js install, .sh, or .ps1 command is required. See
the macOS guide or
Windows guide for unsigned first-run approval,
updates, and uninstall steps.
DreamSkin.cc · the official theme library and authoring platform
Make your workspace yours.
Browse the Gallery → · Online Studio →
- Gallery — browse reviewed community themes with recent/popular sorting and creator rankings. Every theme can be tried on in an in-page desktop simulator before you install it.
![]() 悟空(WUKONG) by JamesOpsLab |
![]() DeepSeek-鲸鱼娘 by powerdog996 |
- Online Studio — swap the background, tune
theme colors, and write Safe CSS in the browser, then export a
.zippack or submit it to the library (sign-in required; published after human review).
Online Studio · swap in a background you like, dial in the focal point and palette — now it's your theme
The macOS menu bar and Windows tray both link straight to Gallery and Online Studio.
Found a theme you like on DreamSkin.cc? Apply hands it to the local client directly — no download-then-import step. Requires client v1.5.0 or newer (v1.5.5+ recommended).
Flow and safety boundary:
- The page invokes the local app through
dreamskin://apply?version=ver_.... The link can carry exactly one theme version ID — never an arbitrary URL, file path, or command — and there is no silent-apply parameter. - The app fetches the package only from the fixed official API, and refuses redirects.
- A native confirmation appears first, and the app checks the version's review status, apply-compatibility flag, version, package size, actually downloaded byte count, and SHA-256.
- It then reuses exactly the same ZIP, manifest, image, and Safe CSS validation as a manual import.
- Success requires the real renderer to report the new theme as rendered. On a launch or render failure the app tries to restore the previous theme, and the restore is itself visibility-verified; if it cannot confirm either state it reports the status as unconfirmed rather than claiming a rollback.
Only themes that fully satisfy the current pack contract (background image +
theme.json + non-empty theme.css + declared safe-css capability) show the
one-click button. Anything else goes through the manual import below.
Special thanks to @seansong-ideogram for designing and contributing this striking, atmospheric original gothic science-fiction work to the community. It leads the tested featured presets and is the default theme for fresh macOS installs.

Real injected Codex home screen (preview only)
After installing on macOS, switch directly from Saved Themes in the menu bar.
“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.

Light · real injected screenshot; unsent input hidden during capture (preview only)

Dark · real injected screenshot; unsent input hidden during capture (preview only)
This portrait material remains in the source repository for reference and rights review; it is excluded from public DMG and Setup.exe assets. Public installers seed only the redistributable Gothic Void Crusade preset. Users can still choose Change Background to import UI-free artwork they are entitled to use and save it for one-click switching.
The downloadable user source is
docs/images/presets/arina-hashimoto-source.png(1672 × 941); the source-only reference preset uses the normalized derivedbackground.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; do not put it in a public installer without confirmed likeness and asset rights.
- 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.
- One-click apply — Hit apply on DreamSkin.cc; the client verifies origin and checksum, then installs it.
- Theme ZIP import — Pick an ordinary
.zipon either platform and add a validated pack to the local library. - Restorable — One-click restore to the stock look.
- Safer path — Local-loopback CDP inject only. No official binary or signature changes.
You do not need to clone the repository, install Node.js, or run .sh / .ps1
files. Download the latest package for your platform from
GitHub Releases, then
follow the graphical first-run guide:
| Platform | Download | Install guide |
|---|---|---|
| macOS | CodexDreamSkin-vX.Y.Z.dmg |
docs/install-macos.md |
| Windows | CodexDreamSkin-Setup-vX.Y.Z.exe |
docs/install-windows.md |
After installation, use the menu bar (macOS) or system tray (Windows). Updates are manual: download the new package and install over the existing one; themes and images are preserved. Because the public packages are unsigned, a new download may show a one-time OS security warning; the guides explain the safe GUI approval path.
For themes from DreamSkin.cc, prefer one-click apply. The
manual .zip path below is the fallback, and covers packs from any other source.
Choose Import Theme ZIP… from the macOS menu bar app or Windows tray. Only
ordinary .zip files are accepted; the legacy .dreamskin extension is not
supported, and renaming the suffix is not a supported migration path. An
official Studio pack contains manifest.json, theme.json, and exactly one
background.webp|jpg|png, plus non-empty theme.css; LICENSE.txt and the
reserved manifest.sig. Put these files at ZIP root or inside exactly one
top-level theme folder. The importer verifies platform and minimum-client
compatibility plus every declared payload file's byte length and SHA-256.
theme.css must pass the local Safe CSS validator and can affect only the 12
registered parts. It is revalidated on every import and apply. manifest.sig
is not used for signature verification.
The local simplified ZIP must contain exactly non-empty theme.json, non-empty
theme.css, and its referenced image. That format has no official
manifest integrity or compatibility declaration and should come from a trusted
source. Limits are 32 MiB per archive, 32 entries, and 64 MiB expanded. Import
adds the pack to Saved Themes without changing the active theme. Identical
content is not duplicated. A newer pack with the same ID updates the saved theme
in place after the old directory identity is confirmed, and only legacy -2/-3
directories with an identical semantic fingerprint are cleaned up. If the
existing directory identity cannot be confirmed, import fails closed instead of
overwriting it; names alone are never used to delete another theme.
For a manual fallback, extract the archive and move the complete directory
containing theme.json, theme.css, and its image into the saved-theme folder:
- macOS:
~/Library/Application Support/CodexDreamSkinStudio/themes/ - Windows:
%LOCALAPPDATA%\CodexDreamSkin\themes\
Both controls include Open Themes Folder. Reopen the menu/tray after moving
the directory. Do not add another wrapper level, links, nested archives, or an
image-only folder without theme.json. Manual placement bypasses the ZIP
importer's archive checks, so use trusted content only.
Platform scripts are ready — different plumbing, same goal: theme Codex.
| Platform | Dir | Entry |
|---|---|---|
| Apple Silicon / Intel Mac | macos/ |
Double-click Install Codex Dream Skin.command |
| Windows | windows/ |
scripts/install-dream-skin.ps1 → start-dream-skin.ps1 |
More detail:
- Mac:
macos/README.md - Windows:
windows/README.md - Paths:
docs/platforms.md - Copy-ready reference prompt guide:
docs/reference-background-prompt-guide.en.md - Eight concept prompt breakdowns:
docs/background-generation-prompts.md - Project notes:
docs/PROJECT.md
- Issues: Use the issue templates (bug / feature). Blank issues are disabled. Please try Verify / Restore self-checks before filing bugs.
- PRs: Follow the PR template — describe the change and tick the self-checks you actually ran (e.g.
macos/tests/run-tests.sh, verify / restore).
- CDP binds
127.0.0.1only, but it has no authentication; another process on the same computer may still connect and inspect or control the renderer. - Pausing the theme or stopping only the injector does not close the debug port of an already running Codex process. Use a full Restore/restart, or quit every Codex process and reopen the official app normally, to end the exposure window.
- Does not touch the official install directory or code signature.
- Never rewrites API Key / Base URL; relay and theme stay separate.
- See
SECURITY.mdfor the complete threat model and operating guidance.
- See
macos/LICENSE(MIT) andmacos/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.
Star it, pick a look, and make Codex yours for today.


