pwinput
A cross-platform Python module that displays **** for password input. Works on Windows, unlike getpass. Formerly called stdiomask.
What it is and what it does
pwinput is a lightweight cross-platform module that improves password input by displaying mask characters (typically asterisks) as the user types, addressing a limitation of Python's standard library getpass module. The standard getpass shows nothing as you type; pwinput lets you see visual feedback with a configurable mask character, making it clearer that input is being received.
The module has no runtime dependencies and offers a simple API: call pwinput.pwinput() to prompt for a password with asterisk masking, or customize the prompt text and mask character as needed. It is intended as a drop-in replacement for getpass in scenarios where visual feedback during password entry is desired, particularly on Windows where getpass behavior differs from Unix-like systems.
Use it for:
- Interactive CLI tools that need to collect passwords with visual confirmation that input is being registered
- Cross-platform applications requiring consistent password prompting behavior across Windows and Unix-like systems
- Custom authentication dialogs where standard getpass feedback is insufficient for user experience
- Testing or debugging scenarios where seeing mask characters helps verify input capture
- Accessibility improvements in terminal applications where visual feedback aids users with certain input preferences
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Displays mask characters (like asterisks) as the user types a password, providing visual feedback that standard library getpass does not offer.
Yes, if you need masked password input in a terminal application and can tolerate dormant maintenance. The package is simple, dependency-free, and solves a real getpass limitation. However, the high install friction (source distribution only) and lack of updates since early 2023 mean you should verify it works on your target Python version before relying on it in production.
Install
pwinput on PyPI
pip
pip install pwinputuv
uv add pwinputpoetry
poetry add pwinputInstalling pwinput
Before you install
High install friction due to source distribution only. Maintenance is dormant—last release was over a year ago and no commits since March 2024—though the repository remains active and unarchived.
License in practice
MIT license is permissive and places no restrictions on use, modification, or redistribution in proprietary or open-source projects.
Quickstart
pip install pwinput
import pwinput
password = pwinput.pwinput() # Shows * for each typed character
password = pwinput.pwinput(prompt='PW: ', mask='X') # Custom prompt and mask
Verify before relying
- Whether the package works reliably on all modern Python versions despite classifiers listing only up to 3.9
- Current status of Windows-specific password input behavior compared to standard getpass
- Whether high install friction (source-only distribution) impacts usability in automated deployments
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 1,275 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,242/month — #13,739 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pwinput-1.0.3.tar.gz
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
PyMsgBoxPyMsgBox provides JavaScript-like message box…
copyleft · top 5,000 on PyPI
PyGetWindowPyGetWindow provides functions to query,…
permissive · top 5,000 on PyPI
PyAutoGUIPyAutoGUI programmatically controls the mouse…
permissive · top 5,000 on PyPI
pyperclipPyperclip provides simple cross-platform access…
permissive · top 1,000 on PyPI
microsoft-security-utilities-secret-maskerDetects and masks sensitive data in text using…
permissive · top 5,000 on PyPI
readcharReads single characters and keystrokes from…
permissive · top 5,000 on PyPI
inputsProvides cross-platform Python access to…
permissive · top 15,000 on PyPI
inputimeoutProvides cross-platform standard input with a…
permissive · top 5,000 on PyPI
asciimaticsAsciimatics provides cross-platform terminal UI…
permissive · top 15,000 on PyPI