codex-theme-creator

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Create a Codex theme

创建Codex主题

Create a reversible decorative theme without modifying
app.asar
, the signed app bundle, WindowsApps, user tasks, or authentication data. Preserve native layout and interaction behavior unless the chosen layout mode explicitly permits a bounded composition change.
创建可还原的装饰性主题,不得修改
app.asar
、签名应用包、WindowsApps、用户任务或认证数据。除非所选布局模式明确允许有限的布局变更,否则需保留原生布局和交互行为。

Authority boundary

权限边界

Use this skill as the sole design and QA authority for a new Codex theme. Do not read, copy, or combine another installed theme skill, finished theme manifest, finished theme CSS, or local theme collection unless the user explicitly names that source. Do not describe the workflow as combining this skill with “local theme conventions.” Start from this skill's matching skeleton and the user's brief or reference image.
This skill is standalone. Its TypeScript scripts own scaffolding, validation, reversible session application, and restore. Never detect, invoke, read configuration from, or claim a dependency on CodeDrobe, Dream/Fiona, or another theme injector unless the user explicitly asks to use that product. Do not reuse their marker names or runtime data. The only required local tools are Node.js,
npx
, and the official Codex desktop app.
将本技能作为新Codex主题的唯一设计与QA权威。除非用户明确指定来源,否则不得读取、复制或结合其他已安装的主题技能、已完成的主题清单、已完成的主题CSS或本地主题集合。不得将工作流程描述为结合本技能与“本地主题惯例”。需从本技能对应的框架模板和用户的简报或参考图片开始。
本技能为独立工具。其TypeScript脚本负责脚手架搭建、验证、可还原的会话应用及恢复操作。除非用户明确要求使用该产品,否则不得检测、调用、读取配置或声明依赖于CodeDrobe、Dream/Fiona或其他主题注入工具。不得复用它们的标记名称或运行时数据。唯一需要的本地工具为Node.js、
npx
和官方Codex桌面应用。

Managed storage

托管存储

Keep every generated theme file in the managed library
~/.codexthemes
unless the user explicitly requests another location:
  • editable source and artwork:
    ~/.codexthemes/themes/<theme-id>/
  • previews:
    ~/.codexthemes/themes/<theme-id>/previews/
  • shareable packages:
    ~/.codexthemes/exports/
  • runtime state:
    ~/.codexthemes/state/
Never create a staging, scratch, or temporary copy of theme files in or near the current workspace (for example a
.codexthemes-stage
directory). If the sandbox or permission mode blocks writing to
~/.codexthemes
, ask the user to approve writing there instead of writing somewhere else first and moving files later.
除非用户明确要求其他位置,否则将所有生成的主题文件保存在托管库
~/.codexthemes
中:
  • 可编辑源码与艺术资源:
    ~/.codexthemes/themes/<theme-id>/
  • 预览图:
    ~/.codexthemes/themes/<theme-id>/previews/
  • 可分享包:
    ~/.codexthemes/exports/
  • 运行时状态:
    ~/.codexthemes/state/
不得在当前工作区或附近创建主题文件的暂存、临时副本(例如
.codexthemes-stage
目录)。若沙箱或权限模式阻止写入
~/.codexthemes
,请先请求用户批准写入该位置,而非先写入其他位置再移动文件。

Read the required references

阅读必要参考文档

Before creating or substantially redesigning a theme, read these files completely:
  • references/design-playbook.md
    : layout modes, semantic palette, selectors, and surface coverage.
  • references/qa-checklist.md
    : real-app acceptance matrix and hard failures.
  • references/theme-schema.md
    : manifest and portable package contract.
  • references/asset-rights.md
    : user-material handling and submission handoff.
Do not begin artwork or CSS until the design contract below is written.
在创建或大幅重新设计主题前,请完整阅读以下文件:
  • references/design-playbook.md
    :布局模式、语义调色板、选择器及界面覆盖范围。
  • references/qa-checklist.md
    :真实应用验收矩阵及严重故障说明。
  • references/theme-schema.md
    :清单与可移植包规范。
  • references/asset-rights.md
    :用户素材处理及提交交接说明。
