Sherif is an opinionated, zero-config linter designed specifically for TypeScript and JavaScript monorepos. It enforces a set of rules to standardize the developer experience and prevent common regressions in multi-package repositories. The current stable version is `1.11.1`, with new minor versions being released frequently, indicating active development. A key differentiator is its performance; it's written in Rust, runs very fast, and doesn't require `node_modules` to be installed to function, making it efficient for CI/CD pipelines. It supports all major package managers including PNPM, Bun, NPM, and Yarn, and is primarily intended to be run as a CLI tool.
npm install sherif-linux-x64-muslVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to install and run Sherif in a monorepo, including an example `package.json` configuration, and how to use the `--fix` and `--select` flags for automated issue resolution.
Upgrade your GitHub Actions runner or `setup-node` step to use Node.js v24 or higher for the Sherif action to function correctly. Alternatively, use the `npx` method with a specific Node.js version.
To fix issues in CI, you must either run Sherif locally with `--fix` and commit the changes, or, for rules like `multiple-dependency-versions`, use the `--select highest` or `--select lowest` flag in CI to enable automated fixes without interactivity.
Always combine `--fix` with `--select highest` or `--select lowest` when running in non-interactive environments or CI to automatically choose a version without user input.
Ensure that all options defined under the `sherif` field in `package.json` adhere to `camelCase` naming conventions.
For general usage, it is recommended to invoke Sherif using your package manager's `dlx` command (e.g., `npx sherif@latest`, `pnpm dlx sherif@latest`), which handles platform-specific binary selection automatically.
Always specify a fixed version number when running Sherif in CI, for example, `npx sherif@1.11.1` or `uses: QuiiBz/sherif@v1.11.1`.
Run Sherif using a package manager's executor: `npx sherif` (npm), `bunx sherif` (Bun), or `pnpm dlx sherif` (PNPM). If installed globally, ensure it's in your PATH.
To enable autofix in CI for rules like `multiple-dependency-versions`, explicitly add `--select highest` or `--select lowest` to your command. For other rules, run `sherif --fix` locally and commit the changes.
Add a `sherif` object to your root `package.json` with configuration options specified in `camelCase`, for example: `"sherif": { "failOnWarnings": false }`.When running in non-interactive contexts, append `--select highest` or `--select lowest` to the `sherif --fix` command to automatically resolve version conflicts.
No dependency data recorded yet.