The non-opinionated Rust-based commit message linter
Transform your commit practices with flexible linting for consistently high-quality Git commit messages that adhere to your project's standards.
> sumi (墨, /sɯmi/): ink, especially the type used in [traditional ink wash painting](https://en.wikipedia.org/wiki/Ink_wash_painting).
## 🎥 Demo
See how git-**sumi** can help you write better commit messages:
https://github.com/welpo/git-sumi/assets/6399341/cf1b4f00-3f79-454f-a533-5b36812dd464
## ✨ Main features
- **Customizable rules**: Tailor git-**sumi** to each project's specific requirements. Easily configure [rules](https://sumi.rs/docs/rules/) to enforce [Conventional Commits](https://www.conventionalcommits.org/), length limits, gitmoji usage, and more through a [simple TOML file](https://sumi.rs/docs/configuration/).
- **Clear error reporting**: git-**sumi**'s detailed error reporting makes fixing commit messages straightforward and educational.
- **Seamless integration**: git-**sumi** is a [single binary](https://github.com/welpo/git-sumi/releases), making it easy to [integrate into your existing workflow](https://sumi.rs/docs/integration) with minimal setup.
## 📝 Documentation
Learn how to use git-**sumi** from the [documentation](https://sumi.rs/docs).
- [Quick setup](https://sumi.rs/docs/#quickstart)
- [Configuration](https://sumi.rs/docs/configuration)
- [Rules](https://sumi.rs/docs/rules)
- [Examples](https://sumi.rs/docs/examples)
- [Integration](https://sumi.rs/docs/integration)
- [Frequently Asked Questions](https://sumi.rs/docs/faq)
## 👥 Contributing
Please do! Contributions are always welcome. We appreciate improvements to the documentation, development of new rules, code cleanup, resolving issues, requesting or developing new functionality…
Take a look at our [Contributing Guidelines](/CONTRIBUTING.md) for more information on how to get started.
## 📄 License
This project is licensed under the terms of both the [MIT license](/LICENSE-MIT) and the [Apache License (Version 2.0)](/LICENSE-APACHE), at your option.