blessed
Easy, practical library for making terminal apps, by providing an elegant, well-documented interface for Terminals.
What it is and what it does
Blessed is a terminal UI library that abstracts away the complexity of low-level curses programming. Instead of juggling terminfo calls, terminal detection, and escape sequences, you import Terminal and call methods like term.bold(), term.color_rgb(), term.inkey(), and term.location() to style text, read keyboard input, and position the cursor. It handles the messy details: detecting whether output is piped to a file (and stripping sequences accordingly), managing terminal capabilities across different systems, and safely entering modes like fullscreen or raw input through context managers.
The package is designed for developers building CLI tools, terminal games, or text-based dashboards who want cross-platform compatibility without wrestling with curses. It works on Windows, Mac, Linux, and BSD, supports Python 3.8+, and includes features like 24-bit color, unicode keyboard handling, terminal-aware text wrapping, and cursor location queries. The API is intentionally minimal—Terminal is the only class you typically need to import.
Use it for:
- Build colorful, styled CLI applications with text formatting and colors without curses boilerplate.
- Create interactive terminal games or fullscreen applications that respond to keyboard input and terminal size changes.
- Add keyboard-driven menus or prompts to command-line tools with safe input handling and cursor control.
- Develop terminal dashboards that position and update text at specific screen locations.
- Write terminal utilities that gracefully degrade when output is piped to files or other commands.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Blessed provides a clean Python interface for terminal styling, colors, keyboard input, and cursor positioning, replacing low-level curses calls with an intuitive API that works across Windows, Mac, Linux, and BSD.
Yes. Blessed is actively maintained, has no known vulnerabilities, low install friction, permissive licensing, and a stable API. Install it if you're building any terminal UI, need cross-platform keyboard handling, or want to avoid curses complexity.
Install
blessed on PyPI
pip
pip install blesseduv
uv add blessedpoetry
poetry add blessedInstalling blessed
Before you install
Low install friction with only two runtime dependencies (wcwidth and jinxed). The package is actively maintained with a recent release and production-stable status.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
pip install blessed
from blessed import Terminal
term = Terminal()
print(term.bold('Hello') + ' ' + term.underline('world'))
with term.cbreak():
inp = term.inkey()
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — wcwidth, jinxed |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 14,582,716/month — #1,224 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: blessed-1.48.0-py3-none-any.whl
Keywords: terminal, sequences, tty, curses, ncurses, formatting, style, color, console, keyboard, ansi, xterm
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
blessingsBlessings provides a clean Python API for…
permissive · top 5,000 on PyPI
jinxedJinxed provides pure-Python implementations of…
copyleft · top 5,000 on PyPI
pythondialogProvides a Python interface to the UNIX dialog…
copyleft · top 15,000 on PyPI
pickpick provides a Python library to create…
permissive · top 15,000 on PyPI
windows-cursesProvides the standard Python curses module on…
permissive · top 15,000 on PyPI
coloredColored provides ANSI/VT100 escape sequences…
permissive · top 5,000 on PyPI
python-yakhCaptures individual keypresses from terminal…
permissive · top 15,000 on PyPI
wcwidthMeasures the displayed width of Unicode strings…
permissive · top 1,000 on PyPI
styleApplies ANSI color and text styling to terminal…
permissive · top 15,000 on PyPI
colorfulColorful applies ANSI color and text styling to…
permissive · top 5,000 on PyPI