InkUI
Components

Confirm

Yes/no confirmation prompt. The most common CLI interaction pattern.

A y/N confirmation prompt using Ink's useInput. Shows a blinking cursor while waiting. Resolves with a static confirmation line after the user answers.

Live Preview
Confirm · y/N prompt
? Delete 3 files? (y/N)
~/my-cli — node v22● running

Installation

npx inkui add confirm

Usage

import { Confirm } from './components/ui/confirm';
 
<Confirm
  message="Delete 47 files from dist/?"
  defaultValue={false}
  onConfirm={() => runDelete()}
  onCancel={() => console.log('Cancelled')}
/>

Examples

Destructive confirmation (default No)

<Confirm
  message="Deploy to production?"
  defaultValue={false}
  onConfirm={deploy}
  onCancel={() => setStep('cancelled')}
/>
// Output: ? Deploy to production? (y/N) █

Safe action (default Yes)

<Confirm
  message="Save changes before exiting?"
  defaultValue={true}
  onConfirm={save}
  onCancel={discardAndExit}
/>
// Output: ? Save changes before exiting? (Y/n) █

Key bindings

KeyAction
y / YConfirm
n / N / EscCancel
EnterUse defaultValue

Props

PropTypeDefaultDescription
messagestringQuestion to display (required)
defaultValuebooleanfalsetrue = Y default, false = N default
onConfirm() => voidCalled on confirmation (required)
onCancel() => voidundefinedCalled on cancellation
themeInkUIThemedarkThemeColor theme

On this page