NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #52 most downloaded on PyPI
Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
Last release 5 months ago
12 Apr 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
207 releases · first in 2019
A bugfix for progress bars in Jupyter in this release. And a new property on Text class which exports the equivalent console markup.
A bugfix for progress bars in Jupyter in this release. And a new property on Text class which exports the equivalent console markup.
Nothing published for this version
One column per quarter.
Nothing published for this version
AFAIK this issue only occurred in test suites, but it is a recommended that if you have 10.15.X installed you should upgrade.
AFAIK this issue only occurred in test suites, but it is a recommended that if you have 10.15.X installed you should upgrade.
Reverted a fix for https://github.com/willmcgugan/rich/issues/1530
Reverted a fix for https://github.com/willmcgugan/rich/issues/1530
On reflection, I think the fix might introduce the possibility for a deadlock -- although none was reported.
Added dynamic_progress.py to examples
Nothing published for this version
Nothing published for this version
Nothing published for this version
Mostly fixes for edge cases. Added a rich_cast function to rich.protocol, which is unlikely to be used outside of Rich itself.
Mostly fixes for edge cases. Added a rich_cast function to rich.protocol, which is unlikely to be used outside of Rich itself.
__rich__ to work recursively__rich__ to work recursivelyrich.text.Text.from_ansi helper method for handling pre-formatted input strings https://github.com/textualize/rich/issues/1670This release is mostly bugfixes (details below). The minor version bump is because print_json grew a number of parameters to match json.dumps
This release is mostly bugfixes (details below). The minor version bump is because print_json grew a number of parameters to match json.dumps
Fixed detection of custom repr when pretty printing dataclasses
Added two new options to Tracebacks, to hide framework code, and guard against very long tracebacks.
Added two new options to Tracebacks, to hide framework code, and guard against very long tracebacks.
<img width="862" alt="Screen Shot 2021-09-24 at 09 42" src="https://user-images.githubusercontent.com/554369/134648904-00574af5-e71f-4339-9e32-bcd0306d3d0c.png">
<img width="1067" alt="Screen Shot 2021-09-23 at 21 29" src="https://user-images.githubusercontent.com/554369/134649017-6c393af1-56f0-4c07-9883-c7b3bb189528.png">
suppress parameter to tracebacksmax_frames parameter to tracebacksAdded stdin support to rich.json
rich.jsonThis release highlights JSON keys with a different color
This release highlights JSON keys with a different color
<img width="734" alt="Screen Shot 2021-08-29 at 14 38" src="https://user-images.githubusercontent.com/554369/131254875-701d943d-9eb0-4fb1-909b-01658e33fa61.png">
This release adds pretty printing of JSON
This release adds pretty printing of JSON
<img width="738" alt="Screen Shot 2021-08-28 at 14 21" src="https://user-images.githubusercontent.com/554369/131222920-c0cefaa9-ae1a-41e8-84b0-144d09609f1f.png">
rich.reconfigure within a pytest_configure hook would lead to a crashChanged RenderGroup to Group and render_group to group (old names remain for compatibility but will be deprecated in the future)
RenderGroup to Group and render_group to group (old names remain for compatibility but will be deprecated in the future)rich.repr.RichReprResult to rich.repr.Result (old names remain for compatibility but will be deprecated in the future)Added deprecation warning for tabulate_mapping which will be removed in v11.0.0
Some fixes, and a few methods to support Textual
Some fixes, and a few methods to support Textual
The highlight of this release is a decorator to automatically create a Rich repr for any class.
The highlight of this release is a decorator to automatically create a Rich repr for any class.
<img width="631" alt="Screen Shot 2021-06-18 at 17 04 52" src="https://user-images.githubusercontent.com/554369/122609653-422e9700-d076-11eb-8168-623498b5cb96.png">
<img width="991" alt="Screen Shot 2021-06-18 at 17 04 19" src="https://user-images.githubusercontent.com/554369/122609688-4d81c280-d076-11eb-8e27-918a468101c7.png">
This release fleshes out the new Rich Repr protocol
This release fleshes out the new Rich Repr protocol
%load_ext richFixed status not rendering console markup https://github.com/willmcgugan/rich/issues/1244
Fixed panel in Markdown exploding https://github.com/willmcgugan/rich/issues/1234
This version has some enhancements to pretty printing. Rich will now pretty print objects created with attrs (https://www.attrs.org/en/stable/). Addit
This version has some enhancements to pretty printing. Rich will now pretty print objects created with attrs (https://www.attrs.org/en/stable/). Additionally, there is expanded support for UserList, UserDict, and mappingproxy -- less common containers in Python.
<img width="1262" alt="Screen Shot 2021-05-12 at 18 17 45" src="https://user-images.githubusercontent.com/554369/118017806-ef631080-b34e-11eb-9079-07e16e9fcdd7.png">
Fixed support for jupyter qtconsole and similar Jupyter environments
Fixed race condition that duplicated lines in progress https://github.com/willmcgugan/rich/issues/1144
Some significant signature to render protocol, hence the major version bump. These are unlikely to impact many people unless you are implementing your
Some significant signature to render protocol, hence the major version bump. These are unlikely to impact many people unless you are implementing your own renderables.
Most of the work in this version was to aid development of adding more dynamic features to future versions.
See changelog for details...
__rich_measure__ signature changed to accept ConsoleOptions rather than max_width__rich_repr__ protocol method to Pretty__rich_repr__total keyword arguments in rich.progress and rich.progress_barThe highlight of this release is that pretty printing now supports dataclasses, which can now collapse just like other data structures. Here's an exam
The highlight of this release is that pretty printing now supports dataclasses, which can now collapse just like other data structures. Here's an example:
<img width="711" alt="Screen Shot 2021-03-03 at 17 10 30" src="https://user-images.githubusercontent.com/554369/110212041-5e287700-7e91-11eb-95f7-bc07757028b7.png">
Fixed custom formatters with rich tracebacks in RichHandler https://github.com/willmcgugan/rich/issues/1079
A optimization to the Padding class. This is unlikely to impact anyone unless you are printing very large tables.
A optimization to the Padding class. This is unlikely to impact anyone unless you are printing very large tables.
Optimized ConsoleOptions.update
Fixed deadlock in Progress https://github.com/willmcgugan/rich/issues/1061
### Fixed
Mostly fixes in this update. Plus a change of behaviour for tables with no columns, and an added height parameter to Panel.
Mostly fixes in this update. Plus a change of behaviour for tables with no columns, and an added height parameter to Panel.
Fixed table with expand=False not expanding when justify="center"
The highlight of this release is the new Layout system which can be used to produce htop like terminal dashboards.
The highlight of this release is the new Layout system which can be used to produce htop like terminal dashboards.
<img width="1654" alt="layout_vscode 17 34 29" src="https://user-images.githubusercontent.com/554369/107993535-8def0800-6fd2-11eb-938c-cdc5a6cfa46d.png">
__str__ https://github.com/willmcgugan/rich/issues/980### Added
quiet argument to Console constructorvertical parameter to AlignFurther optimized Tracebacks by not tokenizing code more that necessary
Extended Windows palette to 16 colors
Fixed deadlock in live https://github.com/willmcgugan/rich/issues/927
Fixed rich.inspect failing with attributes that claim to be callable but aren't https://github.com/willmcgugan/rich/issues/916
A few fixes and minor enhancements.
A few fixes and minor enhancements.
### Added
style argument on Align now applies to background onlysize will fall back to getting the terminal size of stdout it stdin fails, this allows size to be correctly determined when pipingpython -m rich.markdownThe highlight of this release is the new Tree renderable.
The highlight of this release is the new Tree renderable.
<img width="1212" alt="Screen Shot 2021-01-09 at 14 21 37" src="https://user-images.githubusercontent.com/554369/104103492-53d76b80-529a-11eb-9a5e-27953325f90b.png">
In addition there is also a no_color flag which removes color from the output but preserves style (bold, italic etc). Previously Rich respected the NO_COLOR env var but it also remove style.
Fixed markup escaping edge case https://github.com/willmcgugan/rich/issues/878
"\\[foo]" results in a backslash plus [foo] tag"\\[foo]" results in a backslash plus [foo] tagFixed encoding error on Windows when loading code for Tracebacks
This version adds IPython support to rich.pretty and some enhancements to rich.inspect
This version adds IPython support to rich.pretty and some enhancements to rich.inspect
<img width="934" alt="Screen Shot 2020-12-29 at 17 42 11" src="https://user-images.githubusercontent.com/554369/103364024-8d4af280-4ab4-11eb-83c5-0e552b12bc61.png">
This release was a hotfix for broken terminal size detection on Windows
This release was a hotfix for broken terminal size detection on Windows
⚠️ Some subtle changes to behavior in this version, with regards to getting the size of the terminal and highlighting strings renderables. Please revi
⚠️ Some subtle changes to behavior in this version, with regards to getting the size of the terminal and highlighting strings renderables. Please review the release notes carefully.
Color.__str__ to not include ansi codesColor.__rich__This release adds a new rich.live interface which can display continually updated renderable, which you can use to create animated "dashboards".
This release adds a new rich.live interface which can display continually updated renderable, which you can use to create animated "dashboards".
Also in this release we have 'spinner' animations via a new Console.status method, or a SpinnerColumn in progress bars.
<img width="1429" alt="Screen Shot 2020-12-12 at 12 18 51" src="https://user-images.githubusercontent.com/554369/101983643-3a7bd900-3c74-11eb-98e0-b888b389c876.png">
### Added
### Changed
Added get_datetime parameter to Console, to allow for repeatable tests
### Added
Added tracebacks_show_locals parameter to RichHandler
The highlight of this version is the new option to render 'indent guides' in Syntax and pretty printing.
The highlight of this version is the new option to render 'indent guides' in Syntax and pretty printing.
I've also added a max_length argument to pretty printing which will truncate containers longer than a certain length.
<img width="1052" alt="Screen Shot 2020-10-23 at 17 49 27" src="https://user-images.githubusercontent.com/554369/97032091-24e21100-1559-11eb-8bf4-6f0446d492ec.png"> <img width="832" alt="Screen Shot 2020-10-23 at 17 51 28" src="https://user-images.githubusercontent.com/554369/97032099-27dd0180-1559-11eb-9b10-ffa5562aaad1.png"> <img width="842" alt="Screen Shot 2020-10-23 at 17 53 49" src="https://user-images.githubusercontent.com/554369/97032103-28759800-1559-11eb-8418-1fd68b93bfd5.png">
Fixed broken ANSI codes in input() on windows legacy https://github.com/willmcgugan/rich/issues/393
Note this is a major version release so there are some breaking changes to the API -- these are unlikely to impact many people, but please check the c…
The highlights of Rich 9.0.0 would be a new pager method which will pipe any console output in to the system 'pager'. See this tweet for an example. There's also a new Bar renderable you could use to display a chart in a table. See bars.py for an example of how to use it.
<img width="1298" alt="Screen Shot 2020-10-16 at 16 01 03" src="https://user-images.githubusercontent.com/554369/96365886-c6bdc400-113b-11eb-8512-abaa3f5e50eb.png">
Note this is a major version release so there are some breaking changes to the API -- these are unlikely to impact many people, but please check the changelog below.
Style.transparent_background method name.The highlight of this release is the option to show local variables in tracebacks.
The highlight of this release is the option to show local variables in tracebacks.
<img width="994" alt="Screen Shot 2020-10-03 at 14 23 15" src="https://user-images.githubusercontent.com/554369/94992855-a959f900-0584-11eb-96ea-c2d5a8c9392b.png">
### Added
The highlight of this release is some improvements to Rich tracebacks. The traceback display makes better use of space and handle long paths better. R
The highlight of this release is some improvements to Rich tracebacks. The traceback display makes better use of space and handle long paths better. Rich tracebacks can also be rendered in Rich's logging handler which is much easier to read (thanks to @taliraj for his PR for this feature).
<img width="1022" alt="traceback" src="https://user-images.githubusercontent.com/554369/94344045-6512aa00-0014-11eb-9fa3-f93399a7d35f.png">
<img width="1220" alt="Screen Shot 2020-09-26 at 16 22 18" src="https://user-images.githubusercontent.com/554369/94344048-778ce380-0014-11eb-9cbd-9e7162b35c07.png">
### Changed
The main feature of this release was a way of display syntax highlighting with only standard colors (i.e. the colors you can configure in the terminal
The main feature of this release was a way of display syntax highlighting with only standard colors (i.e. the colors you can configure in the terminal), which you can do by setting the theme to "ansi_dark" or "ansi_light". The other themes are generally prettier (IMHO) but use colors defined by the theme, and not by the user's settings.
When testing the above I also made some optimizations which benefit all the Rich output. You may only notice this if you are syntax highlighting large XML files, but its faster now.
This is a major release as there were a small number of signature changes. Most people won't be impacted, but please review the release notes below.
<img width="887" alt="Screen Shot 2020-09-18 at 16 35 46" src="https://user-images.githubusercontent.com/554369/93616782-15593080-f9cd-11ea-9802-64dca9b78d70.png">
### Changed
Added inline code highlighting to Markdown
<img width="1365" alt="Screen Shot 2020-09-13 at 13 34 26" src="https://user-images.githubusercontent.com/554369/93114277-4fb38c80-f6b2-11ea-8872-6f8b00b52815.png">
Added ipv4 and ipv6 to ReprHighlighter
<img width="1326" alt="Screen Shot 2020-09-11 at 16 50 31" src="https://user-images.githubusercontent.com/554369/92946986-5098b400-f44f-11ea-8bb6-b25dd34a6c5f.png">
# sign is included in url highlightingInspect now adds def to signature of methods. Not strictly necessary, but I think it helps distinguish methods from data.
A tiny change to 6.1.0
Inspect now adds def to signature of methods. Not strictly necessary, but I think it helps distinguish methods from data.
<img width="1059" alt="Screen Shot 2020-09-08 at 15 32 51" src="https://user-images.githubusercontent.com/554369/92490237-ae779280-f1e8-11ea-8802-8f75fc37583f.png">
This release adds a function called inspect which uses rich to display the data / methods / docs for any Python object.
This release adds a function called inspect which uses rich to display the data / methods / docs for any Python object.
I think this is a fantastic debug aid, and I'm looking forward to using it in other projects.
<img width="1834" alt="Screen Shot 2020-09-07 at 17 14 08" src="https://user-images.githubusercontent.com/554369/92405589-d9e97700-f12d-11ea-80ed-f8f29693c318.png">
Breaking change is because the signature of Pretty and pretty_repr has changed, and the character argument to rule was dropped. This is unlikely to im…
Headline of this release is a better pretty print. The previous version could expand lines prematurely. This version fits containers and is faster to boot. It also support defaultdict, Counter, and array.
<img width="892" alt="Screen Shot 2020-08-25 at 17 06 39" src="https://user-images.githubusercontent.com/554369/91201668-9daf2300-e6f8-11ea-9acc-773f1f39fd83.png">
Breaking change is because the signature of Pretty and pretty_repr has changed, and the character argument to rule was dropped. This is unlikely to impact many people.
__rich__ castcharacter parameter in Rule and Console.rule, in favor of charactersYour coding agent can read these notes before it upgrades. Set up the MCP server →