First: protect the native interface
If the sidebar, composer, project selector, task content, or keyboard focus is missing, stop troubleshooting the appearance and restore the official theme first. Those elements are the product. A background that looks correct does not count as success when the real controls are blocked or hidden.
Use the restore entry point from the same project version you installed. On macOS, the community project documents Restore Codex Dream Skin.command. On Windows, use the restore flow in the matching repository folder. Do not kill a random process or delete app files by hand. The current installer records the state it expects; a manual cleanup can make the next diagnosis harder.
The open-source project’s stated boundary is external theming through a local connection. If a fix tells you to rewrite .app, app.asar, WindowsApps, or the official code signature, stop and compare it with the current public repository.
Eight fixes, matched to the symptom
- 01
The theme vanished after a desktop app update
Restore the official appearance, update the theme project, and read recent commits or issues before reinstalling. App updates can rename containers, change route structure, or alter launch behavior. Your image is probably fine; the adapter selectors may be stale. Reinstalling the same old package repeatedly will not repair a changed DOM.
- 02
The installer cannot find Codex
Check which desktop application is actually installed. OpenAI’s current guidance says existing Codex users can update into the unified ChatGPT desktop app, which combines Chat, Work, and Codex. You may have the new app, the older Codex app, ChatGPT Classic, or more than one of them. Use the current platform guide to confirm the supported application path.
- 03
The background loads, but buttons do not work
The decoration layer may be intercepting input. A safe theme layer should use
pointer-events: noneand remain outside the keyboard focus order. Restore immediately if the composer or navigation cannot be clicked. Then update the renderer helper instead of adding a higherz-index, which can make the obstruction worse. - 04
The image is missing or shows a blank panel
Open the exported pack and confirm the background filename matches the manifest and CSS reference. Moving or renaming the file after export can break relative paths. Use PNG, JPG, or WebP, avoid unusual characters in filenames, and test a small known-good image. If a built-in gradient works but your image does not, the problem is the asset path or format.
- 05
The text is unreadable
Increase the readability veil before changing every text selector. A 55–70% dark overlay usually stabilizes a bright photograph. Move the focal point away from the center and composer, add 2–6 pixels of background blur, and choose an off-white text color with strong contrast. Use the browser preview to tune these values without touching the app.
- 06
The theme looks stretched or cropped
Choose a landscape image at least 1920 pixels wide and use cover-style placement with a deliberate focal point. Cropping is expected when the window changes shape; distortion is not. Avoid forcing both width and height to 100% when that ignores aspect ratio. Test wide, medium, and narrow windows before deciding the source image is usable.
- 07
The local CDP connection fails
Close duplicate themed sessions, confirm the expected app process is running, and use the project’s verify command. The repository says the connection should bind to loopback. Do not expose a debugging port to the network or connect to an unknown renderer target. Security checks that reject the wrong process are a protection, not an error to bypass.
- 08
Restore says it worked, but the skin remains
Quit every themed app window, confirm the recorded injector process has stopped, and restart the official application normally. If both ChatGPT and ChatGPT Classic are installed, verify which one you reopened. Then run the project’s doctor or verify command and include its non-sensitive output in a bug report rather than deleting configuration folders.
When you should restore instead of continuing
Restore when native controls disappear, the app opens to a blank route, keyboard focus becomes trapped, the window develops horizontal overflow, the theme connects to an unexpected process, or the app update is newer than the adapter’s documented support. These are functional or security failures, not cosmetic imperfections.
After restoring, confirm that the official app works before attempting a new theme. That separates an upstream desktop issue from a theme issue. If the official appearance is also broken, follow the vendor’s support path. If only the theme path fails, update the adapter or wait for a compatibility release.
How to report a useful Codex Dream Skin bug
Use the public repository’s issue template. Include your operating system and architecture, the exact desktop app name and version, the theme project commit or download date, the command you ran, the observed symptom, the expected native control, and the verify result. Add a screenshot only after removing private tasks, project names, paths, tokens, and personal images.
A useful report distinguishes visual-pack data from adapter behavior. Say whether a built-in gradient works, whether a custom image works in the theme creation preview, whether the official app restores cleanly, and whether the failure started after an update. That evidence helps maintainers reproduce the real boundary instead of guessing.
Separate design from repair
Check the pack before you touch the app.
Preview your background and export a clean ZIP locally.
Open the free generator