@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
95%
MIT

Skrun

AI Agents

210

An open, self-hostable, multi-model agent runtime that deploys any agent skill as an API via POST /run — an open-source alternative to Claude Managed Agents and Google's Gemini Enterprise Agent Platform.

View details
54
Repo Health
66
Technical
77
Dependency
Built with
TypeScript 95%
Updated 1 months ago
Ruby
62%
BSD 3

Spree Commerce

CRM · Ecommerce · Marketing

15,774

Open-source headless eCommerce platform with a REST API, TypeScript SDK, and Next.js storefront for B2B, cross-border, and marketplace commerce — no vendor lock-in, no platform fees.

View details
91
Repo Health
84
Technical
75
Dependency
Built with
Ruby 62%
TypeScript 37%
Updated 1 weeks ago
TypeScript
92%
Other

Suna

AI Agents

20,306

Turn your company into a git repo — one config, one command center, a workforce of AI agents that runs the real work around the clock.

View details
90
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
85%
Apache 2.0

superset

AI Code Assistants · AI Development

15,503

Orchestrate an army of AI coding agents—Claude Code, Codex, Gemini CLI, and more—running simultaneously in isolated git worktrees from a single Electron desktop app.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 85%
Updated 6 days ago
TypeScript
99%
Apache 2.0

Trigger.dev

AI Development · Automation · Developer Tools

16,606

Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.

View details
90
Repo Health
9
Technical
63
Dependency
Built with
TypeScript 99%
Updated 6 days ago
TypeScript
65%
Other

Typebot

AI Assistants · AI Development · Developer Tools

10,576

Build sophisticated chatbots visually, embed them anywhere without iframes, and own your data — fully self-hostable with a modular block system and 30+ integrations.

View details
94
Repo Health
82
Technical
64
Dependency
Built with
TypeScript 65%
MDX 34%
Updated 1 weeks ago
TypeScript
95%
MIT

understudy

AI Agents · Automation

463

Open-source local AI agent that operates your entire computer — GUI, browser, shell, and messaging — from a single instruction, using your own models.

View details
32
Repo Health
79
Technical
74
Dependency
Built with
TypeScript 95%
Updated 4 months ago
Go
59%
AGPL 3.0

Unkey

Developer Tools

5,475

An open-source developer platform for API infrastructure — issue and verify API keys, enforce global rate limits, route traffic through a gateway, and get per-key analytics and audit logs.

View details
91
Repo Health
70
Technical
68
Dependency
Built with
Go 59%
TypeScript 40%
Updated 6 days ago
JavaScript
82%
MIT

Unlighthouse

Developer Tools

4,904

An open-source CLI that scans your entire website with Google Lighthouse, using smart sampling and a modern dashboard UI to audit every page instead of one URL at a time.

View details
84
Repo Health
70
Technical
79
Dependency
Built with
JavaScript 82%
TypeScript 13%
Updated 1 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