A Node.js CLI and library for running Google PageSpeed Insights performance tests with formatted reporting.
psi is a Node.js library and command-line tool that wraps Google PageSpeed Insights v5, allowing developers to programmatically run performance audits on websites. It provides formatted reports and integrates seamlessly into build processes to monitor and enforce performance budgets.
Web developers, performance engineers, and DevOps teams who need to automate performance testing and integrate PageSpeed Insights into their CI/CD pipelines.
It simplifies access to PageSpeed Insights with a clean API and CLI, offering formatted output and build tool integrations that the raw Google API lacks, making performance testing more developer-friendly.
PageSpeed Insights Reporting for Node
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Outputs clean, human-readable performance scores and opportunities directly to the terminal, as demonstrated in the screenshot and psi.output() method, making results easy to interpret.
Designed for integration with Gulp and Grunt, with provided samples and plugins like psi-gulp-sample, allowing performance checks to be added to CI/CD pipelines effortlessly.
Offers both a command-line interface for quick tests and a Node.js API for programmatic use, as shown in the usage examples, providing flexibility for different workflows.
Supports setting threshold scores via the threshold option to enforce performance budgets, enabling teams to fail builds if scores are below specified levels.
The README admits a TODO for updating usage information for v5+, which could cause confusion or errors for users relying on the examples provided.
Does not expose advanced data like filmstrips on the CLI; users must use the API to access these, as noted in the filmstrip section, adding complexity for simple use cases.
Relies entirely on Google's PageSpeed Insights API, so any changes or downtime on Google's end can break functionality, and it requires an API key for production use, adding overhead.