@carnesen/cli

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

Usage no npm install needed!

<script type="module">
  import carnesenCli from 'https://cdn.skypack.dev/@carnesen/cli';
</script>

README

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 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:

License

MIT © Chris Arnesen