Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spartan-71/autocommitt
A CLI tool to generate AI-powered commit messages locally with Ollama—completely free, private, and offline!
https://github.com/spartan-71/autocommitt
ai-commit cli git ollama
Last synced: 2 days ago
JSON representation
A CLI tool to generate AI-powered commit messages locally with Ollama—completely free, private, and offline!
- Host: GitHub
- URL: https://github.com/spartan-71/autocommitt
- Owner: Spartan-71
- License: apache-2.0
- Created: 2024-11-18T11:43:58.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-31T09:54:34.000Z (26 days ago)
- Last Synced: 2025-01-24T22:58:31.800Z (2 days ago)
- Topics: ai-commit, cli, git, ollama
- Language: Python
- Homepage: https://pypi.org/project/autocommitt/
- Size: 150 KB
- Stars: 22
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![4](https://github.com/user-attachments/assets/b2a26ff4-9261-4872-aceb-a7d9e803e972)
AutoCommit is a free and open-source **AI-powered CLI tool** that generates unlimited commit messages locally using **Ollama**. It works entirely offline, requiring no API keys, providing developers with a private and efficient way to create concise, context-aware commit messages.
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/)
[![PyPI version](https://badge.fury.io/py/autocommitt.svg)](https://badge.fury.io/py/autocommitt)
![PyPI Downloads](https://static.pepy.tech/badge/autocommitt)## Features
- **Local AI-Powered**: Generates commit messages using a small LLM models locally
- **Flexible Editing**: Review and edit generated messages before committing
- **Git Integration**: Seamlessly works with your existing Git workflow
- **Multiple Language Model Support**: Option to choose different local AI models## Setup
### Prerequisites- **Ollama**: Download and install ollama from [offical website](https://ollama.com/download).
- **RAM** (minimum):
- 8GB for smaller models (<=3B parameters)
- 16GB for optimal performance
- **GPU** (Optional): Boosts performance, but not required
### InstallationIt is recommended to use a virtual environment.
```bash
pip install autocommitt
```### Upgrading
Check the installed version with:
```bash
pip list | grep autocommitt
```If it's not [latest](https://github.com/Spartan-71/AutoCommitt/releases/), make sure to upgrade.
```bash
pip install -U autocommitt
```## Basic Usage
1. **Start the Ollama Server**
```bash
act start
```
> **Note**: The Ollama server starts automatically after installation. However, running this command ensures that all configuration files are updated and a default model is properly set up.2. **Stage Your Changes**
Stage the files you want to commit using Git:
```bash
git add
```3. **Generate and Edit Commit Messages**
Generate a commit message based on your staged changes:
```bash
act gen
```- The tool generates a message and allows you to review and edit it before committing.
- To **automatically push** the commit to the remote repository, use the `-p` or `--push` flag:
```bash
act gen -p
```> **Pro Tip**: Save time by using the `--push` flag to combine committing and pushing into a single step.
4. **Stop the Ollama Server**
To free up resources after you're done, stop the Ollama server:
```bash
act stop
```
> **Note**: This command is supported only on Linux. On Windows and macOS, the Ollama server runs continuously as long as the machine is active.>**Pro Tip**: You can use the `autocommitt` alias for `act` throughout, making commands shorter and quicker to type!
## Additional Commands
By default, **AutoCommitt** uses the `llama3.2:3b` model to generate commit messages.
#### 1. Using a Custom Model
- To view the list of available models, run the following command:
```bash
act list
```
- To select and set a model as active:
```bash
act use
```
> **Note**: If the model is not already downloaded, this command will pull the model by running `ollama pull ` and set it as the default.#### 2. Deleting a Model
```bash
act rm
```
> **Note**: Since models require a significant amount of memory (minimum 2GB), it is recommended to use only one model and delete the rest to free up space.#### 3. Viewing Commit History
Easily view recent commit messages using the `his` command:
```bash
act his -n 5
```
- **Flag Description**:`-n` or `--limit`: (Optional) Specify the number of recent commit messages to retrieve. If omitted, all commit messages will be displayed.> **Pro Tip**: Use this command to quickly review your project's recent changes before generating new commit messages.
## How It Works
It runs the `git diff --staged` command to gather all staged changes and processes them using a local LLM (default: `llama3.2:3b` provided by Ollama). The model analyzes the changes and generates a concise, context-aware commit message, ensuring privacy and avoiding external API dependencies.## Future Enhancements
- **Cross-Platform Support**: Compatibility for MacOS.
- **Git Hooks Integration**: Compatible with pre-commit hooks
- **Custom Templates**: Support for user-defined commit message templates## Contributing
We welcome contributions! To report bugs, fix issues, or add features, visit the [Issues](https://github.com/Spartan-71/AutoCommitt/issues) page. Please review our [Contribution Guide](CONTRIBUTING.md) for setup and contribution instructions.
## Acknowledgments
We would like to express our gratitude to the following open-source projects that made AutoCommitt possible:
- [Ollama](https://ollama.ai/) - Enables local AI with large language models.
- [Typer](https://typer.tiangolo.com/) - A CLI builder by [Sebastián Ramírez](https://github.com/tiangolo), powering our command-line interface.Special thanks to the maintainers and contributors for their outstanding work!
---