A library for creating CUI/TUI interfaces with pre-built widgets in python.

Easily build text-based user interfaces on both Linux and Windows.

Automated Test+Build Status Download Counter PyPI Version License


py_cui is a python library meant to simplify writing console user interfaces in python. It relies on curses, which is traditionally unix-specific, however, you may use the windows-curses module to run py_cui on windows.

The main advantage py_cui has over typical text-based user interface builders is that it relies on widgets and a grid layout manager like most traditional graphical user interfaces. You may define a grid size, and then drop predefined widgets onto it into specific grid locations. Widgets can also be stretched accross multiple grid rows and columns. If you've ever made a Tkinter GUI, you will feel right at home.

If you would like to contribute, feel free to make an issue or pull request after reading through the file.


Below are some screenshots and gifs of programs written with py_cui. Additional (simpler) examples are available in the examples/ directory of this repository.

py_cui_2048 - A command line version of the classic 2048 game

py_cui_2048 is a demo of using py_cui to build simple CUI games and applications. The entire game was made in under 400 lines of code.

recoverpy - A TUI that allows for recovering lost or deleted files

recoverpy is a utility for recovering files on linux. It will search through every inode to find your requested file block.

pyautogit - A command line interface for managing git repositories

pyautogit is the first larger scale project written in py_cui. Feel free to use it as a guide to programming with py_cui.

Powered by py_cui

Below is a table of python projects developed with the help of py_cui. If you've made something, feel free to make a pull request to add it!

Project Description
pypodcasts A TUI for listening to and managing podcast feeds. (Coming Soon)
pyautogit A command line UI for interfacing with git features for multiple repositories.
recoverpy A CUI for recovering overwritten or deleted data on linux.
py_cui_2048 A CUI version of the classic 2048 game.
unipkg A CUI interface for managing all installed package managers on your system. (In-Progress)
CUIAudioPlayer A TUI for playing back audio files in a variety of formats.
tinypub A console-based ebook reader.
hue-tui A CUI controlling for Philips Hue lights.
mini-radio-player A terminal based radio interface for linux.


BSD 3-Clause License

Copyright (c) 2019-2021, Jakub Wlodek