
pyTermTk
(python Terminal Toolkit) is a text-based user interface library (TUI). Evolved from the discontinued project pyCuT, it is inspired by a mix of Qt5, GTK, and tkinter API definitions with a touch of personal interpretation.
https://github.com/user-attachments/assets/888e745a-ea00-4d03-b6ec-273319d54ea7
Features
- Self-contained (no external libs required), Python 3.9 or above required.
- Cross-compatible: Linux🐧, macOS🍎, MS Windows🪟, HTML5🌍 (Try)
- Basic widgets for TUI development (Button, Label, checkbox, ...)
- Specialized widgets to improve the usability (Windows, Frames, Tables, ...)
- Qt-like layout system to help arrange the widgets in the terminal
- True color support
- Full/Half/Zero-sized Unicode characters 😎
- I am pretty sure there is something else...
Try the Sandbox straight from your browser
Powered by Pyodide and xterm.js and CodeMirror5 and w2ui
The Tutorials and the Examples
Be inspired by the Tutorials and the Examples
API Reference
Don't get bored by the API definitions
ttkode
Burn your fingers with the Terminal Studio Kode
ttkDesigner
Smell deliciousness with the official pyTermTk tool for designing and building Text-based user interfaces (TUIs)
the DumbPaintTool
Unravel your inner artist with The Terminal ASCII Photoshop
Install/Upgrade
pip3 install --upgrade pyTermTk
Install from the dev branch:
pip install --upgrade git+https://github.com/ceccopierangiolieugenio/pyTermTk.git#subdirectory=libs/pyTermTk
Quick Test/Try - no install required
Clone
git clone https://github.com/ceccopierangiolieugenio/pyTermTk.git
cd pyTermTk
Demos
# Press CTRL-C to exit (CTRL-Break on Windows)
# Showcase Demo
python3 demo/demo.py -f -t
# run ttkDesigner
run.ttkDesigner.sh
# run The Dumb Paint Tool
# it requires pillow
# pip install pillow
run.dumbPaintTool.sh
# Text edit with "Pygments" highlight integrated
# it requires pygments
# pip install pygments
python3 tests/t.ui/test.ui.018.TextEdit.03.Pygments.py README.md
Projects using pyTermTk
- ttkDesigner - the official pyTermTk tool for designing and building Text-based user interfaces (TUIs)
- the DumbPaintTool - The Terminal ASCII Photoshop
- tlogg - A fast, advanced log explorer.
- ttkode - TerminalToolKit (Studio) Code (editor)
- pytest-fold - A Pytest plugin to make console output more manageable when there are multiple failed tests
- pytest-tui - A Text User Interface (TUI) for Pytest, automatically launched after your test run is finished
- breakoutRL - Breakout the Roguelike
- 7drl-2024 - A Snake🐍 on a Plane✈️ - The Roguelike
Related Projects
-
Honourable mention
- bpytop - Linux/OSX/FreeBSD resource monitor
This was the base inspiration for my core library
- bpytop - Linux/OSX/FreeBSD resource monitor
-
Python
- urwid - Console user interface library for Python
- pyTermGUI - A simple yet powerful TUI framework for your Python (3.7+) applications
- Textual - TUI (Text User Interface) framework for Python inspired by modern web development
- Rich - Python library for rich text and beautiful formatting in the terminal
- PyCuT - terminal graphic library loosely based on QT api (my previous failed attempt)
- pyTooling.TerminalUI - A set of helpers to implement a text user interface (TUI) in a terminal.
-
Non Python
- Turbo Vision
- ncurses
- tui.el - An experimental text-based UI framework for Emacs modeled after React
