{"id":17312283,"url":"https://github.com/samdutton/multihouse","last_synced_at":"2025-08-14T04:13:49.103Z","repository":{"id":34764845,"uuid":"162705416","full_name":"samdutton/multihouse","owner":"samdutton","description":"Run Lighthouse audits for multiple URLs","archived":false,"fork":false,"pushed_at":"2025-03-28T22:15:16.000Z","size":907,"stargazers_count":57,"open_issues_count":3,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-09T23:16:32.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samdutton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-21T11:17:38.000Z","updated_at":"2024-12-30T21:10:33.000Z","dependencies_parsed_at":"2024-12-18T21:10:31.949Z","dependency_job_id":"e1c71611-9402-408e-afab-539b585faaf8","html_url":"https://github.com/samdutton/multihouse","commit_stats":{"total_commits":79,"total_committers":6,"mean_commits":"13.166666666666666","dds":0.3417721518987342,"last_synced_commit":"2f460651f2b067cc7ed990c85ad3cb813f7a1405"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samdutton/multihouse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdutton%2Fmultihouse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdutton%2Fmultihouse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdutton%2Fmultihouse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdutton%2Fmultihouse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samdutton","download_url":"https://codeload.github.com/samdutton/multihouse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdutton%2Fmultihouse/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270359851,"owners_count":24570566,"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","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10-15T12:43:04.369Z","updated_at":"2025-08-14T04:13:49.030Z","avatar_url":"https://github.com/samdutton.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multiple Lighthouse runs for multiple URLs\n\nThis app takes URLs and optional metadata from [_input.csv_](src/input.csv) (one row per URL), runs one or more audits synchronously, and outputs median scores to [_output.csv_](src/output.csv).\n\nYou can specify multiple different options using the command line options below.\n\nFor example:\n\n- The number of times Lighthouse is run for each URL. The default is three.\n- Whether to calculate the average or median scores for all the runs. The default is median.\n- Which Lighthouse audits to run. The default is all audits: Performance, Best practice, PWA, Accessibility, SEO.\n- Whether to include results for all individual audits or for [Web Vitals](https://web.dev/vitals).\n\nBy default the app only outputs category scores for each page: Performance, PWA, \nBest practices, Accessibility and SEO. Lighthouse calculates these single scores\nbased on multiple individual audit scores. If you prefer, you can output results \nfor all individual audits by using the `-t` flag, or Web Vitals with the `-w` flag.\n\n---\n\n## Requirements\n\nNode 16.7.0 or above (to support [`performance.getEntriesByName()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName)).\n\n## Installation and usage\n\n1. Clone the code using git: `git clone git@github.com:samdutton/multihouse.git` or [download it as a ZIP file](https://github.com/samdutton/multihouse/archive/master.zip).\n2. From a terminal window, go to to the `multihouse` directory you created and run `npm install` to install the required Node modules.\n3. Add URLs to be audited (and optional metadata) to [_input.csv_](src/input.csv), as described below.\n4. From a terminal `cd` to the `src` directory and run `node index.js`, optionally setting the flags below.\n5. Progress updates and errors will be logged to the console.\n6. When all Lighthouse runs are complete, view the results in [_output.csv_](src/output.csv).\n7. Check for errors in _error-log.txt_.\n\n## Input and output data format\n\nEach line in [_input.csv_](src/input.csv) consists of a site name, a page type and a URL.\n\nFor example:\n```\n  My site,homepage,https://example.com\n```\n\nSee [_sample-input.csv_](src/sample-input.csv) for an example input file.\n\nAudit results are written to [_output.csv_](src/output.csv) with one line per URL.\n\nFor example:\n```\n  My site,homepage,https://example.com,0.50,0.38,0.78,0.87,1\n```\nSee [_sample-output.csv_](src/sample-output.csv) for an example output file.\n\n## Error handling\n\n- Lighthouse runtime errors are logged in _error-log.txt_.\n- Any audit that returns a zero score is disregarded, and a warning for the URL and score is logged in _error-log.txt_.\n- Lighthouse results with errors are not included in output data.\n\n\n## Command line options\n\n```\n-a, --append        Append output to existing data in output file\n-c, --categories    Audits to run: one or more comma-separated values,\n                    default is:\n                    performance,pwa,best-practices,accessibility,seo\n-f, --flags         One or more comma-separated Chrome flags without dashes,\n                    default is --headless\n-h, --help          Show help\n-i, --input         Input file, default is input.csv\n-m, --metadata      Optional column headings to be used as the first row of\n                    _output.csv_. See [_sample-output.csv_](src/sample-output.csv) \n                    for defaults.\n-o, --output        Output file, default is output.csv\n-r, --runs          Number of times Lighthouse is run for each page, \n                    default is 3\n-s, --score-method  Method of score averaging over multiple runs, \n                    default is median\n-t, --all-audits    Include all individual audit scores in output\n-w, --web-vitals    Include Web Vitals audits in output\n```\n\n##  More\n\n- It's straightforward to log the complete Lighthouse report for each run. \n  By default only category scores are recorded, which are single, aggregate \n  scores calculated from individual audit scores. Look for the code \n  in [`index.js`](src/index.js) marked `***`.\n- The data from [`output.csv`](src/output.csv) can easily be used to automatically \n  update a spreadsheet and produce charts using an application such as Google Sheets.\n- See [`TODO.md`](TODO.md) for work in progress.\n\n\n---\n\nPlease note that this is not an official Google product.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdutton%2Fmultihouse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamdutton%2Fmultihouse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdutton%2Fmultihouse/lists"}