--- id: windows-curses version: "2.4.2" license: PSF2 license_treatment: permissive maintenance: active --- # windows-curses — Support for the standard curses module on Windows License: permissive · Maintenance: active · Downloads: 214.7K/mo ## What it is and what it does Windows-curses bridges a gap in Python's standard library: the curses module, which provides low-level terminal control for building text-based user interfaces, is not available on Windows by default. This package wraps PDCurses (a cross-platform curses implementation) and provides pre-built wheels for Windows, allowing developers to write terminal UI code that works across Windows, Linux, and macOS without platform-specific branches. The package includes a pragmatic enhancement: starting from version 2.0, it automatically handles terminal resizing by calling resize_term(0, 0) when KEY_RESIZE is received, mimicking the behavior of ncurses on Unix systems. PDCurses is compiled with wide character support, so get_wch() is available and UTF-8 is enforced as the encoding. Use it for: - Build cross-platform terminal UIs (dashboards, menus, forms) that work on Windows without code changes. - Port existing ncurses-based Python applications from Unix to Windows with minimal modification. - Create Windows console applications that need fine-grained control over cursor position, colors, and text attributes. - Develop interactive command-line tools that rely on the standard curses API across all platforms. - Handle terminal resizing events in Windows terminal applications without manual SIGWINCH-style workarounds. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides the standard Python curses module on Windows by wrapping PDCurses, enabling terminal UI development that would otherwise require platform-specific workarounds. Yes, if you need curses on Windows. It is actively maintained, has no known vulnerabilities, and solves a real gap in Python's Windows support. The medium install friction (platform-specific wheels) is a one-time cost. If you are building cross-platform terminal UIs or porting Unix code to Windows, this is the standard solution. ## Install pip install windows-curses uv add windows-curses poetry add windows-curses ## Installing windows-curses Before you install: Medium install friction due to platform-specific wheel requirements across multiple Python versions (3.6–3.14, both 32- and 64-bit). Package is actively maintained with recent commits and no known vulnerabilities. License in practice: Licensed under PSF2 (Python Software Foundation License), a permissive license that allows free use, modification, and distribution with minimal restrictions. Quickstart: pip install windows-curses import curses def main(stdscr): stdscr.addstr('Hello, Windows!') stdscr.refresh() stdscr.getch() curses.wrapper(main) Windows-only; requires a compatible Python version (3.6–3.14) and appropriate architecture (32- or 64-bit) matching your installation. Verify before relying: - Whether the automatic resize_term(0, 0) hack in version 2.0+ works reliably with all terminal emulators on Windows. - Performance characteristics compared to native ncurses on Unix-like systems when ported code runs on Windows. - Compatibility with third-party curses libraries or wrappers beyond standard Python curses API. ## Package facts - License: PSF2 (permissive) - Python support: unspecified - Install friction: medium - Maintenance: active - Downloads: 214.7K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags curses windows support, terminal ui windows, pdcurses python, windows console graphics, text-based ui windows, ncurses alternative windows, terminal control windows, terminal-ui, windows-compat, cross-platform [View on SkillFed](https://skillfed.io/packages/windows-curses) · [View on PyPI](https://pypi.org/project/windows-curses/)