Skip to content

rafandoo/gitwit

Repository files navigation

GitWit Logo


📝 Project description

GitWit is a lightweight CLI tool designed to help developers craft better commit messages following semantic conventions. It provides interactive assistance (wizards), linting, and changelog generation, ensuring consistent, meaningful, and standardized commit history across projects.

🤔 Problem definition

Writing clear, consistent, and structured commit messages can be challenging, especially in teams or open-source projects. GitWit addresses this by enforcing a configurable set of rules, guiding users either through an interactive wizard or automatic validation, reducing noise and improving project traceability.

🛠️ Technologies used

Gradle Java

📦 Installation & Usage

📦 For git projects

GitWit is designed to work within projects that are version-controlled using Git. You can use it in local repositories to:

  • Create commits interactively using semantic commit conventions;
  • Validate commit messages (linting);
  • Generate changelogs based on commit history.

You can get the packages directly from the Releases page in the GitHub repository.

In the attachments for each release, you'll find:

  • Linux: .deb and .rpm packages (e.g., gitwit_1.0.0-RC2.deb, gitwit_1.0.0-RC2.rpm)
  • Windows: .exe installer (e.g., gitwit_1.0.0-RC2.exe)

Choose the package corresponding to your system and follow the standard installation process for your platform.

You can now run commands like:

gitwit -h              # Show help
gitwit install         # Install GitWit alias in current repository
gitwit commit          # Start interactive commit wizard
gitwit lint            # Lint latest commit
gitwit changelog       # Generate changelog for current branch

🧪 Local Development

Clone the project and build it locally:

git clone https://github.com/rafandoo/gitwit.git
cd gitwit

./gradlew clean runnableJar

In the build/libs directory, you will find the gitwit-<version>-aio.jar file, this is the "all in one" file that contains all the dependencies needed to run GitWit. You can run it using:

java -jar build/libs/gitwit-<version>-aio.jar -h

🔧 Functionalities

✔️ Interactive commit wizard – Step-by-step prompt for type, scope, short & long descriptions.

✔️ Commit linting – Validate commits individually or in ranges.

✔️ Changelog generation – Group commits by type and scope.

✔️ Custom YAML configuration – Define allowed types, scopes, and validation rules.

✔️ Multilingual support – Supports English and Portuguese messages.

✔️ Git hook friendly – Can be wired into Git lifecycle manually.

✔️ Emoji support for commit types.

✔️ Windows and Linux native installers.

🚀 Future enhancements

✔️ Plugin support for custom lint rules.

✔️ Contribution metrics and insights.

✔️ Support for commit signing.

License 🔑

This project is licensed under the Apache License 2.0

Copyright ©️ 2025-present - Rafael Camargo

About

GitWit, an application to help you with commit standardization.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •