Repository navigation
Releases: kimusan/espresso
Release list
v1.1.0
A fresh double shot of Espresso is ready to serve. Version 1.1.0 dials in the grind with retro nostalgia, a fresh batch of UI components, and rock-solid terminal ergonomics.
What's New:
- ArtPlayer Bean: Relive the BBS golden age. Play multi-frame ASCII animations (.3a) and classic ANSI art (.ans) with CP437 decoding, SAUCE metadata parsing, and simulated modem playback right inside your terminal.
- Fresh Beans: Expand your TUI toolkit with Accordion, ScrollView, Switch, Select, RadioSet, Checkbox, ModalStack, and VirtualList (now gracefully handling variable-height multi-line items).
- Sharper Crema: Pixel-perfect grapheme cluster and ZWJ width calculation across every supported Python release (even teaching older Python versions proper Unicode manners).
- Quality of Life: Bracketed paste support so massive terminal pastes do not choke your event loop, plus full mouse click and scroll wheel support on Tabs.
Full Changelog: v1.0.0...v1.1.0
Espresso v1.0.0 — Modern, Zero-Dependency TUI Framework for Python
☕ Espresso v1.0.0 — Modern, Zero-Dependency TUI Framework for Python
I am thrilled to announce the official v1.0.0 release of Espresso (published on PyPI as espressoTUI)!
Inspired by the elegance of Bubbletea and Lipgloss, Espresso brings The Elm Architecture (TEA), a declarative TrueColor box-model styling engine (Crema), and a comprehensive library of 39 ready-to-use UI components (Beans) to Python — all with zero external dependencies.
Highlights & Features
Pure Elm Architecture (TEA)
- Predictable State Machine: Clean separation between
Model,update(msg) -> (model, cmd), andview() -> str. - Async Commands & Messages: First-class async command batching (
batch), background tasks, and event loops. - Double-Buffered Line-Diffing Renderer: Intelligent differential alt-screen terminal updates with zero flicker and 60 FPS animations.
- First-Class Mouse Gesture Tracking: Click routing, mouse-wheel scrolling, dragging, and synthesized
DOUBLE_CLICKgestures.
Crema Styling & Layout Engine
- Declarative Box Model: Padding, margins, alignment, and custom borders (
ROUNDED_BORDER,DOUBLE_BORDER,THICK_BORDER). - TrueColor & ANSI Gradients: Multi-stop horizontal and vertical linear gradients with fallback support for 256-color, 16-color, and
NO_COLORenvironments. - Responsive Layout Primitives:
join_horizontal,join_vertical,place_overlay,FlexBoxproportional layouts, and multi-column responsiveGrid. - Unicode-Aware: Accurate cell-width calculation handling emojis, CJK glyphs, and variation selectors.
39 Ready-to-Use UI Beans
Espresso ships with an exhaustive suite of pre-built, interactive components:
- Navigation & Layout:
Tabs,NavStack,Splitter,Tree,GitTree,Grid - Data & Visualization:
Table,List(with Bubblelister vim relative numbering & continuous scrolling),BarChart,Sparkline,DiffViewer,CodeViewer,MarkdownViewer,ImageViewer - Inputs & Prompts:
TextInput,TextArea,Form,DatePicker,SelectPrompt,ConfirmPrompt,FilePicker - Feedback & Progress:
ProgressBar,Spinner,ToastManager,PipelineProgress,Dialog,Confetti,StatusBar,Metric - Utility & Animation:
Viewport,Springphysics,Timer,Stopwatch,Marquee,CommandPalette,QuickFix,DetailSelector,Paginator,Help
💻 Built-in CLI Tool (espresso)
espresso list: Browse all 14 interactive built-in example applications.espresso run <id>: Instantly launch any demo (e.g.espresso run 14).espresso gallery: Explore the interactive component showcase with mouse & keyboard.espresso new <app.py>: Scaffold a complete starter project with one command.
Installation & Getting Started
Via PyPI
pip install espressoTUIUniversal Executable Zipapp (Zero Install)
Download espresso.pyz attached below and run directly on any machine with Python 3.10+:
chmod +x espresso.pyz
./espresso.pyz galleryStandalone Native Binaries (No Python Required)
Download the standalone executable for your operating system from the release assets below:
- Linux x86_64:
espresso-linux-x86_64 - macOS (Apple Silicon M-Series):
espresso-macos-arm64 - Windows x86_64:
espresso-windows-x86_64.exe
# Example on Linux / macOS
chmod +x espresso-linux-x86_64
./espresso-linux-x86_64 run 14📖 Documentation & Links
- GitHub Wiki: https://github.com/kimusan/espresso/wiki
- PyPI: https://pypi.org/project/espressoTUI/
- Source Code: https://github.com/kimusan/espresso
- Changelog: CHANGELOG.md