Urwid is a console user interface library for Python. It runs on Linux, OSX, Cygwin or other unix-like OS and supports hooking into alternative event loops (AsyncIO, Twisted, GLib).

Urwid is a library for writing console user interfaces. You can see here examples of what's possible.

It offers an alternative to using Python’s curses module directly and handles many of the difficult and tedious tasks.

It comes with several widgets ready to use and it also offers ways create your own widgets, and makes it easy to handle input, terminal resizing and even supports mouse events.

Some applications built with Urwid:

  • pudb - console-based graphicale Python debugger
  • speedometer - tool for measuring the rate of data across a network connection
  • usolitaire - console-based solitaire clone

See more applications built with Urwid in the website list.

Some useful questions

How to create custom widgets