Pastel is a framework for building rich command-line applications using React (via Ink), offering a Next.js-like developer experience for CLIs. Instead of wiring up argument parsers, help output, and subcommands manually, you structure your CLI as a file-based command tree and focus on writing components that render the interface. Pastel parses and validates command options using Zod schemas, giving you typed, declarative option definitions that also power automatic help messages. It wraps up common CLI concerns such as argument parsing, routing to the appropriate command component, validation, and error handling, so you can concentrate on the command’s behavior and UI. Because it builds on Ink, you can create highly interactive terminal UIs using React components, hooks, and state management patterns you already know from the web. Pastel is zero-config for typical use cases, and there is even a create-pastel-app helper for scaffolding new projects quickly.
Features
- Next.js-style, file-based routing for CLI commands built with React and Ink
- Zod-powered option definition, parsing, and validation for typed, safe CLIs
- Zero-config defaults that generate help output and command wiring automatically
- Deep integration with Ink so you can build interactive, component-based terminal UIs
- Official scaffolding tool (create-pastel-app) to bootstrap new Pastel CLIs
- MIT-licensed framework actively used for modern, developer-friendly CLI tools