@carnesen/cli
v0.9.0
Published
A command-line interface framework for Node.js and web browser
Downloads
134
Maintainers
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, type-safe 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
description
s and custom<placeholder>
s to your command objects too, and we'll automatically fold the text to fit the user's terminal.Built-in color decoration: Bring your CLI to life with our
color
helpers injected automatically into your commandaction
function.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-only/beta commands.
Automatic autocomplete (Coming some day!): 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 in a future release.
REPL (Coming some day!): The live examples are implemented as custom REPL. In a future release we'll lift that code into the framework to make it just as easy to build a REPL as it is to build a CLI.
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:
Previous versions
Previous versions of the software are available on GitHub and the npm registry. Previous versions of the online documentation are available on the Internet Archive: