skillfed

asciimatics

A cross-platform package to replace curses (mouse/keyboard input & text colours/positioning) and create ASCII animations

asciimatics v1.15.0 214.3K downloads/30d#9,421 on PyPI4,299
Permissive license Apache 2.0 Active released

What it is and what it does

Asciimatics is a cross-platform terminal UI and animation library that abstracts away platform-specific console handling. It provides low-level APIs for colored text, cursor positioning, keyboard and mouse input, and screen management, plus higher-level features like ASCII line-drawing, image-to-ASCII conversion, sprite animations, and widget-based form builders. The package works consistently across Windows, Linux, and macOS by wrapping curses on Unix-like systems and native Windows console APIs, eliminating the need to write platform-specific terminal code.

The library is built on four runtime dependencies: pyfiglet for ASCII art text rendering, Pillow for image processing, wcwidth for character width calculations, and pywin32 for Windows console access. It targets developers building terminal-based tools, retro-style animations, or interactive command-line interfaces where a unified codebase must run on multiple operating systems.

Use it for:

  • Build cross-platform interactive forms and text-based UIs (buttons, text boxes, radio buttons) that work identically on Windows, Linux, and macOS.
  • Create ASCII animations and retro-style visual effects with sprites, particle systems, and color cycling.
  • Convert images (JPEG, GIF) to ASCII art for terminal display or artistic output.
  • Implement terminal applications requiring mouse and keyboard input without blocking or echoing.
  • Build terminal dashboards or monitoring tools with colored text, positioned elements, and real-time screen updates.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Asciimatics provides cross-platform terminal UI and ASCII animation capabilities, handling colored text, keyboard/mouse input, and screen rendering on Windows, Linux, and macOS through a unified Python API.

Yes. Asciimatics is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively. It is the right choice if you need a single codebase for terminal UIs or ASCII graphics across Windows, Linux, and macOS. Not necessary if you are building web UIs or only targeting a single platform.

Install

asciimatics on PyPI

pip

pip install asciimatics

uv

uv add asciimatics

poetry

poetry add asciimatics

Installing asciimatics

Before you install

Low friction install with four runtime dependencies (pyfiglet, Pillow, wcwidth, pywin32). Package is actively maintained with recent commits and stable production status; last release was in 2023.

License in practice

Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most projects without legal concerns.

Quickstart

pip install asciimatics

from asciimatics.screen import Screen

def demo(screen):
    screen.print_at('Hello world!', 0, 0, colour=1)
    screen.refresh()

Screen.wrapper(demo)

Requires Python >= 3.8; on Windows without pip, pywin32 must be installed separately.

Verify before relying

  • Whether the package works reliably on modern Android/Termux environments beyond the Marshmallow era mentioned in the description.
  • Current state of PyPy2 support given that Python 2 support ended at v1.14.

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>= 3.8)
Install friction low — pure-Python wheel
Runtime dependencies 4 — pyfiglet, Pillow, wcwidth, pywin32
Maintenance actively maintained — 1,024 days since the last release
Last repo commit
First released
Downloads 214,298/month — #9,421 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: asciimatics-1.15.0-py3-none-any.whl

Keywords: ascii, ansi, art, credits, titles, animation, curses, ncurses, windows, xterm, mouse, keyboard, terminal, tty, color, colour, crossplatform, console

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: Console :: CursesIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: User InterfacesTopic :: TerminalsTopic :: Text Processing :: General

Tags

terminal ui libraryascii animationcross-platform consoletext-based user interfacecurses replacementterminal graphicskeyboard mouse input terminal
terminal-uicross-platformascii-art

More User Interfaces packages