A Rust CLI tool that helps you create consistent and standardized commit messages with interactive prompts. Maintain clean and well-structured Git history with minimal effort.
- 🔍 Interactive Prompts: Guided process to create structured commits
- 🏷️ Standardized Format: Enforces conventional commit standards with emojis
- 🎭 Commit Presets: Quick commits with pre-defined templates
- 🛠️ Command-line Options: Override defaults with various flags
- 🚀 Auto-Push Support: Optionally push after committing
- 📋 Rich Emoji Selection: Visual categorization of commit types
cargo install committer# Clone the repository
git clone https://github.com/koenverburg/committer.git
cd committer-rs
# Build and install
cargo install --path .# Start the interactive commit process
committer commit# Use formatting preset (minimal input required)
committer commit --preset formatting
# Use demo preset
committer commit --preset demo# Specify ticket number directly
committer commit --ticket ABC-123
# Skip description editor
committer commit --no-description
# Commit and automatically push
committer commit --push
# Skip pre-commit hooks
committer commit --no-verify
# Force push after commit
committer commit --push --force-push
# Combine options
committer commit --ticket DEF-456 --preset formatting --pushThe tool generates commit messages in the following format:
[TICKET] EMOJI TYPE: SUBJECT (MESSAGE)
DESCRIPTION
Example:
[ABC-123] ✨ feat: user authentication (add login system)
Implemented user authentication with OAuth2.
Added login and registration pages.
Set up session management.
| Type | Emoji | Description |
|---|---|---|
| feat | ✨ | New features |
| fix | 🐛 | Bug fixes |
| docs | 📚 | Documentation changes |
| style | 💎 | Code style/formatting |
| refactor | ♻️ | Code refactoring |
| perf | 🚀 | Performance improvements |
| test | 🧪 | Adding or fixing tests |
| build | 🔨 | Build system changes |
| ci | 👷 | CI/CD changes |
| chore | 🧹 | General maintenance |
| revert | ⏪ | Reverting changes |
| package | 📦 | Package updates |
| draft | 📝 | Work in progress |
| crash | 💥 | Fixing crashes |
| caution | Risky changes | |
| danger | 🔥 | High-impact changes |
| hazard | ☢️ | Breaking changes |
| config | ⚙️ | Configuration changes |
| hack | 🔧 | Temporary fixes |
| bug | 🐞 | Identified bugs |
| fix | 🩹 | Simple fixes |
| wip | 🚧 | Work in progress |
| trash | 🗑️ | Code removal |
| deleting | 🧨 | Significant removal |
| removal | 🔥 | Feature removal |
Contributions are welcome! Here's how you can help improve committer:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and commit them using committer itself:
cargo run -- commit
- Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
# Install dependencies and build
cargo build
# Run tests
cargo test
# Run with specific feature
cargo run -- commit --preset formattingPlease note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by conventional commit standards
- Thanks to all contributors
Created with ❤️ by Koen Verburg