Skip to main content

Installation

Install the CLI as a dev dependency:

npm install @ladamczyk/qoq-cli

Then run the Config Wizard, which interviews you about your project, installs the matching @ladamczyk/qoq-* presets, and generates the config files for you:

npx -y @ladamczyk/qoq-cli --init

The wizard creates three files in your project root:

FilePurpose
.prettierrcEnables IDE formatting from a pre-configured template.
eslint.config.jsConnects the CLI-generated ESLint config to your IDE.
qoq.config.jsConfiguration consumed by the CLI itself.

If no config file is found, the CLI will offer to create one whenever you run --check or --fix.

Warmup hook

QoQ regenerates each tool's config on execution, so a freshly checked-out project (or one that hasn't run yet) may reference an ESLint config file that doesn't exist yet. Add a warmup step to your package.json to materialize it after install:

{
"scripts": {
"postinstall": "qoq --warmup"
}
}

This is intentionally not bundled into the package: postinstall scripts are a common supply-chain risk, and pnpm ignores them entirely.

Manual configuration

If you prefer to wire things up yourself, create the three files by hand:

  1. .prettierrc — your own config, or a QoQ template, e.g. "@ladamczyk/qoq-prettier".

  2. eslint.config.js — re-export the CLI's generated config:

    // CommonJS
    const config = require('@ladamczyk/qoq-cli/bin/eslint.config.cjs');
    module.exports = config;
    // ESM
    import config from '@ladamczyk/qoq-cli/bin/eslint.config.mjs';
    export default config;
  3. qoq.config.js — the CLI configuration object described in Configuration (CommonJS or ESM).

Run qoq -h (or qoq --help) at any time for the full list of CLI options.