# `@inquirer/password`
Interactive password input component for command line interfaces. Supports input validation and masked or transparent modes.

# Special Thanks
[](https://graphite.dev/?utm_source=npmjs&utm_medium=repo&utm_campaign=inquirerjs)
### [Graphite is the AI developer productivity platform helping teams on GitHub ship higher quality software, faster](https://graphite.dev/?utm_source=npmjs&utm_medium=repo&utm_campaign=inquirerjs)
# Installation
npm |
yarn |
```sh
npm install @inquirer/prompts
```
|
```sh
yarn add @inquirer/prompts
```
|
Or |
```sh
npm install @inquirer/password
```
|
```sh
yarn add @inquirer/password
```
|
# Usage
```js
import { password } from '@inquirer/prompts';
// Or
// import password from '@inquirer/password';
const answer = await password({ message: 'Enter your name' });
```
## Options
| Property | Type | Required | Description |
| -------- | ----------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| message | `string` | yes | The question to ask |
| mask | `boolean` | no | Show a `*` mask over the input or keep it transparent |
| validate | `string => boolean \| string \| Promise` | no | On submit, validate the filtered answered content. When returning a string, it'll be used as the error message displayed to the user. Note: returning a rejected promise, we'll assume a code error happened and crash. |
| theme | [See Theming](#Theming) | no | Customize look of the prompt. |
## Theming
You can theme a prompt by passing a `theme` object option. The theme object only need to includes the keys you wish to modify, we'll fallback on the defaults for the rest.
```ts
type Theme = {
prefix: string | { idle: string; done: string };
spinner: {
interval: number;
frames: string[];
};
style: {
answer: (text: string) => string;
message: (text: string, status: 'idle' | 'done' | 'loading') => string;
error: (text: string) => string;
help: (text: string) => string;
};
};
```
# License
Copyright (c) 2023 Simon Boudrias (twitter: [@vaxilart](https://twitter.com/Vaxilart))
Licensed under the MIT license.