code: function() {
      var con = {};
      con.log = console.log;
      con.warn = console.warn;
      con.info = console.info;
      con.error = console.error;
  
      var fu = function(type, args) {
        if (!self.uiPrompt.rl || !process.stdout.columns) {
          return con[type].apply(con, args);
        }
  
        var t = Math.ceil(
          (self.uiPrompt.rl.line.length + 3) / process.stdout.columns
        );
        var text = util.format.apply(console, args);
  
        self.uiPrompt.rl.output.unmute();
        self.uiPrompt.rl.output.write('\n\x1B[' + t + 'A\x1B[0J');
        self.uiPrompt.rl.output.write(text + '\n');
        self.uiPrompt.rl.output.write(new Array(t).join('\n\x1B[E'));
        self.uiPrompt.rl._refreshLine();
        self.uiPrompt.rl.output.mute();
      };
  
      console.log = function() {
        fu('log', arguments);
      };
      console.warn = function() {
        fu('warn', arguments);
      };
      console.info = function() {
        fu('info', arguments);
      };
      console.error = function() {
        fu('error', arguments);
      };
    }
docs: /* Try to keep the prompt always at the bottom.
  This feature is experimental and mostly based on:
  http://stackoverflow.com/questions/12672193/fixed-position-command-prompt-in-node-js