seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

Maintainers

👁 Seldaek

Package info

github.com/Seldaek/cli-prompt

pkg:composer/seld/cli-prompt

Statistics

Installs: 26 515 053

Dependents: 17

Suggesters: 0

Stars: 247

Open Issues: 0

1.0.4 2020-12-15 21:32 UTC

Requires

  • php: >=5.3

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT b8dfcf02094b8c03b40322c229493bb2884423c5

  • Jordi Boggiano <j.boggiano.woop@seld.be>

cliconsoleinputprompthidden

This package is auto-updated.

Last update: 2026-05-28 12:33:35 UTC


README

While prompting for user input using fgets() is quite easy, sometimes you need to prompt for sensitive information. In these cases, the characters typed in by the user should not be directly visible, and this is quite a pain to do in a cross-platform way.

This tiny package fixes just that for you:

<?php

echo 'Say hello: ';

$answer = Seld\CliPrompt\CliPrompt::hiddenPrompt();

echo 'You answered: '.$answer . PHP_EOL;

// Output in the CLI:
// 
// Say hello:
// You answered: hello

Installation

composer require seld/cli-prompt

API

  • Seld\CliPrompt\CliPrompt::hiddenPrompt($allowFallback = false);

    Prompts the user for input and hides what they type. If this fails for any reason and $allowFallback is set to true the prompt will be done using the usual fgets() and characters will be visible.

  • Seld\CliPrompt\CliPrompt::prompt();

    Regular user prompt for input with characters being shown on screen.

In both cases, the trailing newline the user enters when submitting the answer is trimmed.

Requirements

PHP 5.3 and above

License

CLI-Prompt is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

  • This project uses hiddeninput.exe to prompt for passwords on Windows, sources and details can be found on the github page of the project.