Easily start and stop an X Virtual Frame Buffer from your node apps.


34141.2.44 years ago5 years agoMinified + gzip package size for @cypress/xvfb in KB



easily start and stop an X Virtual Frame Buffer from your node apps.

CircleCI Build Status semantic-release renovate-app badge


var Xvfb = require('xvfb');
var options = {}; // optional
var xvfb = new Xvfb(options);
xvfb.start(function(err, xvfbProcess) {
  // code that uses the virtual frame buffer here
  xvfb.stop(function(err) {
    // the Xvfb is stopped

The Xvfb constructor takes four options:

  • displayNum - the X display to use, defaults to the lowest unused display number >= 99 if reuse is false or 99 if reuse is true.
  • reuse - whether to reuse an existing Xvfb instance if it already exists on the X display referenced by displayNum.
  • timeout - number of milliseconds to wait when starting Xvfb before assuming it failed to start, defaults to 2000.
  • silent - don't pipe Xvfb stderr to the process's stderr.
  • xvfb_args - Extra arguments to pass to Xvfb.
  • onStderrData - Function to receive stderr output


Run with DEBUG=xvfb environment variable to see debug messages. If you want to see log messages from the Xvfb process itself, use DEBUG=xvfb,xvfb-process.

Thanks to

Forked from node-xvfb

both of which served as inspiration for this package.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.