EchoUI
Pure Python terminal UI framework using ASCII/ANSI characters to render interfaces in the terminal. Features a chain-driven component API.
Features
- Pure terminal UI: Renders interfaces using ASCII/ANSI characters
- Chain-driven API: All components support method chaining
- Theme system: 9 built-in themes with color customization
- Multiple adapters: Terminal, Web (aiohttp/Flask/FastAPI), Desktop (Tkinter/PyQt)
- Database ORM: In-memory model layer with async session support
- Cross-version: Python 3.8-3.14 compatible
- Cross-platform: Windows, macOS, Linux support
Installation
pip install echoui
Quick Start
from echoui import EchoUI
ui = EchoUI(normal_mode=True)
ui.block("EchoUI").rule("=").success("Ready").print()
Components
ConsoleUI- Terminal console controllerBoxBuilder- Content container with titlesTableBuilder- Formatted table renderingProgressBar- Progress bar visualizationSpinner- Loading animationNotification- Success/warning/error/info notificationsBlockArt- Block character art renderingKeyValueList- Key-value pair displayTreeView- Hierarchical data display
Adapters
| Adapter | Backend | Use Case |
|---|---|---|
| TerminalAdapter | Console | Terminal UI |
| AiohttpAdapter | aiohttp | Web, WebSocket |
| FlaskAdapter | Flask | Lightweight web |
| FastAPIAdapter | FastAPI | API with docs |
| TkinterAdapter | Tkinter | Desktop (stdlib) |
| PyQtAdapter | PyQt5/6 | Professional desktop |
Documentation
Development
Local install
# Windows
.\scripts\localinstall.ps1
# Linux/macOS
chmod +x scripts/localinstall.sh
./scripts/localinstall.sh
Or manually:
python -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
pip install -e ".[dev]"
pytest tests/ -v
Quality checks
black src/ tests/
isort src/ tests/
mypy src/ --strict
pytest tests/ --cov=src/echoui --cov-fail-under=90
Build & publish
python -m build
twine check dist/*
twine upload dist/*
License
MIT License
Metadata
Release files for echoui 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| echoui-2.0.0.tar.gz | 50.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echoui-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.2 kB
Release files / echoui-2.0.0.tar.gz
| Download URL | echoui-2.0.0.tar.gz |
|---|---|
| Size | 50.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b574023dee17202cb9fd6906cf9e953e1d83fca71bf0def4ede2fc9f48b3332a
|
|
BLAKE2b-256 checksum How to use checksums |
e0ef8d929921fc5ce809864feb289d76a75e0c6d653d90ea5322c81840d7b50e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / echoui-2.0.0-py3-none-any.whl
| Download URL | echoui-2.0.0-py3-none-any.whl |
|---|---|
| Size | 75.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc5ca78137841c4d1d0806609ec42b2a8814036d4637387f879af6e019a3db2a
|
|
BLAKE2b-256 checksum How to use checksums |
4f021b9b74a19ed5210bbce097309bb4a9a53fec35d32d45f732f935c3cd4210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|