Urwid is a Python library for making text console applications. It has many features including fluid interface resizing, support for UTF-8 and CJK encodings, standard and custom text layout modes, simple markup for setting text attributes, and a powerful, dynamic list box that handles a mix of widget types. It is flexible, modular, and leaves the developer in control.