README
A command-line interface (CLI) framework for Node.js and web browser
The @carnesen/cli package includes runtime JavaScript files (ES2019 + CommonJS) and TypeScript type declarations (3.7+). It has no npm dependencies and is known to work with Node.js 12+ and all modern web browsers.
Features
Easy to use: We ❤️ CLIs and want to use them everywhere for everything. This library makes it easy to create beautiful well-behaved CLIs for Node.js and for web browsers.
Isomorphic: As far as we know, this is the only isomorphic JavaScript CLI framework. Run your browser CLI in a terminal emulator like our online examples or in the browser's built-in terminal, the JavaScript console!
Intelligent types: This is first and foremost a TypeScript library. All components are intelligently typed, and our built-in parsers ensure that the types are respected at runtime.
Automatic documentation: Build your CLI with our factories, and we'll automatically generate pretty-good command-line usage out of the box. You can add
descriptions and custom<placeholder>s to your command objects too, and we'll automatically fold the text to fit the user's terminal.Built-in ANSI decoration: Bring your CLI to life with our built-in ANSI text decoration methods.
Hidden commands Add "hidden=true" to any argument/command/group, and we'll hide it in the automatic usage docs. We use this feature for easter eggs and internal/beta commands.
Automatic autocomplete (Coming soon!): Autocomplete supercharges a CLI. We've implemented automatic autocomplete in the live examples and plan to add this as a feature to the core library for the next release.
Stability
This library has 100% test coverage and heavy usage by its authors but should be considered 0.x beta software.
More information
Questions, bugs, feature requests? Please file an issue or submit a pull request on this project's repository on GitHub, and check out our: