Getting started
Install quality and run the first repository check.
Install a native release
On macOS or Linux:
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/santi020k/quality/main/install.sh \
| sh -s -- santi020k/quality v1.3.0
Install from a local checkout when developing the CLI itself:
cargo install --path crates/quality-cli
The release includes checksum-protected archives for x86-64 and ARM64 Linux, Apple Silicon and Intel macOS, and x86-64 Windows.
Initialize a repository
Run these commands from the repository you want to check:
quality init
quality doctor
quality check
To bootstrap analyzer configuration as well as quality.yml, apply the
balanced preset:
quality preset apply recommended --dry-run
quality preset apply recommended --install
quality preset diff
quality doctor
quality check
Use minimal for essential checks or strict for tighter limits and
warning-free policies. Presets generate ordinary ecosystem configuration
files; checks remain deterministic and use repository-local tools.
The generated .quality-preset.json lets future releases safely preview and
apply catalog upgrades with quality preset update.
Preview the generated policy without writing a file with quality init --dry-run.
quality init creates a minimal quality.yml. ESLint, Prettier, SwiftLint,
and SwiftFormat require evidence that the repository intends to use them, such
as configuration, a dependency, or a package script; language files alone do
not enable them.
If the root package already exposes verify:quality, verify, validate,
check, pre-push, or prepush, initialization preserves that canonical gate as a repository task.
Detected analyzers remain available for formatting and fixes without repeating
their checks alongside the canonical script.
When there is no composite gate, a root typecheck or type-check script is
imported as a change-aware task so existing workspace and Turborepo behavior is
preserved.
quality doctor explains which tools are enabled, where each executable resolves, and which required dependencies are missing.
Check only your changes
For a quick local loop:
quality check --changed
To compare a branch with its base:
quality check --changed origin/main
File-capable tools receive relevant paths. Project analyzers such as Android Lint continue to run at project scope when Android files change.
Next steps
- Review configuration options.
- Add GitHub Actions annotations and SARIF.
- Use a baseline for an existing codebase.