asciimatics
A cross-platform package to replace curses (mouse/keyboard input & text colours/positioning) and create ASCII animations
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.8; on Windows without pip, pywin32 must be installed separately.
- 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 · maintenance · safety
Apache 2.0 (permissive) — Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most projects without legal concerns.
last release 2023-10-25 (1024 days) · last repo commit 2026-07-04 · 4,299 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 214,298 downloads/mo, #9,421 on PyPI
Alternatives
Verify before relying
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)- 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.
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 on it.
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
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.
Requires Python >= 3.8; on Windows without pip, pywin32 must be installed separately.
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)
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 packagespyfigletPillowwcwidthpywin32 |
| 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 |
| Classifiers | 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 |
Evidence: asciimatics-1.15.0-py3-none-any.whl
Tags
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 › “ascii animation”
- asciimaticsAsciimatics provides cross-platform terminal UI and ASCII animation…
- spinnersProvides an enum of more than 60 pre-defined terminal spinner…
- cowsayRenders ASCII art animals and custom characters that display text…
Give your agent the search over MCP, or paste the wish link into any chat.
More User Interfaces packages
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.
Formats and parses numbers, file sizes, timespans, and other values into human-readable text; provides terminal interaction utilities including ANSI text styling and user prompts.
Adds colored output to Python's standard logging module using ANSI escape sequences, with automatic fallback support for Windows terminals.
However, it is abandoned and receives no maintenance, so it will not adapt to future Python changes or platform updates.
Formats argparse and optparse help output with rich styling, colors, and markup to improve CLI readability with minimal code changes.
progressbar2 renders text-based progress bars in the terminal, handling custom widgets, concurrent bars, unknown-length progress, and clean output around logs and prints.
InquirerPy provides interactive command-line prompts (text input, confirmations, selections, checkboxes, fuzzy search) for building conversational CLI interfaces in Python.
However, the project is dormant (last release 2022-06-27), so adopt it only if you need its specific feature set (especially the fuzzy prompt) and can tolerate no…
See also pansi · tuipet · terminaltexteffects · climage · windows-curses · colored · jinxed · blessed · rich-pyfiglet · urwid