在完成以下设计契约前,不得开始艺术创作或CSS编写。

Gate 1: write the design contract

关卡1:编写设计契约

Record:
  • layoutMode
  • backgroundScope
  • decorDensity
  • light or dark mode and the reason
  • artwork focal point and text-safe region
  • semantic palette
  • surfaces allowed to change
  • native geometry and states that must remain unchanged
  • target desktop and narrow viewports
Choose the layout mode in this order:
  1. Use
    native-immersive
    as the default when the user supplies a reference image or names a visual world (a game, film, anime, brand, season, or other strong art direction): keep the native layout and deliver coordinated sidebar, card, menu, composer, settings, diff, and terminal materials plus the decoration menu in
    references/design-playbook.md
    .
  2. Use
    native-background
    only when the user explicitly restricts the theme to a background change.
  3. Use
    editorial-showcase
    only when the reference clearly requires a bounded portrait, product, or campaign hero with a different home composition.
  4. Use
    palette-only
    when no dominant artwork is required.
Record
decorDensity
as
minimal
,
balanced
, or
rich
. Default to
rich
when the reference has a strong art direction and
balanced
otherwise; use
minimal
only when the user explicitly asks for a background-only or quiet theme. The design playbook defines the element coverage each density requires. A theme that ships one background image and a veil does not satisfy
balanced
or
rich
.
Default
backgroundScope
to
home
. Use
workspace
only when the user explicitly wants artwork on normal task and conversation pages. Never infer a conversation page merely because the page is not home; settings and system pages must not inherit task artwork.
Do not default to dark mode. Match an explicit request or the reference luminance. Ambiguous editorial, floral, portrait, stationery, lifestyle, productivity, and pastel concepts default to light.
记录以下内容:
  • layoutMode
    (布局模式)
  • backgroundScope
    (背景作用范围)
  • decorDensity
    (装饰密度)
  • 亮色或暗色模式及选择理由
  • 艺术元素焦点区域与文本安全区域
  • 语义调色板
  • 允许变更的界面
  • 必须保持不变的原生几何结构与状态
  • 目标桌面及窄视口
按以下优先级选择布局模式:
  1. 当用户提供参考图片或指定视觉风格(游戏、电影、动漫、品牌、季节或其他明确艺术方向)时,默认使用
    native-immersive
    :保留原生布局,提供协调的侧边栏、卡片、菜单、编辑器、设置、差异对比及终端素材,加上
    references/design-playbook.md
    中的装饰菜单。
  2. 仅当用户明确限制主题仅变更背景时,使用
    native-background
  3. 仅当参考内容明确需要有限的竖版、产品或宣传主视觉及不同主页布局时,使用
    editorial-showcase
  4. 无需主导艺术元素时,使用
    palette-only
decorDensity
记录为
minimal
(极简)、
balanced
(均衡)或
rich
(丰富)。当参考内容有明确艺术方向时默认使用
rich
,否则默认使用
balanced
;仅当用户明确要求仅背景或低干扰主题时使用
minimal
。设计手册定义了每种密度要求的元素覆盖范围。仅包含一张背景图片和遮罩的主题不符合
balanced
rich
密度要求。
backgroundScope
默认设为
home
(主页)。仅当用户明确希望在常规任务和对话页面添加艺术元素时,使用
workspace
(工作区)。不得仅因页面非主页就推断为对话页面;设置页和系统页不得继承任务页的艺术元素。
不得默认使用暗色模式。需匹配用户明确请求或参考内容的亮度。模糊的编辑类、花卉类、人像类、文具类、生活方式类、生产力类及柔和色调概念默认使用亮色模式。

Gate 2: capture the native contract

关卡2:记录原生契约

Inspect the unmodified live app at the same viewport and record evidence for:
  • home heading, native suggestion cards, project selector, and composer
  • populated conversation and activity rows
  • settings and profile pages
  • personal menu, dropdown, dialog, and tooltip
  • attachments, file cards, changed-files/diff, and output panels
  • terminal before and after xterm mounts
  • sidebar idle, hover, selected, project hover, long titles, and row actions
  • header actions at narrow and wide widths
Treat geometry, visibility, hit targets, keyboard focus, and hover-only actions as invariants unless the design contract explicitly permits a change.
在相同视口下检查未修改的实时应用,并记录以下内容的验证依据:
  • 主页标题、原生建议卡片、项目选择器及编辑器
  • 已填充的对话与活动行
  • 设置页与个人资料页
  • 个人菜单、下拉菜单、对话框及提示框
  • 附件、文件卡片、变更文件/差异对比及输出面板
  • xterm挂载前后的终端
  • 侧边栏的空闲、悬停、选中、项目悬停、长标题及行操作状态
  • 窄宽两种宽度下的头部操作按钮
除非设计契约明确允许变更,否则将几何结构、可见性、点击目标、键盘焦点及仅悬停操作视为不可变项。

Gate 3: scaffold the correct skeleton

关卡3:搭建正确的框架模板

Run from the installed skill directory:
bash
npx tsx scripts/scaffold-theme.ts \
  --id <safe-slug> \
  --name "<display name>" \
  --layout-mode <native-background|native-immersive|editorial-showcase|palette-only> \
  --background-scope <home|workspace> \
  [--art /absolute/artwork.png]
The default source location is
~/.codexthemes/themes/<safe-slug>/
. Always use that managed library unless the user explicitly requests another location; only then pass
--output /absolute/theme-parent
. Never use the current workspace merely because it is writable.
Never start by copying a finished theme that uses another layout mode.
从已安装的技能目录运行以下命令:
bash
npx tsx scripts/scaffold-theme.ts \
  --id <safe-slug> \
  --name "<display name>" \
  --layout-mode <native-background|native-immersive|editorial-showcase|palette-only> \
  --background-scope <home|workspace> \
  [--art /absolute/artwork.png]
默认源码位置为
~/.codexthemes/themes/<safe-slug>/
。除非用户明确要求其他位置,否则始终使用该托管库;仅在此时传递
--output /absolute/theme-parent
参数。不得仅因当前工作区可写入就使用它。
不得从复制使用其他布局模式的已完成主题开始。

Gate 4: implement in controlled layers

关卡4:分层可控实现

Build CSS in this order:
  1. semantic tokens
  2. shell surfaces
  3. exact route-scoped backgrounds
  4. native component roots
  5. interaction states
  6. non-interactive decoration
  7. responsive and reduced-motion rules
