As previously noted, Checkup is a CLI that is installed globally. It uses a configuration file to specify additional plugins to run - in most cases you'll want to add additional plugins to gain better insight into your project.

1. Generate a Configuration File

First use the config generator to create a config file in your project's directory:

$ checkup generate config

Which will generate a default configuration file. The following shows the TypeScript type of the configuration file:

type CheckupConfig = {
$schema: string;
excludePaths: string[];
plugins: string[];
tasks: Record<
| 'on'
| 'off'
| [
'on' | 'off',
actions?: Record<string, 'on' | 'off' | ['on' | 'off', { threshold: number }]>;
[key: string]: any;

2. [Optional] Configure Plugins

The generated configuration file is where you will configure additional plugins for Checkup to use.

Plugins are added using the plugins array. You can configuring it either by using the fully qualified name (the name with checkup-plugin- preceding it), or the short name (the name without a preceding checkup-plugin-).

For example, the following configuration adds the ember plugin:

"plugins": ["ember"],
"tasks", {}

3. [Optional] Configure Tasks

Tasks can also be configured. Checkup uses a similar, though simplified, configuration to eslint.

To turn the foo task off in the example plugin (note: tasks are implicitly on by default):

"plugins": ["example"],
"tasks", {
"example/foo": "off"

Tasks can also accept arbitrary configuration via a tuple. The following example shows how to pass a path argument containing the ./foo value to the example/foo task:

"plugins": ["example"],
"tasks", {
"example/foo": ["on", { "path": "./foo" }]

4. Run checkup on your Project

The checkup CLI is now available to run against your project directory:

$ checkup
Checking up on your project...