Qlty CLI is a multi-language code linter, auto-formatter, and security scanner.
Engineering teams use Qlty CLI for static analysis and auto-formatting of all of their code using a single tool with fast, consistent results.
As a Git-aware tool, Qlty CLI makes adopting linting into the development workflow easy by limiting results to only new issues.
Qlty CLI is implemented in Rust, supported by Qlty Software, free to use, and is published under a Fair Source license.
- π Linting (for every programming language)
- ποΈ Auto-formatting
- π¨ Security scanning (IaC, SAST, SCA, and more)
- π Complexity metrics and duplication
- π© Maintainability smells
Qlty CLI is available for MacOS, Linux, and Windows.
curl https://qlty.sh | bash
powershell -c "iwr https://qlty.sh | iex"
Setup Qlty within a Git repository:
cd my_repo/
qlty init
View a sample of lint issues:
qlty check --sample=5
Auto-format the codebase:
qlty fmt --all
Scan for code smells like duplication:
qlty smells --all
Review a summary of code quality metrics:
qlty metrics --all --max-depth=2 --sort complexity --limit 10
Qlty CLI is powered by a set of 40+ plugins for static analysis tools like linters, auto-formatters, and security scanners. Plugin definitions can be found in the plugins/linters
directory.
Creating a plugin can be as easy as writing a small plugin definition TOML file. If the tool has a custom output format (instead of a standard like SARIF), then writing a simple output parser in Rust is also needed.
We also happily accept requests for new plugins via GitHub issues.
Qlty CLI is configured using a .qlty/qlty.toml
file in your Git repository. You can generate a default configuration with qlty init
and then customize it.
Read our documentation about configuration for more information.
Developing on Qlty CLI requires a working Rust toolchain.
cargo build
cargo test
- Read the Guide to Contributing in CONTRIBUTING.md
- Fork the repository and
- Submit a pull request.
Contributions require agreeing to our Contributor License Agreement (CLA).
- Read the documentation
- Join our Discord chat
- Community support via GitHub Discussions
- Feature requests via GitHub Discussions
- Bug reports via GitHub Issues
- Plugin request via GitHub Issues
Qlty CLI is licensed under a version of the Functional Source License (FSL). Qlty CLI is free to use, modify, and distribute in accordance with the FSL.
This codebase transitions into Open Source via a Delayed Open Source Publication (DOSP). More details are available in LICENSE.md.
Licenses for code incorporated into Qlty CLI can be found in the docs/licenses folder.
We would like to thank all of the developers of code quality tooling like linters and meta-linters as well as everyone who has contributed to the field of open source static analysis. Qlty CLI stands on the shoulders of decades of this excellent work.
Development of Qlty CLI is sponsored by Qlty Software.