Skip to content

Releases: kimusan/espresso

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 20:35

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

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:46

☕ 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), and view() -> 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_CLICK gestures.

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_COLOR environments.
  • Responsive Layout Primitives: join_horizontal, join_vertical, place_overlay, FlexBox proportional layouts, and multi-column responsive Grid.
  • 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, Spring physics, 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 espressoTUI

Universal 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 gallery

Standalone 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