As long as CLI programs stick to the 8 or 16 standard colors and refrain from setting background colors (inverse mode is fine), as well as from explicitly setting white or black as text color, everyone can reasonably configure their terminal colors so that everything is readable.
When going beyond that, the colors really need to be configurable on the application.
Configurable within the application... at runtime.
I want to be able to switch existing terminals with existing applications between themes.
> refrain from setting background colors
That's the thing though, setting bg color opens up a lot of options, and constraining to invert is not sufficient in my opinion.