Inquirer Checkbox Multiselect Prompt Flow
Build interactive CLI flows with Inquirer checkbox prompts, validated input, default selections, and answer-driven branching between steps.
Code
import inquirer from 'inquirer';
const answers = await inquirer.prompt([
{
type: 'checkbox',
name: 'services',
message: 'Which services should the report cover?',
choices: [
{ name: 'api-gateway', value: 'gw', checked: true },
{ name: 'billing', value: 'bill' },
{ name: 'search', value: 'search', disabled: 'data source offline' },
],
validate: (list) => (list.length > 0 ? true : 'select at least one service'),
},
{
type: 'input',
name: 'ticket',
message: 'Ops ticket number:',
validate: (value) =>
/^OPS-\d{4,6}$/.test(value) ? true : 'expected format: OPS-12345',
},
{
type: 'confirm',
name: 'notify',
message: 'send summary to the on-call channel?',
default: false,
},
]);
console.log('report scope:', answers.services, 'ticket:', answers.ticket);Report a problem with this exampleOpens a pre-filled issue on GitHub.