Skip to content
carnesenPublic

About

A command-line interface framework for Node.js and web browser (@carnesen/cli)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

@carnesen/cli

A command-line interface (CLI) framework for Node.js and web browser

build status badge npm version badge github stars badge

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 14+ 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 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 color decoration: Bring your CLI to life with our color helpers injected automatically into your command action 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 a 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 over 99% line 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. The website is no longer online, but its documentation is preserved on the Internet Archive:

License

MIT © Chris Arnesen

About

A command-line interface framework for Node.js and web browser (@carnesen/cli)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages