ANSI color formatting for output in terminal
Project Links
Meta
Author: Konstantin Lepa
Maintainer: Hugo van Kemenade
Requires Python: >=3.9
Classifiers
Development Status
- 5 - Production/Stable
Environment
- Console
Intended Audience
- Developers
Operating System
- OS Independent
Programming Language
- Python
- Python :: 3 :: Only
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
- Python :: Implementation :: CPython
- Python :: Implementation :: PyPy
Topic
- Terminals
Typing
- Typed
termcolor
Installation
From PyPI
python3 -m pip install --upgrade termcolor
From source
git clone https://github.com/termcolor/termcolor
cd termcolor
python3 -m pip install .
Demo
To see demo output, run:
python3 -m termcolor
Example
import sys
from termcolor import colored, cprint
text = colored("Hello, World!", "red", attrs=["reverse", "blink"])
print(text)
cprint("Hello, World!", "green", "on_red")
print_red_on_cyan = lambda x: cprint(x, "red", "on_cyan")
print_red_on_cyan("Hello, World!")
print_red_on_cyan("Hello, Universe!")
for i in range(10):
cprint(i, "magenta", end=" ")
cprint("Attention!", "red", attrs=["bold"], file=sys.stderr)
# You can also specify 0-255 RGB ints via a tuple
cprint("Both foreground and background can use tuples", (100, 150, 250), (50, 60, 70))
Text properties
Text colors | Text highlights | Attributes |
---|---|---|
black |
on_black |
bold |
red |
on_red |
dark |
green |
on_green |
underline |
yellow |
on_yellow |
blink |
blue |
on_blue |
reverse |
magenta |
on_magenta |
concealed |
cyan |
on_cyan |
strike |
white |
on_white |
|
light_grey |
on_light_grey |
|
dark_grey |
on_dark_grey |
|
light_red |
on_light_red |
|
light_green |
on_light_green |
|
light_yellow |
on_light_yellow |
|
light_blue |
on_light_blue |
|
light_magenta |
on_light_magenta |
|
light_cyan |
on_light_cyan |
You can also use any arbitrary RGB color specified as a tuple of 0-255 integers, for
example, (100, 150, 250)
.
Terminal properties
Terminal | bold | dark | underline | blink | reverse | concealed |
---|---|---|---|---|---|---|
xterm | yes | no | yes | bold | yes | yes |
linux | yes | yes | bold | yes | yes | no |
rxvt | yes | no | yes | bold/black | yes | no |
dtterm | yes | yes | yes | reverse | yes | yes |
teraterm | reverse | no | yes | rev/red | yes | no |
aixterm | normal | no | yes | no | yes | yes |
PuTTY | color | no | yes | no | yes | no |
Windows | no | no | no | no | yes | no |
Cygwin SSH | yes | no | color | color | color | yes |
Mac Terminal | yes | no | yes | yes | yes | yes |
Overrides
Terminal colour detection can be disabled or enabled in several ways.
In order of precedence:
- Calling
colored
orcprint
with a truthyno_color
disables colour. - Calling
colored
orcprint
with a truthyforce_color
forces colour. - Setting the
ANSI_COLORS_DISABLED
environment variable to any non-empty value disables colour. - Setting the
NO_COLOR
environment variable to any non-empty value disables colour. - Setting the
FORCE_COLOR
environment variable to any non-empty value forces colour. - Setting the
TERM
environment variable todumb
, or using such a dumb terminal, disables colour. - Finally, termcolor will attempt to detect whether the terminal supports colour.
Apr 30, 2025
3.1.0
Apr 02, 2025
3.0.1
Mar 31, 2025
3.0.0
Oct 06, 2024
2.5.0
Dec 01, 2023
2.4.0
Apr 23, 2023
2.3.0
Jan 03, 2023
2.2.0
Nov 20, 2022
2.1.1
Oct 30, 2022
2.1.0
Sep 12, 2022
2.0.1
Sep 11, 2022
2.0.0
Jan 13, 2011
1.1.0
Jan 13, 2011
1.0.1
Jan 13, 2011
1.0.0
Sep 07, 2010
0.2
Jun 04, 2009
0.1.2
Mar 05, 2009
0.1.1
Jun 09, 2008
0.1