Restraint applies to geometry and interaction, not to coverage: implement every surface material and decoration element the contracted
decorDensity
requires (see the playbook's decoration menu). A theme that only swaps the background and leaves native cards, composer, sidebar, header, typography, and scrollbars untouched is unfinished at
balanced
or
rich
density. Use stable roles, test IDs, verified component classes, and narrowly anchored
:has(...)
. Avoid localized text selectors when a structural hook exists.
Never apply broad
opacity
,
display
,
visibility
,
position
,
overflow
, or
color
overrides to
aside *
,
main *
, generic
svg
, or broad descendant groups. Never use descendant
opacity: 1
to repair contrast; it exposes hidden row actions.
Define one owner for every divider, outline, sidebar edge, card boundary, and header boundary. Use a solid readable header surface; keep gradients and artwork behind content rather than behind low-contrast toolbar controls. Keep all decoration below native controls with
pointer-events: none
.
For light themes, keep settings, menus, dialogs, output/diff panels, code surfaces, and terminal hosts in the same light semantic system unless the contract deliberately defines a contrast panel. Theme terminal host, xterm viewport, and xterm screen together.
Changing a surface's background does not restyle its text. The native app (especially in dark mode) sets explicit light text colors on many descendants, and an inherited
color
on
main
,
aside
, or
header
never overrides an explicit descendant color. Whenever a background flips luminance (a light theme over the native dark mode, or the reverse), override the text tokens on the same descendants that carry them — message bodies, markdown content, list items, buttons, labels — not just the container. This is the single most common way a theme ships unreadable.
Install the stylesheet before asynchronously decoding large artwork so cold launch does not flash the native page and then jump to a different layout.
Increment the manifest version after every visible change.
按以下顺序编写CSS:
  1. 语义令牌
  2. 外壳界面
  3. 精确路由范围的背景
  4. 原生组件根元素
  5. 交互状态
  6. 非交互式装饰
  7. 响应式与低动画规则
约束适用于几何结构与交互,而非覆盖范围:需实现契约中
decorDensity
要求的所有界面素材与装饰元素(请参阅设计手册的装饰菜单)。仅更换背景而保留原生卡片、编辑器、侧边栏、头部、排版及滚动条不变的主题,在
balanced
rich
密度下属于未完成状态。使用稳定的角色、测试ID、已验证的组件类及范围明确的
:has(...)
选择器。当存在结构化钩子时,避免使用本地化文本选择器。
不得对
aside *
main *
、通用
svg
或宽泛的后代组应用全局
opacity
display
visibility
position
overflow
color
覆盖。不得使用后代
opacity: 1
修复对比度;这会暴露隐藏的行操作按钮。
为每个分隔线、轮廓、侧边栏边缘、卡片边界及头部边界定义唯一的归属元素。使用清晰可读的头部界面;将渐变和艺术元素置于内容后方,而非低对比度工具栏控件后方。使用
pointer-events: none
将所有装饰元素置于原生控件下方。
对于亮色主题,除非契约特意定义对比面板,否则需将设置、菜单、对话框、输出/差异对比面板、代码界面及终端宿主保持在同一亮色语义系统中。需同时为终端宿主、xterm视口及xterm屏幕设置主题。
变更界面背景不会自动重新设置其文本样式。原生应用(尤其是暗色模式下)会为许多后代元素设置明确的亮色文本颜色,而
main
aside
header
上继承的
color
永远无法覆盖后代元素的明确颜色。每当背景亮度反转(亮色主题覆盖原生暗色模式,或反之),需在承载文本令牌的相同后代元素上覆盖文本令牌——消息正文、Markdown内容、列表项、按钮、标签——而非仅在容器上设置。这是主题发布后出现文本不可读问题的最常见原因。
在异步解码大型艺术资源前先安装样式表,避免冷启动时先闪显原生页面再跳转到不同布局。
每次可见变更后递增清单版本号。

Gate 5: validate before application

关卡5:应用前验证

Run:
bash
npx tsx scripts/validate-theme.ts /absolute/theme-directory
Fix every error. Treat warnings as unresolved until checked against the design contract. Static validation does not replace visual verification.
Generate a self-contained preview at both 1440x900 and a narrow viewport. Save previews in
~/.codexthemes/themes/<theme-id>/previews/
(the scaffold already creates this directory); never write them to the workspace or a staging directory. Label each one as a design preview, never as a verified Codex screenshot.
Every preview must show the full themed workspace — sidebar, header, and home content in one frame — never the background artwork alone. Keep the primary desktop preview as a raster file (PNG, JPEG, or WebP; for example
previews/home-1440x900.png
): it becomes the theme's gallery and detail image on codexthemes.ai. After Gate 6 verification, replace it with a real screenshot of the applied theme.
运行以下命令:
bash
npx tsx scripts/validate-theme.ts /absolute/theme-directory
修复所有错误。将警告视为未解决问题,需对照设计契约进行检查。静态验证无法替代视觉验证。
生成1440x900分辨率及窄视口下的独立预览图。将预览图保存至
~/.codexthemes/themes/<theme-id>/previews/
(脚手架已创建该目录);不得将其写入工作区或暂存目录。将每个预览图标记为设计预览,而非已验证的Codex截图。
每个预览图必须展示完整的主题工作区——侧边栏、头部及主页内容在同一帧中——不得仅展示背景艺术元素。将主桌面预览图保存为光栅文件(PNG、JPEG或WebP;例如
previews/home-1440x900.png
):它将成为codexthemes.ai上主题的图库及详情图片。通过关卡6验证后,将其替换为主题应用后的真实截图。

Gate 6: apply and verify the real app

关卡6:在真实应用中应用并验证

Ask for explicit permission before applying a theme or restarting Codex. Use this skill's own reversible TypeScript runtime; do not search for or prefer an external theme program.
If Codex is already exposing a local debugging endpoint, apply without restarting:
bash
npx tsx scripts/apply-theme.ts apply /absolute/theme-directory
If no endpoint exists, ask specifically for permission to restart Codex, then use the standalone launcher:
bash
npx tsx scripts/apply-theme.ts apply /absolute/theme-directory --launch
When no endpoint is live,
--launch
prints
{"status": "scheduled"}
and hands the quit → relaunch → inject sequence to a detached helper that survives the restart. This is required because an agent hosted inside Codex dies together with Codex; expect the current tool call (and possibly the session) to be interrupted by the restart. Never work around the restart yourself: do not write shell wrappers, launchd or scheduled tasks, copies of the script, or any other relaunch mechanism — the
--launch
helper already survives the restart.
The launcher supports macOS and Windows (on Windows it locates the Codex/ChatGPT executable, closes it gracefully with
taskkill
— never
/F
— and relaunches it with the debugging flags; pass
--app
with the full
.exe
path if detection fails). If the endpoint never appears after a Windows relaunch, that installed build (for example a Microsoft Store package) drops the debugging flags — report that limitation plainly and finish source, preview, validation, and packaging instead; never modify files under
WindowsApps
.
"scheduled"
is not success. After Codex is back, verify before reporting anything:
bash
npx tsx scripts/apply-theme.ts status
status
probes every live Codex page and reports
"active"
with the injected theme id only when the style element is really in the DOM. If it reports
"inactive"
, read
~/.codexthemes/state/launch.log
for the helper's result and error.
If an old theme keeps re-appearing after a successful apply (a stale session from an earlier task is still re-injecting it), get the user's restart permission and force a clean relaunch with
apply ... --launch --relaunch
— never ask the user to quit the app by hand and never invent your own restart mechanism.
For later one-command switching between finished themes, hand off to the
codex-theme-switcher
skill; this skill's apply runtime is for creation-time QA.
The launcher binds debugging to
127.0.0.1
, injects only an owned
<style>
element and CodexThemes page markers, does not modify the signed application bundle, and keeps the theme active across SPA route changes and renderer reloads for the current app session. A full application quit requires reapplying the theme (again with
--launch
). Restore at any time with:
bash
npx tsx scripts/apply-theme.ts restore
If standalone application is unavailable on the current platform, finish the source, preview, validation, and package. State the application limitation plainly; never silently fall back to another installed injector.
Immediately after every apply — hot swap or post-restart — run the automated readability gate before anything else:
bash
npx tsx scripts/qa-contrast.ts
It hard-fails (exit 1) when visible text is unreadable, using two independent measurements: computed-style composition over verified opaque backdrops, and real screenshot pixels (
pixelFailures
), which also judge text sitting over artwork and transparent layers. A
fail
means the theme is unreadable right now: fix the text tokens or artwork veils (or switch back to the previous theme) before doing anything else, and never leave a failing theme active or report it as applied. A
pass
is necessary but not sufficient; continue with the full matrix:
Verify independently:
  • structure: native sidebar, cards, project selector, composer, task content, settings, and terminal work
  • scope: home and conversation artwork appears only where contracted
  • palette: every changed surface belongs to one semantic system
  • mode independence: the full native
    --color-token-*
    sweep is present, so the theme renders identically whether the user's Codex starts in native light or native dark mode (see the playbook's native token sweep)
  • state: idle, hover, selected, disabled, focus-visible, loading, running, expanded, and open
  • geometry: no clipping, overflow, duplicate borders, text/icon overlap, or sidebar action collision
  • lifecycle: cold launch, route change, renderer reload, theme switch, restore, and reapply
