Sherif is an opinionated, zero-config linter designed specifically for TypeScript and JavaScript monorepos. It aims to standardize the developer experience (DX) and prevent regressions by enforcing a predefined set of rules across multiple packages within a single repository. Written in Rust for performance, Sherif operates efficiently without requiring `node_modules` to be installed, supporting all major package managers including PNPM, Bun, NPM, and Yarn. The current stable version is 1.11.1, with frequent minor releases indicating active development and maintenance. Key differentiators include its zero-configuration approach, cross-package manager compatibility, high execution speed, and robust autofix capabilities which can be run interactively or non- interactively via a `--select` flag for consistent dependency versioning.
Verified import paths — ran on the pinned version, not inferred.
Sherif is a command-line interface (CLI) tool. This command executes the linter directly via a package manager runner (npx, bunx, pnpm dlx, yarn dlx). Pinning a specific version (e.g., `@1.11.1`) is recommended for consistent behavior in CI environments.
Runs Sherif with automatic fixing for most identified issues. When fixing `multiple-dependency-versions`, this flag will prompt for selections unless `--select` is also used. Note that autofix is disabled by default in CI environments.
Used in conjunction with `--fix`, the `--select highest` or `--select lowest` flag automatically resolves `multiple-dependency-versions` conflicts without interactive prompts, making it suitable for non-interactive environments like CI.
Demonstrates `sherif` configuration in `package.json` for linting and autofixing monorepo issues, along with example `scripts` for execution.
Breaking-change detection hasn't run for this library yet.
CVE tracking and dependency tree are planned for a later release.