Turn an image, a theme URL, or a loose aesthetic description into a valid portable Codex app theme string. Use this when someone wants a `codex-theme-v1:` import for Codex.app and needs the result clearly labeled as a dark or light theme.
Turn an image, a theme URL, or a loose aesthetic description into a valid portable Codex app theme string. Use this when someone wants a `codex-theme-v1:` import for Codex.app and needs the result clearly labeled as a dark or light theme.
Codex App Themer
Overview
This skill converts theme inspiration into a Codex desktop app import string that the user can paste into the theme importer. It supports three input styles: image, URL, and vague text description.
Use This Skill When
The user wants a portable codex-theme-v1: string for Codex.app.
The source is an image, a URL to an existing theme, or a text-only vibe description.
The user wants a recognizable approximation of an existing theme within Codex app theme constraints.
Hard Constraints
Always tell the user explicitly whether the output is a Dark theme or Light theme.
Always return the final portable string.
Only ask a clarifying question about dark vs light when the source is truly ambiguous.
If the variant is clear from the source or request, do not ask. Use that variant.
If you must choose without asking, default to dark.
codeThemeId: choose the closest supported match from references/code_theme_registry.json. Use codex when the main goal is chrome matching rather than exact syntax matching.
accent: main highlight color.
surface: main window background.
ink: primary foreground color.
contrast: integer 0..100; higher values mean stronger separation.
fonts: leave null unless the user explicitly asks for fonts.
opaqueWindows: use true unless the user clearly wants a translucent or glassy feel.
semanticColors.diffAdded: choose a readable green aligned with the palette.
semanticColors.diffRemoved: choose a readable red aligned with the palette.
semanticColors.skill: choose a vivid secondary accent that still reads distinctly from accent.
4. Validate And Encode
After choosing the theme spec, normalize and encode it with:
On macOS/Linux, calling the Python script directly is fine. On Windows, if python resolves to the Microsoft Store shim or is missing, prefer the PowerShell wrapper in scripts/encode_codex_theme.ps1; it tries python, then python3, then py -3, and finally uv run.
You can also avoid shell-quoting issues by using a file-backed payload: