
Lighthouse CI is split into two core packages @lhci/cli and @lhci/server. The CLI is the primary way users interact with Lighthouse CI. The server module is used to setup the Lighthouse CI server.
The CLI is broken down into commands that are run in a variety of environments. See the below lists for where we expect different commands to be run.
Locally, on a user’s device
wizard (create new projects on the LHCI server)collect (run Lighthouse many times)open (open the median run)Remotely, on CI servers
autorunhealthcheckcollectassertuploadRemotely, on a LHCI server
serverwizard (reset tokens)The typical CI flow for command execution is healthcheck -> collect -> assert -> upload. Each command reads/writes data from the .lighthouseci/ folder on the local filesystem. This is where collect will store reports, assert will read reports and write assertion results, and upload will read both reports and assertion results to upload to another location such as the temporary public storage service, GitHub (for status checks), or a LHCI server.