{"id":21525857,"url":"https://github.com/bkwld/lightkeeper","last_synced_at":"2025-04-09T23:23:21.465Z","repository":{"id":52185701,"uuid":"298651113","full_name":"BKWLD/lightkeeper","owner":"BKWLD","description":"Averages multiple successive Lighthouse tests to arrive at a more accurate PageSpeed score","archived":false,"fork":false,"pushed_at":"2022-10-26T16:02:40.000Z","size":193,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T11:02:00.539Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BKWLD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-25T18:30:48.000Z","updated_at":"2022-10-26T16:01:53.000Z","dependencies_parsed_at":"2023-01-20T12:46:17.010Z","dependency_job_id":null,"html_url":"https://github.com/BKWLD/lightkeeper","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BKWLD%2Flightkeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BKWLD%2Flightkeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BKWLD%2Flightkeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BKWLD%2Flightkeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BKWLD","download_url":"https://codeload.github.com/BKWLD/lightkeeper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248126856,"owners_count":21052065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T01:38:42.717Z","updated_at":"2025-04-09T23:23:21.435Z","avatar_url":"https://github.com/BKWLD.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lightkeeper\n\nAverages multiple successive Lighthouse tests to arrive at a more accurate PageSpeed score.\n\n![](https://p-9WF55W9.t1.n0.cdn.getcloudapp.com/items/JrugjBNG/Screen%20Recording%202020-09-25%20at%2003.45.03%20PM.gif?v=3a92e061a0b189833f415cfa7b3ad8be)\n\n## Usage\n\n```\n$ npm install --global @bkwld/lightkeeper\n$ lightkeeper https://yourdomain.com\n```\n\nThe results will be something like this:\n\n```\nMobile Results\n┌─────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐\n│     │ Score │ FCP   │ SI    │ LCP   │ TTI   │ TBT   │ CLS   │\n├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n│ #1  │ 57    │ 3.8s  │ 5s    │ 6.2s  │ 5.6s  │ 328ms │ 0     │\n├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n│ #2  │ 66    │ 2.5s  │ 3.5s  │ 5.5s  │ 5.2s  │ 406ms │ 0.005 │\n├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n│ #3  │ 70    │ 2.5s  │ 3.5s  │ 5.4s  │ 5s    │ 307ms │ 0     │\n├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n│ AVG │ 64.3  │ 2.9s  │ 4s    │ 5.7s  │ 5.3s  │ 347ms │ 0.002 │\n├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n│ SD  │ 5.4   │ 646ms │ 719ms │ 354ms │ 263ms │ 42ms  │ 0.002 │\n└─────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘\n```\n\nThe summary rows (which can be exclusive returned with the `-s` option) contain the following rows:\n\n- `AVG` - The [statistical mean](https://en.wikipedia.org/wiki/Mean)\n- `SD` - The [standard deviation](https://en.wikipedia.org/wiki/Standard_deviation)\n\n#### Options\n\nFrom `lightkeeper --help`:\n\n```\nARGUMENTS\n\n  \u003curl\u003e                   The URL to test\n\nOPTIONS\n\n  -b, --block \u003curls\u003e    Comma seperated URLs to block, wildcards allowed\n  -d, --desktop         Test only desktop\n  -m, --mobile          Test only mobile\n  -s, --summary         Only show summary rows\n  -t, --times \u003ccount\u003e   The number of tests to run\n                        default: 10\n```\n\nFor example:\n\n- `lightkeeper https://www.bukwild.com` - Runs 10 desktop and 10 mobile tests\n- `lightkeeper https://www.bukwild.com -m -t=30 -b=googletagmanager` - Runs 30 mobile tests while blocking Google Tag Manager\n- `lightkeeper https://www.bukwild.com -ms -t=100 \u0026\u0026 say \"All done\"` - Runs 100 mobile tests and only show the summary at the end.  And says \"All done\" aloud on a Mac.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkwld%2Flightkeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkwld%2Flightkeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkwld%2Flightkeeper/lists"}