commitgenius 0.2.0

An AI-powered CLI tool that generates conventional commit messages using local LLMs via Ollama
# 🚀 Commitgenius

A powerful CLI tool that generates conventional commit messages using local LLMs via Ollama. Say goodbye to writing commit messages manually!

[![Crates.io](https://img.shields.io/crates/v/commitgenius.svg)](https://crates.io/crates/commitgenius)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## ✨ Features

- 🤖 Generates smart, conventional commit messages using local LLMs
- 🔄 Automatically manages Ollama service
- 🎯 Supports multiple Ollama models
- 🚀 Fast and efficient
- 💻 Works offline with local models
- 📝 Automatic git staging with smart file selection

## 📦 Installation

### Using Cargo (Recommended)

```bash
cargo install commitgenius
```

### Building from Source

1. Clone the repository:
```bash
git clone https://github.com/bannawandoor27/Commitgenius.git
cd Commitgenius
```

2. Build and install:
```bash
cargo install --path .
```

### Prerequisites

- [Ollama]https://ollama.ai/ must be installed on your system
- Rust and Cargo (if building from source)

## 🚀 Usage

### Basic Usage

1. Stage and commit all changes:
```bash
cmgenius .
```

2. Stage and commit specific files:
```bash
cmgenius file1.rs file2.rs
```

3. Commit already staged changes:
```bash
cmgenius
```

### Advanced Usage

Use a different model:
```bash
# Stage and commit all changes with a specific model
cmgenius . --model codellama

# Stage and commit specific files with a specific model
cmgenius file1.rs file2.rs --model codellama

# Commit staged changes with a specific model
cmgenius --model codellama
```

Available models:
- qwen2.5:7b (default)
- codellama
- llama2
- mistral
- neural-chat
- And any other model available in Ollama

### Examples

```bash
# Stage and commit all changes
cmgenius .

# Stage and commit specific files
cmgenius src/main.rs Cargo.toml

# Commit already staged changes with a specific model
cmgenius --model codellama

# View available options
cmgenius --help
```

## 🤝 Contributing

Contributions are welcome! Here's how you can help:

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes using Commitgenius! (`cmgenius .`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## 📝 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🙏 Acknowledgments

- [Ollama]https://ollama.ai/ for providing the local LLM infrastructure
- The Rust community for amazing crates and tools

## 📧 Contact

Muhammed Banna - [@bannawandoor27](https://github.com/bannawandoor27)

Project Link: [https://github.com/bannawandoor27/Commitgenius](https://github.com/bannawandoor27/Commitgenius)