# @tallnerds/howfast

> CLI to generate multi-run lighthouse reports

Latest version **2.0.1** (published 2022-11-07) · ISC license · 0 weekly downloads

## Install

```sh
npm install @tallnerds/howfast
pnpm add @tallnerds/howfast
yarn add @tallnerds/howfast
bun add @tallnerds/howfast
```

Provides the command `howfast`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.1 |
| Published | 2022-11-07 |
| First published | 2020-11-02 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 8 |
| Unpacked size | 602.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 16 |
| Maintainers | chaseconey, cid53 |
| Keywords | pagespeed, lighthouse, cli |

## Links

- npm: https://www.npmjs.com/package/@tallnerds/howfast
- Repository: https://github.com/tallnerds/howfast
- Homepage: https://github.com/tallnerds/howfast#readme
- Issues: https://github.com/tallnerds/howfast/issues
- npm.io page: https://npm.io/package/@tallnerds/howfast

## Dependencies (8)

- [open](https://npm.io/package/open.md) ^7.3.0
- [chalk](https://npm.io/package/chalk.md) ^4.1.0
- [yargs](https://npm.io/package/yargs.md) ^16.1.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.20
- [prettier](https://npm.io/package/prettier.md) ^2.1.2
- [lighthouse](https://npm.io/package/lighthouse.md) ^6.4.1
- [chrome-launcher](https://npm.io/package/chrome-launcher.md) ^0.13.4
- [lodash.template](https://npm.io/package/lodash.template.md) ^4.5.0

## Alternatives

- [@salesforce/cli](https://npm.io/package/@salesforce/cli.md) — 389.7K weekly downloads
- [@mintlify/cli](https://npm.io/package/@mintlify/cli.md) — 208.9K weekly downloads
- [@grafana/e2e-selectors](https://npm.io/package/@grafana/e2e-selectors.md) — 128.7K weekly downloads
- [mintlify](https://npm.io/package/mintlify.md) — 112.0K weekly downloads
- [@intlayer/cli](https://npm.io/package/@intlayer/cli.md) — 22.8K weekly downloads

## Recent versions

- 2.0.1 (latest) — 2022-11-07
- 2.0.0 — 2020-11-18
- 1.6.0 — 2020-11-05
- 1.5.2 — 2020-11-04
- 1.5.1 — 2020-11-04
- 1.5.0 — 2020-11-04
- 1.4.0 — 2020-11-03
- 1.3.3 — 2020-11-03
- 1.3.2 — 2020-11-03
- 1.3.1 — 2020-11-02
- 1.1.0 — 2020-11-02
- 1.0.0 — 2020-11-02

## README

# howfast

[![CircleCI](https://circleci.com/gh/tallnerds/howfast.svg?style=svg)](https://circleci.com/gh/tallnerds/howfast)

A simple CLI for generating more accurate data from [Lighthouse](https://github.com/GoogleChrome/lighthouse/) reports.

![](./docs/assets/console_usage.gif)

## Installation

The easiest way to install is to globally install via npm.

```
npm install -g @tallnerds/howfast
```

## Usage

To see up to date usage, you can always run

```
howfast -h
```

Here is a typical example of hitting a site 5 times

```
howfast -s https://google.com -t 5
```

Here is an example of hitting a site that requires an Authorization header

```
howfast -s https://google.com -a 'Basic aG93ZmFzdDpyb2Nrcw=='
```

By default, this will also generate a json file with all of the metrics you would need to do more detailed analysis. Upon completing the runs, it will open this file automatically for you. By default, this file is stored in `/tmp`, but can be modified with the `-f` flag.

```
howfast -s https://google.com -t 5 -f ~/Downloads
```

Lastly, if you are creating a PR and want to quickly generate some markup, you can change the report type to html using the `--html` flag. This will give you a generated html file (rather than json) with the results displayed in different ways (json, markdown, etc).

```
howfast -s https://google.com -t 5 -f ~/Downloads --html
```

## Reports

There are 2 types of reports that can be generated from this tool: `json` and `html`.

### Json

The default report output is json. Here is the generate structure of the json file:

```json
{
  "metricName": {
    "label": "<[string] label>",
    "scorePath": "<[string] path to score in original lighthouse data>",
    "metricPath": "<[string] [optional] path to metric in original lighthouse data>",
    "average": {
      "score": "[number]",
      "numericValue": "[number]"
    },
    "median": {
      "score": "[number]",
      "numericValue": "[number]"
    },
    "actual": {
      "scores": "[array<number>]",
      "numericValues": "[array<number>]"
    }
  }
}
```

Here is a nice visual representation

![](./docs/assets/json_output.png)

## Contributing

### Re-render Usage Gif

We use a really neat-o tool for generating the console gif above. To re-render, simply re-record

```
terminalizer record terminal-demo
```

tweak the settings at `./terminal-demo.yml`

and record

```
terminalizer render terminal-demo
```

---
_Source: https://npm.io/package/@tallnerds/howfast · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