Capture real screenshots and computed-style/geometry evidence. A successful build, injection marker, static mockup, or one home screenshot is not completion. When a P0 check fails, fix selector or token ownership and rerun the complete matrix instead of adding an emergency override.
在应用主题或重启Codex前,请获取用户的明确许可。使用本技能自带的可还原TypeScript运行时;不得搜索或偏好外部主题程序。
若Codex已暴露本地调试端点,无需重启即可应用:
bash
npx tsx scripts/apply-theme.ts apply /absolute/theme-directory
若不存在端点,请专门请求用户批准重启Codex,然后使用独立启动器:
bash
npx tsx scripts/apply-theme.ts apply /absolute/theme-directory --launch
当端点未激活时,
--launch
会输出
{"status": "scheduled"}
,并将退出→重启→注入序列交给一个可在重启后存活的独立辅助程序。这是必需的,因为Codex内部托管的代理会随Codex一同终止;请预期当前工具调用(甚至会话)会因重启而中断。不得自行绕过重启:不得编写shell包装器、launchd或计划任务、脚本副本或任何其他重启机制——
--launch
辅助程序已可在重启后存活。
启动器支持macOS和Windows(在Windows上,它会定位Codex/ChatGPT可执行文件,使用
taskkill
优雅关闭它——绝不使用
/F
——并通过调试标志重启;若检测失败,请传递
--app
参数并指定完整的
.exe
路径)。若Windows重启后端点始终未出现,则该安装版本(例如Microsoft Store包)会丢弃调试标志——请明确报告此限制,转而完成源码、预览、验证及打包;不得修改WindowsApps目录下的文件。
"scheduled"
并非成功状态。Codex重启后,需先验证再报告任何内容:
bash
npx tsx scripts/apply-theme.ts status
status
会探测所有活跃的Codex页面,仅当样式元素确实存在于DOM中时才会返回
"active"
及注入的主题ID。若返回
"inactive"
,请查看
~/.codexthemes/state/launch.log
获取辅助程序的结果及错误信息。
若成功应用后旧主题仍反复出现(早期任务的过期会话仍在重新注入它),请获取用户的重启许可,使用
apply ... --launch --relaunch
强制干净重启——不得要求用户手动退出应用,也不得自行发明重启机制。
若需后续一键切换已完成的主题,请移交至
codex-theme-switcher
技能;本技能的应用运行时仅用于创建阶段的QA。
启动器会将调试绑定至
127.0.0.1
,仅注入自有
<style>
元素及CodexThemes页面标记,不会修改签名应用包,并在当前应用会话的SPA路由变更及渲染器重载期间保持主题活跃。完全退出应用后需重新应用主题(再次使用
--launch
)。可随时使用以下命令恢复原生主题:
bash
npx tsx scripts/apply-theme.ts restore
若当前平台无法独立应用主题,请完成源码、预览、验证及打包。明确说明应用限制;不得静默 fallback 至其他已安装的注入工具。
每次应用后——无论是热切换还是重启后——请首先运行自动可读性检查:
bash
npx tsx scripts/qa-contrast.ts
当可见文本不可读时,它会返回失败(退出码1),使用两种独立测量方式:已验证不透明背景上的计算样式组合,以及真实截图像素
pixelFailures
),后者还会判断艺术元素及透明图层上的文本可读性。
fail
意味着当前主题文本不可读:请先修复文本令牌或艺术元素遮罩(或切换回之前的主题),再进行其他操作;不得保留失败主题为活跃状态或报告其已应用。
pass
是必要条件但不充分;需继续完成完整的验证矩阵:
独立验证以下内容:
  • 结构:原生侧边栏、卡片、项目选择器、编辑器、任务内容、设置及终端可正常工作
  • 范围:主页及对话页面的艺术元素仅出现在契约指定的位置
  • 调色板:所有变更的界面都属于同一语义系统
  • 模式独立性:完整的原生
    --color-token-*
    系列已存在,因此无论用户的Codex启动时为原生亮色还是暗色模式,主题渲染效果都一致(请参阅设计手册的原生令牌系列)
  • 状态:空闲、悬停、选中、禁用、焦点可见、加载、运行、展开及打开状态
  • 几何结构:无裁剪、溢出、重复边框、文本/图标重叠或侧边栏操作冲突
  • 生命周期:冷启动、路由变更、渲染器重载、主题切换、恢复及重新应用
