$npx skillfedfor your agent

curtsies

Curses-like terminal wrapper, with colored strings!

With conditionsPyPI TerminalsReleased Jun 2025556.4K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — curtsies-0.4.3-py3-none-any.whl
v0.4.3 · released 2025-06-05 · Python >=3.10 · 2 runtime deps: blessed, cwcwidth

Yes, if you need a lightweight, permissively licensed library for interactive terminal UIs with colored text and keyboard input on POSIX systems. The low install friction, active maintenance, and lack of known vulnerabilities make it a safe choice. The Alpha status reflects the package's maturity rather than instability—it has been in use since 2013. Not suitable for Windows without additional compatibility work.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later; POSIX operating system (Linux, macOS, BSD) based on classifier metadata.
  • Low install friction with a pure Python wheel.
  • Actively maintained as of August 2026 with recent commits; development status is marked Alpha but the package has been stable since its 2013 release.

License · maintenance · safety

MIT (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.

last release 2025-06-05 (435 days) · last repo commit 2026-08-04 · 231 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 556,398 downloads/mo, #6,020 on PyPI

Verify before relying

pip install curtsies

from curtsies import FullscreenWindow, Input, FSArray
from curtsies.fmtfuncs import red, bold

with FullscreenWindow() as window:
    a = FSArray(window.height, window.width)
    a[0:1, 0:10] = [red(bold('Hello'))]
    window.render_to_terminal(a)
    with Input() as input_generator:
        for c in input_generator:
            if c == '':
                break
  • Whether the package works reliably on non-POSIX systems (classifiers list only POSIX support).
  • Current state of documentation at the linked readthedocs URL and whether examples remain functional.
Same gist for agents: .md · .json

What it is and what it does

Curtsies is a terminal interaction library that wraps low-level terminal control to let you build interactive console applications with colored and styled text. It provides three main abstractions: FmtStr objects for ANSI-formatted strings, FSArray objects for composable grids of formatted text, and window objects (FullscreenWindow for alternate-screen mode like Vim, or CursorAwareWindow for history-preserving mode) that render those grids and capture keyboard input events.

The library depends on blessed for terminal capability detection and cwcwidth for character width calculation. It's designed for applications that need fine-grained control over terminal rendering—games, interactive REPLs, monitoring dashboards—without the complexity of a full TUI framework. The package has been actively maintained since 2013 and remains compatible with modern Python versions.

Use it for

  • Build interactive terminal games or demos that respond to keyboard input and render colored text grids.
  • Create terminal-based monitoring dashboards or status displays with real-time updates.
  • Develop interactive command-line tools with formatted output and user input handling.
  • Add colored, styled output to REPL environments or debugging utilities.
  • Render complex text layouts in fullscreen or scrolling terminal modes.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need a lightweight, permissively licensed library for interactive terminal UIs with colored text and keyboard input on POSIX systems.

The low install friction, active maintenance, and lack of known vulnerabilities make it a safe choice. The Alpha status reflects the package's maturity rather than instability—it has been in use since 2013. Not suitable for Windows without additional compatibility work.

Install

curtsies on PyPI

Before you install

Low install friction with a pure Python wheel. Actively maintained as of August 2026 with recent commits; development status is marked Alpha but the package has been stable since its 2013 release.

Requires Python 3.10 or later; POSIX operating system (Linux, macOS, BSD) based on classifier metadata.

License in practice

MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.

Quickstart

pip install curtsies

from curtsies import FullscreenWindow, Input, FSArray
from curtsies.fmtfuncs import red, bold

with FullscreenWindow() as window:
    a = FSArray(window.height, window.width)
    a[0:1, 0:10] = [red(bold('Hello'))]
    window.render_to_terminal(a)
    with Input() as input_generator:
        for c in input_generator:
            if c == '':
                break

Verify before relying

  • Whether the package works reliably on non-POSIX systems (classifiers list only POSIX support).
  • Current state of documentation at the linked readthedocs URL and whether examples remain functional.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
blessedcwcwidth
MaintenanceActively maintained 435 days since the last release
Last repo commit
First released
Downloads556,398 / month, #6,020 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 3 - AlphaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3

Evidence: curtsies-0.4.3-py3-none-any.whl

Tags

Capabilities
terminal UI librarycolored terminal textfullscreen terminal windowterminal input handlingANSI formatted stringsterminal grid renderingcurses alternative
Topics
terminal-uiansi-colorsinteractive-console

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “fullscreen terminal window”

  • curtsiesCurtsies provides a Python library for building interactive terminal…
  • EWMHlibQuery and control window managers that implement Extended Window…
  • blessedBlessed provides a clean Python interface for terminal styling,…

Give your agent the search over MCP, or paste the wish link into any chat.

More Terminals packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
rich Worth it
PyPI · Terminals · released Apr 2026

Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.

MITpure Python · 3.9.0+
613.9Mdownloads / mo
colorama Worth it
PyPI · Terminals · released Oct 2022

Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.

Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…

BSD-3-Clausepure Python
431.0Mdownloads / mo
wcwidth Worth it
PyPI · Libraries · released Jun 2026

Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.

Install it if your application formats text for terminals and handles non-ASCII characters.

MITpure Python · 3.8+
306.5Mdownloads / mo
ptyprocess With conditions
PyPI · Terminals · released Dec 2020

Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.

However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…

ISCpure Pythonaging
205.2Mdownloads / mo
pexpect With conditions
PyPI · Software Development · released Nov 2023

Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.

ISCpure Pythonaging
200.8Mdownloads / mo

See also colored · pastel · style · pansi · simple-colors · crayons · blessings · blessed · termcolor