code: function _loop(options, onCommand, _history) {
      _history = _history || [];
  
      var readOptions = _.extend({}, options, {
          'ps1': options.ps1(),
          'ps2': options.ps2(),
          'history': _history
      });
  
      read(readOptions, function(err, args, str) {
          // If the user entered an actual command, put the string in the command history
          if (str) {
              _history.push(str.split('\n').shift());
          }
  
          // Provide the args to the caller
          onCommand(err, args, str, function() {
              // Recursively ask for the next command
              return _loop(options, onCommand, _history);
          });
      });
  }
docs: /*!
  Do the heavy lifting of looping, asking for commands and managing the command history.