捕获真实截图及计算样式/几何结构验证依据。仅成功构建、注入标记、静态模型或一张主页截图不算完成。当P0检查失败时,请修复选择器或令牌归属并重新运行完整的验证矩阵,而非添加紧急覆盖。

Gate 7: package only after signoff

关卡7:仅在确认后打包

Package only verified local files. A
.codex-theme
package must be UTF-8 JSON, contain no absolute paths, external CSS resources, scripts, tracking, secrets, or private references, and stay under 30 MB. Follow
references/theme-schema.md
.
Export the shareable package with:
bash
npx tsx scripts/export-theme.ts ~/.codexthemes/themes/<theme-id>
The default output is
~/.codexthemes/exports/<theme-id>.codex-theme
. Do not place export packages in a project workspace or inside the editable theme source. Use
--output
only when the user explicitly requests a different export directory.
The export embeds a workspace preview (manifest
preview
, or the best raster in
previews/
) that codexthemes.ai uses as the gallery and detail image. Before exporting, confirm that image shows the themed workspace with the sidebar — not the raw artwork — and re-export after replacing it with a verified screenshot.
Use the material the user supplied to create, apply, validate, and export the theme. Do not investigate ownership, demand replacement artwork, or block local packaging because the subject is a game, film, anime, public figure, brand, or other third-party work. Do not make legal conclusions or claim that the user owns the material.
After export, offer the user both submission paths:
  1. Manual: submit the
    .codex-theme
    package and a clear preview at
    https://codexthemes.ai/submit
    .
  2. Agent-assisted: tell the user they can reply with a prompt like
    Use $codex-theme-submitter to submit ~/.codexthemes/exports/<theme-id>.codex-theme to codexthemes.ai
    , and that if
    $codex-theme-submitter
    is not installed they can add it with
    npx skills add codexthemes/skills --skill codex-theme-submitter -g -a codex
    .
