termprompt

number

Numeric input with validation, min/max bounds, and step controls.

Preview

Typing

number
Port number?
8080

Validation error

number
Port number?
99999
Must be at most 65535.

Usage

import { number, isCancel } from 'termprompt';

const port = await number({
  message: 'Port number?',
  min: 1,
  max: 65535,
});

if (isCancel(port)) process.exit(0);
console.log(port); // number

Props

PropTypeDefaultDescription
messagestringrequiredQuestion text
minnumber?noneMinimum allowed value
maxnumber?noneMaximum allowed value
stepnumber1Increment/decrement step
initialValuenumber?nonePre-filled value
placeholderstring?noneGray text shown when empty
validate(value: number) => true | stringnoneReturn true or an error message

Step Controls

Use Up/Down arrow keys to increment or decrement by the step value. The value is clamped to min/max bounds.

const quantity = await number({
  message: 'How many?',
  min: 1,
  max: 100,
  step: 5,
  initialValue: 10,
});

Validation

Built-in validation checks min/max bounds on submit. You can add custom validation on top.

const even = await number({
  message: 'Enter an even number',
  validate(value) {
    if (value % 2 !== 0) return 'Must be even';
    return true;
  },
});

Keyboard

KeyAction
0-9, -, .Type digits
UpIncrement by step
DownDecrement by step
Left / RightMove cursor
Home / Ctrl+AGo to start
End / Ctrl+EGo to end
Ctrl+UClear line
Ctrl+WDelete word back
BackspaceDelete character
DeleteDelete forward
EnterSubmit
EscCancel

On this page