keryx theme promote¶
Description¶
Copies a project theme into your user library, so every project can use it.
Themes are usually authored where the work is — in a project, against a real reel. Without promotion a good theme stays stranded there. This lifts it into your user config (spec 0046).
Usage¶
Run keryx theme promote --help for the authoritative, always-current flag set.
It moves, it does not copy¶
The entry leaves the project's .keryx.yaml and arrives in your user library:
$ keryx theme promote emberlight --type reel
promoted reel theme "emberlight" to your user library
written to /home/you/.keryx/themes.yaml
moved out of /home/you/blog/.keryx.yaml — this project no longer carries its own copy
keryx theme list then shows it resolving from your library:
Why moving is safe¶
A project does not need to keep a copy for CI, because CI never resolves a theme. Generation is local; CI publishes an already-generated reel, and nothing on the publish path reads the theme catalog.
(An earlier version of this page said the project kept its copy "because that is what CI reads". That was wrong — it described a pipeline that generates, which is not how keryx is used.)
If you genuinely do generate on a runner, keryx theme pin is
the reverse operation: it copies a theme from your library into the project's
committed config so a build with no user config can resolve it.
Ordering, and what happens if it fails¶
The library is written first; the project's entry is removed only once that succeeded. A failure between the two therefore leaves a duplicate — recoverable — rather than nothing at all. Losing a theme you spent an afternoon tuning is the outcome worth designing against.
Promoting a theme the project does not define¶
Refused. There is nothing to move, and rewriting your user copy from itself would be a confusing no-op dressed as success.
From the studio¶
Project settings → Themes shows each theme's scope, with a Promote button on project-scoped ones. It does exactly what this command does.
See also¶
keryx theme use— set which theme a type resolves tokeryx theme list— what is defined, and in which scope- Themes — the scopes and how resolution works