textual-image
Render images via Kitty's Terminal Graphics Protocol with Rich and Textual
What it is and what it does
textual-image bridges terminal graphics capabilities and Python TUI frameworks by providing both Rich renderables and Textual widgets that display images in modern terminal emulators. It leverages Kitty's Terminal Graphics Protocol and Sixel graphics standards to render images natively, with automatic fallback to Unicode character-based rendering for terminals that lack graphics support.
The package targets developers building terminal user interfaces who need to embed images—charts, diagrams, photographs—directly in their applications. It depends on pillow for image processing and rich for terminal rendering integration, and requires Python 3.12 or later. Terminal support varies significantly: Kitty, WezTerm, iTerm2, and several others work out of the box, while some popular terminals like GNOME Terminal and Windows Console lack the necessary graphics protocols entirely.
Use it for:
- Display charts or plots in terminal dashboards built with Textual
- Render image previews in terminal file managers or CLI tools
- Show screenshots or diagrams in terminal-based documentation viewers
- Embed logos or icons in terminal application UIs
- Display scientific or data visualization output directly in terminal workflows
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Renders images directly in terminal emulators using Textual widgets and Rich renderables, with support for Kitty's Terminal Graphics Protocol, Sixel graphics, and Unicode fallback.
Yes, if your target terminal supports Sixel or Kitty graphics protocols. The package is actively maintained, has no known vulnerabilities, and low install friction. However, terminal compatibility is critical—check the support matrix first, as many common terminals (GNOME Terminal, Windows Console, Warp) are not supported. For terminals that do support the required protocols, this is a solid choice for image rendering in TUIs.
Install
textual-image on PyPI
pip
pip install textual-imageuv
uv add textual-imagepoetry
poetry add textual-imageInstalling textual-image
Before you install
Low friction install with just two runtime dependencies (pillow and rich). Active maintenance with recent commits and no known vulnerabilities.
License in practice
Licensed under LGPLv3+, a copyleft license. You may use and modify the package freely, but any derivative works must also be distributed under compatible terms.
Quickstart
pip install textual-image
from textual_image.rich import Image
from rich.console import Console
console = Console()
image = Image('path/to/image.png')
console.print(image)
Requires a terminal emulator that supports either Kitty's Terminal Graphics Protocol or Sixel graphics; fallback to Unicode rendering works in any terminal but with reduced quality.
Verify before relying
- Whether the package works reliably across all listed terminal emulators or if some have known rendering issues beyond the support matrix
- Performance characteristics when rendering large or high-resolution images in different terminals
- Whether optional Textual widget dependencies are required for core functionality or truly optional
Package facts
| License | not declared (copyleft) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — pillow, rich |
| Maintenance | actively maintained — 76 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 174,502/month — #10,281 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: textual_image-0.13.2-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
imgcatDisplays images in iTerm2, WezTerm, and tmux by…
permissive · top 15,000 on PyPI
rich-pixelsRenders pixel images and ASCII art grids to the…
unclear · top 15,000 on PyPI
tuipetA terminal-based virtual pet game in the…
permissive · top 15,000 on PyPI
textual-serveRuns any Textual terminal application in a web…
permissive · top 5,000 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
textual-autocompleteAdds fuzzy-matching autocomplete dropdowns to…
permissive · top 15,000 on PyPI
richRich renders styled text, tables, progress…
permissive · top 100 on PyPI
textual-devtextual-dev provides a command-line tool for…
permissive · top 15,000 on PyPI
tmuxptmuxp saves and loads tmux sessions from YAML…
permissive · top 15,000 on PyPI
omnigent-ui-sdkProvides terminal UI components built on Rich…
unclear · top 15,000 on PyPI