# rich

> Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal

- **URL**: https://www.freshcrate.ai/projects/rich
- **Author**: Will McGugan
- **Category**: Frameworks
- **Latest version**: `15.0.0` (2026-04-21)
- **License**: MIT
- **Source**: https://github.com/Textualize/rich
- **Homepage**: https://pypi.org/project/rich/
- **Language**: Python
- **GitHub**: 56,165 stars, 2,109 forks
- **Registry**: pypi (`rich`)
- **Tags**: `pypi`

## Description

[![Supported Python Versions](https://img.shields.io/pypi/pyversions/rich)](https://pypi.org/project/rich/) [![PyPI version](https://badge.fury.io/py/rich.svg)](https://badge.fury.io/py/rich)

[![Downloads](https://pepy.tech/badge/rich/month)](https://pepy.tech/project/rich)
[![codecov](https://img.shields.io/codecov/c/github/Textualize/rich?label=codecov&logo=codecov)](https://codecov.io/gh/Textualize/rich)
[![Rich blog](https://img.shields.io/badge/blog-rich%20news-yellowgreen)](https://www.willmcgugan.com/tag/rich/)
[![Twitter Follow](https://img.shields.io/twitter/follow/willmcgugan.svg?style=social)](https://twitter.com/willmcgugan)

![Logo](https://github.com/textualize/rich/raw/master/imgs/logo.svg)

[English readme](https://github.com/textualize/rich/blob/master/README.md)
 • [简体中文 readme](https://github.com/textualize/rich/blob/master/README.cn.md)
 • [正體中文 readme](https://github.com/textualize/rich/blob/master/README.zh-tw.md)
 • [Lengua española readme](https://github.com/textualize/rich/blob/master/README.es.md)
 • [Deutsche readme](https://github.com/textualize/rich/blob/master/README.de.md)
 • [Läs på svenska](https://github.com/textualize/rich/blob/master/README.sv.md)
 • [日本語 readme](https://github.com/textualize/rich/blob/master/README.ja.md)
 • [한국어 readme](https://github.com/textualize/rich/blob/master/README.kr.md)
 • [Français readme](https://github.com/textualize/rich/blob/master/README.fr.md)
 • [Schwizerdütsch readme](https://github.com/textualize/rich/blob/master/README.de-ch.md)
 • [हिन्दी readme](https://github.com/textualize/rich/blob/master/README.hi.md)
 • [Português brasileiro readme](https://github.com/textualize/rich/blob/master/README.pt-br.md)
 • [Italian readme](https://github.com/textualize/rich/blob/master/README.it.md)
 • [Русский readme](https://github.com/textualize/rich/blob/master/README.ru.md)
 • [Indonesian readme](https://github.com/textualize/rich/blob/master/README.id.md)
 • [فارسی readme](https://github.com/textualize/rich/blob/master/README.fa.md)
 • [Türkçe readme](https://github.com/textualize/rich/blob/master/README.tr.md)
 • [Polskie readme](https://github.com/textualize/rich/blob/master/README.pl.md)


Rich is a Python library for _rich_ text and beautiful formatting in the terminal.

The [Rich API](https://rich.readthedocs.io/en/latest/) makes it easy to add color and style to terminal output. Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, tracebacks, and more — out of the box.

![Features](https://github.com/textualize/rich/raw/master/imgs/features.png)

For a video introduction to Rich see [calmcode.io](https://calmcode.io/rich/introduction.html) by [@fishnets88](https://twitter.com/fishnets88).

See what [people are saying about Rich](https://www.willmcgugan.com/blog/pages/post/rich-tweets/).

## Compatibility

Rich works with Linux, macOS and Windows. True color / emoji works with new Windows Terminal, classic terminal is limited to 16 colors. Rich requires Python 3.8 or later.

Rich works with [Jupyter notebooks](https://jupyter.org/) with no additional configuration required.

## Installing

Install with `pip` or your favorite PyPI package manager.

```sh
python -m pip install rich
```

Run the following to test Rich output on your terminal:

```sh
python -m rich
```

## Rich Print

To effortlessly add rich output to your application, you can import the [rich print](https://rich.readthedocs.io/en/latest/introduction.html#quick-start) method, which has the same signature as the builtin Python function. Try this:

```python
from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
```

![Hello World](https://github.com/textualize/rich/raw/master/imgs/print.png)

## Rich REPL

Rich can be installed in the Python REPL, so that any data structures will be pretty printed and highlighted.

```python
>>> from rich import pretty
>>> pretty.install()
```

![REPL](https://github.com/textualize/rich/raw/master/imgs/repl.png)

## Using the Console

For more control over rich terminal content, import and construct a [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console) object.

```python
from rich.console import Console

console = Console()
```

The Console object has a `print` method which has an intentionally similar interface to the builtin `print` function. Here's an example of use:

```python
console.print("Hello", "World!")
```

As you might expect, this will print `"Hello World!"` to the terminal. Note that unlike the builtin `print` function, Rich will word-wrap your text to fit within the terminal width.

There are a few ways of adding color and style to your output. You can set a style for the entire output by adding a `style` keyword argument. Here's an example:

```python
console.print("Hello", "World!", style="bold red")
```

The output will be something like the following:

![Hello World](https://github.com/textualize/rich

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `15.0.0` | 2026-04-21 | Low | Imported from PyPI (15.0.0) |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |
| `v15.0.0` | 2026-04-12 | Medium | A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024  ## [15.0.0] - 2026-04-12  ### Changed  - Breaking change: Dropped support for Python3.8  ### Fixed  - Fixed empty print ignoring the `end` parameter https://github.com/Textualize/rich/pull/4075 - Fixed `Text.from_ansi` removing newlines https://github.com/Textualize/rich/pull/4076 - Fixed `FileProxy.isatty` not proxying https://github.com/Textualize/rich/pull/4077 - F |

## Citation

- HTML: https://www.freshcrate.ai/projects/rich
- Markdown: https://www.freshcrate.ai/projects/rich.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/rich/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
