Skip to content

Generation, selection, and application

generate fans out across the registry’s generation-capable adapters. Each adapter formats and writes its own source independently, so one failure is isolated from other generators.

select owns theme identity. It chooses one generated family, applies one light/dark variant through the common adapter pipeline, and persists that family as activeTheme only after at least one adapter succeeds.

apply owns runtime mode changes. It is non-interactive, requires exactly one of --dark or --light, reads activeTheme, and applies that family’s requested variant without changing the selection. This is the correct integration point for theme daemons and OS-appearance hooks.

Both selection and application fan out across application-capable adapters in registry order. Environment gates can skip targets; a later adapter still runs after an earlier failure. Successful writes persist—there is no global rollback when the command has partial success. A run where every adapter fails or skips is an error.

Adapters may run reload hooks after application. Neovim is apply-only through its generated pointer, while VS Code is generate-only because it emits an installable package rather than participating in live apply.

See the integration catalogue for target-specific source paths, destinations, and reload behavior.