Tuiko
Status: work in progress — this project is NOT finished yet.
The API and behavior may change at any time without notice. Do not use it in production. Everything you see here is experimental.
Tuiko is a tiny TUI framework for Python — stdlib-only, zero third-party
dependencies. It renders with ANSI escape codes and reads input via msvcrt
(Windows) / termios (POSIX).
What works today
prompt— single-line text inputselect— pick one item, with digit jump (0-9)multiselect— pick many items at once (checkboxes)- Realtime search (
search=True) — type to filter the list live with the matching text highlighted, Inquirer-style: just type and pick;fuzzy=Truematches letters in sequence (e.g.sxkfinds "Spy x Family") progress— progress bar (percentage) + spinnerstatus— one-line noticesession— full-screen mode (alt screen + raw input)- Inquirer-style windowed scrolling; card width and items per window adapt to the terminal size automatically
What is missing
- Full API documentation
- Integration with other projects (e.g. Indonime)
- Battle-tested stability — expect rough edges
Quick usage
from tuiko import prompt, select, session
with session():
name = prompt("What's your name?", hint="[ESC] quit")
choice = select("Pick:", ["One", "Two"], search=True, fuzzy=True)
Customization
All text, icons, and colors can be overridden via tuiko.ui and tuiko.theme:
import tuiko
tuiko.ui.cursor = "▌" # input cursor
tuiko.ui.banner = "★ Tuiko" # wordmark
tuiko.ui.hint_select = "[↑/↓] Move · [ENTER] Select · [ESC] Cancel"
Examples
examples/custom_ui.py— override all text & iconsexamples/anime_search.py— anime search demo in the style of Indonime (mock data)
Run the demo
python -m tuiko
Tests
python -m unittest discover -s tests -v
Philosophy
Instead of patching InquirerPy via monkeypatching, all widgets are fully under our control — more stable and easier to understand.
Metadata
Release files for tuiko 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tuiko-0.1.3.tar.gz | 18.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tuiko-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.2 kB
Release files / tuiko-0.1.3.tar.gz
| Download URL | tuiko-0.1.3.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c1d96dd5dd3f74121a975322206c433b18384ba42f712500da9cd17d7a10dfc
|
|
BLAKE2b-256 checksum How to use checksums |
ea68e1d5a42753753ec1498377deacf2b8df212c9b3947712c4ffaf6c2051c9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|
Release files / tuiko-0.1.3-py3-none-any.whl
| Download URL | tuiko-0.1.3-py3-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5b4d634e473c6e25d3c8a9aef63ff463614c5a8b9e760bae2b309c77834f23c
|
|
BLAKE2b-256 checksum How to use checksums |
de7b10fd63302dfb8dd39d4b869958ef7f58e73feca197018b7f923abe32ac18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|