Fork me on GitHub

YSlow Command Line

YSlow analyzes web pages and why they're slow based on Yahoo!'s rules for high performance web sites

YSlow for Command Line runs on Node.JS and requires a HAR file as input source in order to analyze page performance. It is currently available as a NPM package for installation.

Installation

$ npm install yslow -g

Help

$ yslow --help
  Usage: yslow [options] [file ...]

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -i, --info <info>        specify the information to display/log (basic|grade|stats|comps|all) [basic]
    -f, --format <format>    specify the output results format (json|xml|plain) [json]
    -r, --ruleset <ruleset>  specify the YSlow performance ruleset to be used (ydefault|yslow1|yblog) [ydefault]
    -b, --beacon <url>       specify an URL to log the results
    -d, --dict               include dictionary of results fields
    -v, --verbose            output beacon response information

  Examples:

    yslow file.har
    yslow -i grade -f xml -b http://server.com/beacon file1.har file2.har
    yslow --info all --format plain /tmp/*.har
    yslow -i basic --rulseset yslow1 -d < file.har
    curl example.com/file.har | yslow -i grade -b http://server.com/beacon -v

  More Info:

     https://yslow.org/user-guide/#version2

As a module

$ node
> require('fs').readFile('example.com.har', function (err, data) {
    var har = JSON.parse(data),
        YSLOW = require('yslow').YSLOW,
        doc = require('jsdom').jsdom(),
        res = YSLOW.harImporter.run(doc, har, 'ydefault'),
        content = YSLOW.util.getResults(res.context, 'basic');

    console.log(content);
});
{ w: 98725, o: 89, u: 'http%3A%2F%2Fexample.com%2F', r: 9, i: 'ydefault', lt: 981 }