You pasted a codex-theme-v1 string into Codex, hit import… and nothing changed. Frustrating — but it's almost always one specific cause, and the fix takes under a minute.
codeThemeId that isn't a built-in value. Change "codeThemeId":"custom" to a valid built-in like "one" or "catppuccin" — your custom colors still apply. Or just use our theme generator, which locks this field so import never fails.As of the 2026 Codex app builds, the Appearance importer validates the codeThemeId field against a fixed list of built-in themes. If the payload uses an id that isn't on that list — most commonly "custom" — the import fails silently. No error, no change, no theme. This is the single most common reason a codex theme is not showing.
The rest of your payload (accent, surface, ink, diff colors) is perfectly valid — it's only that one gatekeeper field blocking the whole import.
codex-theme-v1:{
"codeThemeId": "custom",
"theme": { "accent": "#7c5cff", … }
}
codex-theme-v1:{
"codeThemeId": "one",
"theme": { "accent": "#7c5cff", … }
}
Valid built-in ids include one, catppuccin, matrix, solarized, monokai. Setting one of these does not override your custom colors — those still come from the theme object.
Paste it into any text editor so you can see the JSON after the codex-theme-v1: prefix.
Look for "codeThemeId": "custom" (or any unfamiliar value).
Change it to "codeThemeId": "one". Keep everything else exactly as-is.
Back in Codex → Settings → Appearance → Import, paste the corrected string. Your codex theme now shows instantly.
Apple Terminal has weak 24-bit color support. If you're theming the Codex CLI rather than the app, try an ANSI-friendly theme or switch to iTerm2 / Warp / Kitty.
Dark and Light themes import separately. If you pasted a dark theme while Codex is in Light mode, switch modes (or import into both) to see it.
A stray comma or missing brace makes the whole string invalid. Regenerating from a tool avoids this entirely.
codex-theme-v1 string with a locked built-in id — so a codex theme not showing is a problem you never have to debug again.codeThemeId. The importer silently rejects ids that aren't built in. Change it to one or catppuccin and re-import — your custom colors still apply.theme object. codeThemeId only needs to be a valid built-in so the importer accepts the payload.codeThemeId to a valid value automatically, so every codex theme you export imports on the first try.