termprompt

Progress

Determinate progress bar for operations with known completion percentage.

Preview

In progress

progress
████████████░░░░░░░░ Downloading... 60%

Completed

progress
◆ Download complete.

Usage

import { progress } from 'termprompt';

const p = progress();

p.start('Downloading...');
p.update(25);
p.update(50, 'Downloading... halfway');
p.update(100);
p.stop('Download complete.');

API

progress(config?)

Returns a Progress object.

ConfigTypeDefaultDescription
outputWritableprocess.stdoutOutput stream

Progress Methods

MethodDescription
start(message: string)Show the progress bar at 0%
update(percent: number, message?)Update percentage (0-100) and optionally message
stop(message?: string, code?)Stop and show final message

Stop Codes

CodeIcon
0 (default)Green diamond (success)
Non-zeroRed triangle (error)

Error Handling

const p = progress();
p.start('Uploading...');

try {
  await upload((pct) => p.update(pct));
  p.stop('Upload complete.');
} catch (err) {
  p.stop('Upload failed.', 1);
}
error stop code
▲ Upload failed.

Bar Rendering

The bar is 20 characters wide using filled (█) and empty (░) blocks. The fill amount is proportional to the percentage. The bar color uses your accent color.

On this page