Metadata-Version: 2.1
Name: git-ai-summarize
Version: 0.1.4
Summary: AI-powered git commands for summarizing changes
Author-email: Kevin Beaulieu <opensource@kevinmbeaulieu.com>
Project-URL: Homepage, https://github.com/kevinmbeaulieu/git-ai-summarize
Project-URL: Issues, https://github.com/kevinmbeaulieu/git-ai-summarize/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: langchain-core
Requires-Dist: langchain-anthropic
Requires-Dist: langchain-openai
Requires-Dist: langchain-google-genai
Requires-Dist: langchain-mistralai
Requires-Dist: langchain-fireworks
Requires-Dist: langchain-together
Requires-Dist: langchain-google-vertexai
Requires-Dist: langchain-groq
Requires-Dist: langchain-nvidia-ai-endpoints
Requires-Dist: langchain-ollama
Requires-Dist: langchain-ai21
Requires-Dist: langchain-upstage
Requires-Dist: langchain-databricks
Requires-Dist: langchain-ibm
Requires-Dist: langchain-xai

# Git AI Summarize

A command-line tool for summarizing changes in Git repositories using AI.

## Installation

```bash
pip install git-ai-summarize
```

## Requirements

- Python 3.8 or higher
- An API key for Anthropic (or your preferred LLM)

## Setup

Set an environment variable with your LLM API key. To use the default Anthropic model, use:

```bash
export ANTHROPIC_API_KEY='your-api-key-here'
```

Add this to your shell profile to make it permanent.

## Commands

### Summarize changes between commits

Provide a commit hash or a range of commits to get a summary of the changes.

```bash
# Compare with HEAD
git summarize <commit-hash>

# Compare any two commits
git summarize <commit1>..<commit2>
```

### Pull and summarize changes

Pass the `--pull` flag to pull changes from the remote and summarize the changes since the last pull.

```bash
git summarize --pull
```

## Using alternative LLM providers/models

You can pass the `--provider` and `--model` argument to use a different LLM provider/model. The default provider is `anthropic`, and the default model is `claude-3-5-sonnet-latest`. To get a list of all supported providers, run:

```bash
git summarize --list-providers
```

To get a list of all supported models for a provider, see the LLM providers' documentation.

Depending on the provider, you may need to set additional environment variables with that provider's API key (e.g., `ANTHROPIC_API_KEY` for Anthropic/Claude, `OPENAI_API_KEY` for OpenAI/GPT, etc.).

To change your default provider/model, you can set the `GIT_SUMMARIZE_PROVIDER` and `GIT_SUMMARIZE_MODEL` environment variables.

If you would like to use a model by a provider that is not currently supported by this package, feel free to submit an Issue with the name of the model/provider and we can look into it. If it is supported by LangChain, we can most likely add it.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

GNU GPLv3 License