State that submission asks the uploader to confirm they may share the material; leave that confirmation to the user and the submission workflow. Do not run the submission yourself unless the user asks for it.
仅打包已验证的本地文件。
.codex-theme
包必须为UTF-8 JSON,不得包含绝对路径、外部CSS资源、脚本、跟踪代码、机密信息或私有引用,且大小需控制在30MB以内。请遵循
references/theme-schema.md
规范。
使用以下命令导出可分享包:
bash
npx tsx scripts/export-theme.ts ~/.codexthemes/themes/<theme-id>
默认输出路径为
~/.codexthemes/exports/<theme-id>.codex-theme
。不得将导出包放在项目工作区或可编辑主题源码内。仅当用户明确要求其他导出目录时,才使用
--output
参数。
导出包会嵌入工作区预览图(清单中的
preview
,或
previews/
中最佳的光栅图),codexthemes.ai会将其用作图库及详情图片。导出前,请确认该图片展示了包含侧边栏的主题工作区——而非原始艺术元素——并在替换为已验证的截图后重新导出。
使用用户提供的素材创建、应用、验证及导出主题。不得调查素材所有权、要求替换素材或因主题涉及游戏、电影、动漫、公众人物、品牌或其他第三方作品而阻止本地打包。不得做出法律判断或声称用户拥有该素材。
导出后,向用户提供两种提交路径:
  1. 手动提交:在
    https://codexthemes.ai/submit
    提交
    .codex-theme
    包及清晰的预览图。
  2. 代理辅助提交:告知用户可回复类似
    Use $codex-theme-submitter to submit ~/.codexthemes/exports/<theme-id>.codex-theme to codexthemes.ai
    的指令,若未安装
    $codex-theme-submitter
    ,可通过
    npx skills add codexthemes/skills --skill codex-theme-submitter -g -a codex
    添加。
说明提交时会要求上传者确认其可分享该素材;请将确认工作交给用户及提交流程。除非用户要求,否则不得自行运行提交操作。

Completion standard

完成标准

Reject an almost-complete theme. A polished home page does not compensate for broken conversations, settings, menus, terminal, sidebar states, narrow windows, or cold launch. Report separately what was designed, statically validated, applied, visually verified, and packaged. Always report the canonical source and export paths.
拒绝接近完成的主题。精致的主页无法弥补对话、设置、菜单、终端、侧边栏状态、窄窗口或冷启动的故障。分别报告已设计、静态验证、应用、视觉验证及打包的内容。始终报告标准的源码及导出路径。