RunTUI — Modern Terminal UI Framework for Python
Build beautiful, interactive, mouse-aware terminal applications in pure Python — no curses, no ncurses, no external dependencies.
runtui is a full-featured, cross-platform TUI (Text User Interface) library written in 100% pure Python.
It brings modern desktop-like experience into your terminal: windows, dialogs, forms, image rendering, embedded terminals, mouse support, theming, layout managers and even a visual RAD (Rapid Application Development) designer.
Works seamlessly on Linux, macOS, and Windows
✨ Highlights
- Pure Python — zero compiled dependencies
- Cross-platform (Linux, macOS, Windows)
- Rich set of widgets — Button, Input, Password, TextArea, Dropdown, ListBox, CheckBox, Radio, Calendar, ColorPicker, ProgressBar, Image, real Terminal, etc.
- Multiple layout engines: Absolute, Box, Dock, Grid
- Theme engine with built-in themes: Dark, Light, Nord, Solarized, Turbo Vision / Borland style
- Mouse support (click, drag, scroll, hover)
- Window manager with floating & tiled windows + taskbar
- Dialogs: MessageBox, File Open/Save, Custom Forms
- Visual RAD designer (
rad_designer.py) — drag & drop UI building + code generation - Embedded terminal widget with PTY support (run vim, htop, bash, python REPL, … inside your app!)
- Browser under Text UI (can browse any website, a full chrome mirror)
- Clean event loop, timers, key bindings, context menus
Installation
pip install runtui
Run
python -m runtui.tui_os
python -m runtui.rad_designer
More examples in the examples/ folder:
cal.py— Calendarcalc.py— Calculatorchatbox.py— LLM Chat Appclock.py— A basic clock programdemo_app.py— widget showcasemine.py- window's mine gamenotes.py— mac os like personal notesrad_designer.py— visual designer (very cool!)puzzle.py— mac os like puzzle gametrome.py— a Text UI browser via chrome mirror (very cool!)tui_os.py— tui desktop / OS-like interface
It is highly recommended to run everything inside tui_os.py by browse these python files in Finder.
Why choose runtui over other TUI libraries?
| Feature | runtui | Textual | urwid | py_cui | rich + textual |
|---|---|---|---|---|---|
| Pure Python | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cross-platform (good) | ✓ | ✓ | △ | ✓ | ✓ |
| Mouse support | ✓ | ✓ | ✗ | ✓ | ✓ |
| Built-in themes | ✓ (many) | ✓ (CSS) | ✗ | ✗ | ✓ |
| Embedded terminal widget | ✓ (PTY) | ✗ | ✗ | ✗ | ✗ |
| Visual RAD designer | ✓ | ✗ | ✗ | ✗ | ✗ |
| Image rendering | ✓ | ✓ | ✗ | ✗ | ✓ |
| Floating windows + taskbar | ✓ | △ | ✗ | ✗ | ✗ |
| LLM Chat App | ✓ | ✗ | ✗ | ✗ | ✗ |
License
MIT
Made with ❤️ in the terminal
Start building your next TUI masterpiece today!
Metadata
Release files for runtui 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runtui-0.1.5.tar.gz | 29.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runtui-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.6 MB
Release files / runtui-0.1.5.tar.gz
| Download URL | runtui-0.1.5.tar.gz |
|---|---|
| Size | 29.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bc60278ecce72a7173b50c1dfc0b79dc142d4492770ff1393874547bf0c16df
|
|
BLAKE2b-256 checksum How to use checksums |
17ac6a0a353f258cdf824faa1228a9c15404638c6043d49b10c01571605b7f36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / runtui-0.1.5-py3-none-any.whl
| Download URL | runtui-0.1.5-py3-none-any.whl |
|---|---|
| Size | 165.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15a809a7fb4ca19870f355389bee953e7492711f42e7ac05a291c78b63970503
|
|
BLAKE2b-256 checksum How to use checksums |
92946b053b1b85c35a067c48089512540e0036a4f69ddfde74a5cb0ab3cefc6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|