Usage
Run
python generate_theme.py
That's the entire invocation surface — there are no flags. The script reads every *.txt palette file under palettes/ and writes a matching theme set under themes/, printing one line per palette:
OK python
OK rust
SKIP broken-palette.txt: only 5 colors
...
42 theme sets -> themes/
Input format
Palette files are the raw output of ImageMagick's -unique-colors txt: export (the same files AptlantisLogos produces) — UTF-16 LE or UTF-8 text listing up to 16 colors per source logo. A palette needs at least 8 usable colors to generate a theme set; anything below that is skipped rather than padded or guessed.
Packaging the VSCode extension
The generated themes/vscode/apt-themes-extension/ folder is a real, packageable VSCode extension containing every generated VSCode theme as an entry in its package.json. Packaging into a .vsix requires Node and vsce:
cd themes/vscode/apt-themes-extension
npx vsce package
Regenerating after a palette changes
There's no incremental mode — re-running generate_theme.py regenerates every theme set from scratch each time. Given it's driven entirely by AptlantisLogos' palettes/ output, the normal workflow is: update or add a logo in AptlantisLogos, re-extract its palette, then re-run this script to refresh all themes at once.