Clack
Modern, beautifully designed interactive CLI prompt library. Clack provides text, confirm, select, multiselect, password, and spinner primitives with a consistent visual style. The modern alternative to Inquirer.js — simpler API, better default styling, and smaller bundle. Used in create-next-app, create-svelte, and many modern scaffolding CLIs. Part of the @clack/prompts package.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
Password prompt masks input. No network access. Local interactive library with minimal security concerns.
⚡ Reliability
Best When
You're building a scaffolding CLI or interactive setup wizard and want beautiful, modern prompts with minimal configuration — Clack is the current best-in-class choice.
Avoid When
You need complex validation rules, conditional branching based on answers, or compatibility with older Node.js (Clack requires Node 16+).
Use Cases
- • Build interactive scaffolding CLIs with styled prompts for project setup — same pattern as create-next-app, create-t3-app
- • Add interactive configuration steps to CLI tools with select, multiselect, and text inputs
- • Show progress spinners during async operations in CLI tools with clack's spinner API
- • Build wizard-style CLI flows where users answer sequential questions to configure agent behavior
- • Replace Inquirer.js with modern, well-styled interactive prompts in TypeScript CLI projects
Not For
- • Non-interactive CLIs (flags/arguments only) — use Commander.js or yargs for argument parsing
- • Complex form validation with rich error states — Inquirer.js has more validation options
- • Browser-based interactive UIs — Clack is terminal/TTY only
Interface
Authentication
No authentication — interactive CLI library.
Pricing
MIT-licensed open source library.
Agent Metadata
Known Gotchas
- ⚠ Clack is 0.x semver — API may change between minor versions; pin exact version for stable scaffolding tools
- ⚠ All prompts may return a cancel symbol — must call isCancel(result) after each prompt and handle cancellation explicitly or the script continues with undefined values
- ⚠ Prompts require an interactive TTY — piping input or running in non-interactive CI environments causes prompts to fail; detect TTY and skip interactive prompts in CI
- ⚠ Spinner must be explicitly stopped — clack.spinner().stop() or stop() callback must be called; unclosed spinners leave terminal in broken state
- ⚠ Clack's intro/outro/log functions assume raw terminal — output may look broken in CI environments with no color support; set NO_COLOR env var for CI
- ⚠ Clack doesn't support conditional skip of prompts — implement branching logic manually by checking previous answers before calling next prompt
Alternatives
Full Evaluation Report
Comprehensive deep-dive: security analysis, reliability audit, agent experience review, cost modeling, competitive positioning, and improvement roadmap for Clack.
AI-powered analysis · PDF + markdown · Delivered within 30 minutes
Package Brief
Quick verdict, integration guide, cost projections, gotchas with workarounds, and alternatives comparison.
Delivered within 10 minutes
Score Monitoring
Get alerted when this package's AF, security, or reliability scores change significantly. Stay ahead of regressions.
Continuous monitoring
Scores are editorial opinions as of 2026-03-07.