Vorpal
Conquer the command-line.
(O)
<M
o <M
/| ...... /:M\------------------------------------------------,,,,,,
(O)[ vorpal ]::@+}==========================================------------>
\| ^^^^^^ \:W/------------------------------------------------''''''
o <W
<W
(O)
Vorpal is Node's first framework for building interactive CLI applications. With a simple and powerful API, Vorpal opens the door to a new breed of rich, immersive CLI environments like wat and vantage.
Contents
Introduction
Inspired by and based on commander.js, Vorpal is a framework for building immersive CLI applications built on an interactive prompt provided by inquirer.js. Vorpal launches Node into an isolated CLI environment and provides a suite of API commands and functionality including:
- Simple, powerful command creation
- Supports optional, required and variadic arguments and options
- Piped commands
- Persistent command history
- Built-in help
- Built-in tabbed auto-completion
- Command-specific auto-completion
- Customizable prompts
- Extensive terminal control
- Custom event listeners
- And more
Vorpal supports community extensions, which empower it to do awesome things such as piping commands to less, importing commands live or even supporting a built-in REPL.
Made with
by dthree.
Getting Started
Quick Start
Install vorpal into your project:
$ npm install vorpal --saveCreate a .js file and add the following:
var vorpal = require('vorpal')();
vorpal
.command('foo', 'Outputs "bar".')
.action(function(args, callback) {
this.log('bar');
callback();
});
vorpal
.delimiter('myapp$')
.show();This creates an instance of Vorpal, adds a command which logs "bar", sets the prompt delimiter to say "myapp$", and shows the prompt.
Run your project file. Your Node app has become a CLI:
$ node server.js
myapp~$Try out your "foo" command.
myapp~$ foo
bar
myapp~$Now type "help" to see Vorpal's built in commands in addition to "foo":
myapp~$ help
Commands
help [command] Provides help for a given command.
exit [options] Exits instance of Vorpal.
foo Outputs "bar".
myapp~$That's the basic idea. Once you get the hang of it, read on to learn some of the fancier things Vorpal can do.
Community
API
Command
vorpal.commandcommand.descriptioncommand.aliascommand.parsecommand.optioncommand.hiddencommand.removecommand.helpcommand.autocompletecommand.actioncommand.cancel
Mode
Catch
CommandInstance
UI
ui.delimiterui.inputui.imprintui.submitui.cancelui.imprintui.redrawui.redraw.clearui.redraw.done
Vorpal
Events
Extensions
You can build your own Vorpal commands and extensions!
FAQ
Why Vorpal?
One, two! One, two! and through and through
The vorpal blade went snicker-snack!
He left it dead, and with its head
He went galumphing back.
Lewis Carroll, Jabberwocky
Life Goals:
Build a popular framework based on the Jabberwocky poem.
License
MIT