| name | clack |
| description | Comprehensive guidance for building and debugging JavaScript and TypeScript CLIs with @clack/core and @clack/prompts, backed by bundled upstream source and examples. Use when implementing clack prompt flows, deciding between core primitives and styled prompts, adapting clack examples, or validating clack API usage. |
Clack CLI Skill
Use this skill to implement reliable interactive CLIs with @clack/core and @clack/prompts.
Workflow
- Decide whether to use
@clack/prompts or @clack/core.
- Read only the minimum reference files needed for the task.
- Start from the closest example in
references/examples/.
- Implement cancellation handling after every prompt.
- Add UX polish (
intro, outro, spinner, progress, tasks, log, taskLog, stream) when useful.
- Verify imports against export maps in
references/docs/prompts-exports.ts and references/docs/core-exports.ts.
Pick the Right Layer
Use @clack/prompts by default.
- Choose it for production-ready styling and quick delivery.
- Use it when the request maps to standard prompt types: text, confirm, select, multiselect, grouped prompts, logs, spinners, progress, tasks, or streaming logs.
Use @clack/core when lower-level control is required.
- Choose it for custom rendering, custom prompt behavior, or unstyled primitives.
- Use it when the request needs direct prompt classes (
TextPrompt, , , ) or deep customization.