A safe, updateable, community-driven theme engine for the ChatGPT desktop app.
Tauri 2 + Rust · macOS and Windows · English and 简体中文
Website · Download · Theme Development · Feedback
简体中文 | English
ReTheme separates the stable logical slots used by theme authors from version-specific ChatGPT adaptation. A theme declares colors, CSS, images, and localized copy, while signed compatibility data can update independently when ChatGPT changes.
A theme can consistently cover ChatGPT backgrounds, home banners, suggestion cards, the composer, sidebar, menus, icons, settings, and conversations while preserving native interactions and responsive layout.
| Capability | Description |
|---|---|
| Theme runtime | Covers home, conversations, composer, sidebar, menus, settings, cards, and decoration slots |
| Community themes | Downloads through retheme:// deep links and installs only after platform signature verification |
| Local development | Loads an unpacked theme directory directly for fast authoring and iteration |
| Safe restore | Restores the official ChatGPT interface when a theme stops, ReTheme exits, or an update installs |
| Remote compatibility | Selects signed adaptation data by ChatGPT version so old and new releases can coexist |
| Desktop experience | Tray behavior, single instance, bilingual UI, light/dark appearance, and signed auto-updates |
No community theme ships inside this repository or the desktop installer. Themes are published to the community and downloaded on demand.
Get the latest build from GitHub Releases:
- macOS Apple Silicon (
aarch64) - macOS Intel (
x86_64) - Windows x64 bilingual installer (English / Simplified Chinese)
ReTheme detects the installed ChatGPT app on first launch. Closing the main window hides it to the tray; use “Quit ReTheme” from the tray menu to terminate it completely.
A development theme is an unpacked directory. You do not need to clone ReTheme source, install Rust or Cargo, decrypt .ctheme, or hold a platform key. Choose either workflow below.
The Theme Development Guide is the single manual reference for fields, slots, localization, appearances, Banner assets, and QA. Create a minimal theme with:
pnpm dlx @duxweb/retheme-theme-skill create ./my-themeEdit manifest.json, styles/, and assets/, then validate the directory with the same checker used by the desktop app and server:
pnpm dlx @duxweb/retheme-theme-skill validate ./my-themeValidate the final source ZIP as well:
pnpm dlx @duxweb/retheme-theme-skill validate ./my-theme.zipChoose “Load local theme” in ReTheme for real-app testing. For community publication, upload a source ZIP whose root directly contains manifest.json; the platform reviews it and creates the .ctheme package.
Install the complete Skill with one command:
pnpm dlx @duxweb/retheme-theme-skill installThe package contains the full protocol, slots, QA, Banner prompts, starter template, and a compiled validator for the current platform. No repository checkout is needed. Restart Codex and describe the task directly:
Use the retheme-theme-development Skill to create a bilingual light/dark theme in /path/to/my-theme. Validate it, but do not package it as .ctheme.
The AI must treat the shared validator as authoritative. It must not weaken the protocol for a theme, target private ChatGPT class names, or change native layout behavior.
Install Node.js 22, pnpm 10, Rust stable, and the platform requirements for Tauri.
pnpm install
cp src-tauri/config/api.example.toml src-tauri/config/api.toml
cp src-tauri/config/security.example.toml src-tauri/config/security.toml
pnpm tauri devRun the checks:
pnpm test
pnpm build
cargo test --manifest-path src-tauri/Cargo.toml
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warningsConfiguration templates contain no production secrets. Maintainers should read the release guide and security model.


