How to import and change a Codex theme
Codex App and Codex CLI use different theme formats. Choose your surface below, follow three steps, and apply a new look in a couple of minutes.
· 2 min read
Codex App themes vs. CLI themes
The two formats solve related problems, but they are not interchangeable.
Format: codex-theme-v1 JSON string
Changes interface colors, fonts, semantic colors, and code palette.
Path: Settings → Appearance → Light/Dark theme row → Import
Format: TextMate .tmTheme file
Changes terminal syntax highlighting and diff colors.
Path: $CODEX_HOME/themes → /theme
Choose where you use Codex
Select your Codex surface, get the right theme format, and follow its installation steps.
The desktop app imports a complete codex-theme-v1 string from Appearance settings. Appearance has separate Light theme and Dark theme rows, each with its own Import button — copy a ready-made theme first, then follow these three steps.
Before you begin: copy a theme
Pick a ready-made Codex App theme and copy its complete import string.
codex-theme-v1:{"codeThemeId":"one","theme":{"accent":"#88c0d0","contrast":100,"fonts":{"code":null,"ui":null},"ink":"#d8dee9","opaqueWindows":true,"semanticColors":{"diffAdded":"#a3be8c","diffRemoved":"#bf616a","skill":"#b48ead"},"surface":"#2e3440"},"variant":"dark"}codex-theme-v1:, contains valid JSON, uses six-digit hex colors, and does not include Markdown code fences. Also check that the string's variant matches the row you pasted it into — a "variant":"dark" string left the Import button disabled in the Light theme row, and only turned it active once pasted into the Dark theme row instead. Some app versions also accept only a codeThemeId already listed in their code-theme dropdown.Frequently asked questions
It is the shareable theme payload used by the Codex desktop app. It includes the App theme colors, fonts, semantic colors, variant, and a base code-theme ID in one copyable string.
Check the codex-theme-v1 prefix, JSON syntax, six-digit hex colors, and codeThemeId. Also confirm the string's variant matches the row you pasted it into — Appearance has separate Light theme and Dark theme rows, and a variant mismatch leaves the Import button disabled even when the rest of the string is valid. Some app versions have also been reported to accept only code-theme IDs already available in their dropdown.
Not directly. The desktop App uses a codex-theme-v1 JSON string, while Codex CLI uses a TextMate .tmTheme file. You need a version of the theme in each format.
Continue learning
Build a native theme string from colors, fonts, semantic values, and a compatible code palette.
Use the unofficial Dream Skin workflow to add an image, banner, and decorative layers on macOS or Windows.