@clack/prompts

Opinionated, ready-to-use interactive prompt components for building beautiful command-line apps in Node.js.

Library
npm
v1.8.1
8,115 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
80 /100 Excellent
Development Activity 84
Maintenance 88
Community 56
Maturity 52
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
89 /100 Excellent
Architecture 88
Code Quality 90
Innovation 92
Learning Curve 90

@clack/prompts is a small, opinionated library of pre-styled interactive prompt components for Node.js command-line applications. It wraps the headless @clack/core primitives with a beautiful, minimal terminal UI and a simple, consistent API, giving you text, password, confirm, date, select, multiselect, autocomplete, path, spinner, and progress components out of the box.

At roughly 80% smaller than comparable prompt libraries, it is designed to be dropped into CLI tools, scaffolding generators, and setup wizards with minimal boilerplate. Every prompt follows the same option-object pattern, ships with first-class TypeScript types, and integrates cancellation handling, grouping, task runners, and streaming log output.

What You Get

  • A complete set of prompt components: text, password, confirm, date, select, selectKey, multiselect, groupMultiselect, autocomplete, path, spinner, and progress.
  • Utility helpers for intro/outro framing, cancellation guards (isCancel/cancel), prompt grouping, task runners, and streaming log output.
  • First-class TypeScript types with a consistent option-object API across every component.
  • Automatic Unicode and CI-environment fallbacks so prompts render correctly across terminals.

Common Use Cases

  • Building create-* scaffolding CLIs and project generators that ask the user a series of configured questions.
  • Adding interactive setup wizards or configuration flows to developer tooling and internal scripts.
  • Surfacing long-running work with spinners, progress bars, and task lists during installs or builds.

Under The Hood

Architecture

@clack/prompts is the styled layer of a two-package monorepo: it re-exports headless interaction primitives from @clack/core (isCancel, settings, block, getColumns) and wraps them with terminal styling. Each prompt lives in its own module under packages/prompts/src (text.ts, select.ts, spinner.ts, autocomplete.ts, and so on), all barrel-exported from index.ts. Rendering is driven by ANSI escape sequences via sisteransi for cursor and erase control, Node’s built-in node:util styleText for color, and fast-wrap-ansi / fast-string-width for correct width-aware wrapping. Shared symbols and CI/Unicode fallbacks are centralized in common.ts, so components like spinner.ts degrade gracefully to ASCII frames when Unicode or a CI environment is detected.

Tech Stack

Written entirely in TypeScript (99.99% of the codebase) and shipped ESM-only, built with unbuild. Runtime dependencies are deliberately minimal: @clack/core (workspace peer), fast-string-width, fast-wrap-ansi, and sisteransi. The monorepo uses pnpm workspaces, Biome for lint/format, and requires Node >= 20.12. Versioning and changelogs are managed with Changesets.

Code Quality

Test coverage is strong: packages/prompts/test contains a dedicated Vitest spec for nearly every component (text, select, multi-select, autocomplete, date, password, spinner, path, and more), backed by snapshot fixtures and a vitest-ansi-serializer plus memfs mocks for filesystem-dependent prompts like path. Public options and results are expressed as exported TypeScript interfaces (e.g. SpinnerOptions, SpinnerResult), and default behavior is factored through option destructuring with sensible fallbacks.

API Design

The developer experience is the library’s standout trait. Every prompt is an async function taking a single option object with a shared vocabulary (message, validate, initialValue, options), so the mental model transfers across components. Cancellation is handled with one consistent pattern — the isCancel guard plus the cancel helper — and higher-level ergonomics (group, tasks, stream, log, intro/outro) reduce boilerplate for multi-step flows. Documentation in the README is example-first, and a StackBlitz demo lets users try it without installing.

Used by 38 apps in this directory

TypeScript
81%
MIT

OpenCode

AI Code Assistants

220,711

A fully open-source AI coding agent built for the terminal, with a TUI, desktop app, web client, plugin system, and SDK — one of the most-starred AI coding agents on GitHub.

View details
89
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 81%
MDX 16%
Updated 6 days ago
TypeScript
93%
Apache 2.0

Openship

Devops · Hosting Control Panel

14,912

Openship is an open-source, self-hostable deployment platform that points at a repo and builds, ships, routes, and TLS-terminates the app — driven from a desktop app, web dashboard, or CLI.

View details
84
Repo Health
85
Technical
65
Dependency
Built with
TypeScript 93%
Updated 6 days ago
TypeScript
93%
MIT

paperclip

AI Agents · Automation

106,667

The open-source control plane that turns a pile of AI agents into an actual company — with org charts, budgets, heartbeats, and governance.

View details
86
Repo Health
78
Technical
68
Dependency
Built with
TypeScript 93%
Updated 6 days ago
TypeScript
94%
AGPL 3.0

Papra

Bookmarks Archiving

5,587

Self-hosted document archiving with email ingestion, OCR full-text search, and pluggable storage — store once, find anything.

View details
86
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 94%
Updated 1 weeks ago
TypeScript
98%
AGPL 3.0

paseo

AI Agents · AI Code Assistants

21,830

One unified interface to orchestrate Claude Code, Codex, Copilot, OpenCode, and Pi agents in parallel from desktop, mobile, or the terminal.

View details
88
Repo Health
83
Technical
66
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
96%
MIT

Payload CMS

Blogging · CMS · Developer Tools

45,458

The open-source, Next.js-native headless CMS that lives inside your /app folder and gives you a full TypeScript backend instantly.

View details
92
Repo Health
88
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,976

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
92
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 43%
Updated 6 days ago
TypeScript
64%
AGPL 3.0

Puter

Developer Tools · File Storage

43,864

A self-hostable, web-based internet OS with desktop GUI, cloud storage, AI drivers, and a developer SDK — all running in your browser.

View details
88
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 64%
JavaScript 33%
Updated 6 days ago
TypeScript
99%
MIT

Rudel

Developer Tools

306

Open-source analytics for Claude Code and Codex sessions — a CLI uploads session transcripts to a self-hostable dashboard tracking token usage, session duration, activity patterns, and model usage.

View details
75
Repo Health
67
Technical
71
Dependency
Built with
TypeScript 99%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers