How can I make Python and PowerShell error colors easier to read?

September 2, 2026 3 answers
Asked by MellowOrbit42
I spent several hours trying to fix an annoying readability problem when running Python inside a PowerShell window. Some error and status text appears in red or blue shades that are difficult to see against the console background. Changing the basic text color through the window Properties menu did not affect those colored categories. I also tried changing the ColorTable00 through ColorTable15 values under HKEY_CURRENT_USERConsole, but PowerShell continued using the same colors. An older color-customization utility also failed to run on my Windows 10 installation. The workaround that finally helped was installing Windows Terminal and opening PowerShell inside it. PowerShell still runs normally, but Windows Terminal provides readable color schemes and profile customization. I would still like to know whether there is a way to change every PowerShell or Python-related color while continuing to use the original Windows console host, or whether Python itself controls any of these colors.

Answers

NorthwindFox18
It helps to separate the shell from the window that displays it. cmd.exe and PowerShell are shells, while the traditional console host and Windows Terminal are console hosts. Windows Terminal is generally the better choice because it supports tabs, profiles, custom color schemes, and multiple shells in one application. You can also set it as the default console host.

QuietMaple31: That distinction explains why changing the old console color table did not affect all of PowerShell's own foreground colors. The shell can apply its own settings on top of the host's color palette.

Reply to this answer
SilverKite56
The most practical fix is to use Windows Terminal with a high-contrast profile. It still runs PowerShell, but its themes make the error colors much easier to read and are simpler to customize than the legacy console settings. If the machine cannot use a newer operating system, installing Windows Terminal separately can still be a useful workaround.
Reply to this answer
CedarVale7
If you are staying with the original console host, PowerShell exposes these colors through the $Host variable. You can inspect the current settings with: $host.PrivateData | Format-List * For example, this changes error text to cyan: $Host.PrivateData.ErrorForegroundColor = "Cyan" Once you find settings that work, put the commands in your PowerShell profile so they are applied automatically in future sessions. This approach works in the old console host, though the settings are handled differently in Windows Terminal.
Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions