<div align="center">
## Generate git actions without interrupting your coding flow.
```bash
git add . && git commit -am "ugh... I vide all the way, what did I do? what do I even say here?" && git push -u origin dev
```
### ⬇️
```bash
gitme -u <your-remote-branch>
```
</div>

```bash
gitme show
```

## Prerequisites
- Python 3.8+
- At least one AI provider API key:
- Anthropic API key for Claude models, default is `claude-haiku-4-5`
- OpenAI API key for GPT models, `openai` Python package for OpenAI support, default is `gpt-4o-mini`
- Git, all gitme commands must be run from within a git repository directory. If you're not in a git repository, you'll see an error message prompting you to initialize a git repository with `git init`.
## Features
- Analyzes git diffs to generate contextually relevant commit messages
- Detects untracked files and prompts to add them
- Supports staged changes only or all modified files
- Streamline your git workflow: add files, commit and push to upstream branch with user confirmation on every step, extremely lightweight and fast.
- **User input**: Option to edit and then confirm the messages before committing
- **Multiple AI Providers**: Choose between Anthropic or OpenAI, default is Anthropic
- Model options for both providers
- File changes and commit message history for logging, search and review at local
- Repository-specific message storage
## Installation
Install from PyPI:
```bash
pip install gitme-cli --upgrade
```
Or install directly from GitHub:
```bash
pip install git+https://github.com/wangjing0/gitme.git
```
Or develop locally:
```bash
git clone https://github.com/wangjing0/gitme.git
cd gitme
pip install -e .
```
### AI Provider Setup
Choose one or both providers:
**For Anthropic Claude (default):**
```bash
export ANTHROPIC_API_KEY="your-anthropic-api-key-here"
```
**For OpenAI GPT (Optional):**
```bash
export OPENAI_API_KEY="your-openai-api-key-here"
```
### Basic Usage
```bash
# Generate message for staged changes (default - uses Anthropic Claude)
gitme
# Generate message for all changes
gitme -a
# Generate message and commit
gitme -c
# Generate message and commit and push to remote branch
gitme -u <remote-branch>
```
```bash
# Use OpenAI instead of Anthropic (default)
gitme -p openai
# Use OpenAI with specific model
gitme -p openai -m gpt-4o
# Use Anthropic with specific model
gitme -m claude-3-5-haiku-latest
# Combine with other options
gitme -p openai -c # Use OpenAI and commit
```
### Message history and modified files
```bash
# Show previous messages (includes provider/model info)
gitme show
# Show last 5 messages
gitme show -n 5
# Show from all repositories
gitme show -r
# Clear history
gitme show --clear
```
**Enhanced Message History Display:**
```
[1] 2025-09-30 07:48:32
💬 Message:
Update default AI model to Claude Sonnet 4
- Modified README.md
🤖 AI Provider: Anthropic (claude-sonnet-4-5)
📝 Files changed: 1
[2] 2025-09-30 07:45:54
💬 Message:
Update documentation images and references
- Modified README.md
- Added images/gitmecommit.png
- Added images/gitmeshow.png
- Cleaned up src/gitme/cli.py
🤖 AI Provider: Anthropic (claude-sonnet-4-5)
📝 Files changed: 4
```
## Options
### Generate Options
- `-s, --staged`: Analyze only staged changes
- `-a, --all`: Analyze all changes (staged and unstaged)
- `-p, --provider`: Choose AI provider (`anthropic` or `openai`, default: anthropic)
- `-m, --model`: Model to use (provider-specific)
- `-c, --commit`: Create commit with generated message (uses `git commit -a -m "auto-generated message"`)
- `-u, --upstream`:Analyze all changes and create commit and push to upstream branch (specify branch name)
### Show Options
- `-n, --limit`: Number of messages to show
- `-r, --all-repos`: Show messages from all repositories
- `--clear`: Clear message history
### Available Models
**Anthropic Claude:**
- `claude-haiku-4-5` (default)
- `claude-sonnet-4-5`
- `claude-3-5-haiku-latest`
**OpenAI GPT:**
- `gpt-4o-mini` (default when using OpenAI)
- `gpt-4o`
- `gpt-4`
## Privacy & Security Notice
⚠️ **Important**: When using `gitme` or `gitme generate`, your code changes will be sent to the selected AI provider (Anthropic Claude or OpenAI GPT) for processing. The tool does NOT send your entire codebase - only the diff contents of changed files.
**Please exercise caution when using this tool:**
- Avoid using it with repositories containing sensitive information, credentials, or proprietary code
- Review your changes before running the command to ensure no sensitive data is included
- Consider using `.gitignore` to exclude sensitive files from git tracking
- Be aware that different providers have different data handling policies
- Both Anthropic and OpenAI have their own privacy policies and data retention practices
## New Release
```bash
chmod +x release.sh && ./release.sh <version>
```
then upload to PyPI
```bash
twine upload dist/*
```
## Roadmap
- [x] User feedback on the generated message and modify accordingly
- [x] Add a way to add custom prompt to the AI provider
- [ ] add features: search messages and return commit_id, rewind to a previous commit, redo the commit message, etc.
- [ ] Local models with Ollama support
## Contributing
Contributions are welcome! Please feel free to submit a pull request. ❤️ @wangjing0
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "gitme-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ai, claude, commit, generator, git, message, openai",
"author": null,
"author_email": "Jing Wang <jingwang.physics@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/5d/db/6db66ed36e0f6f20db3375a2117e880ff54ae2759b7848db4e4265f56fea/gitme_cli-0.9.1.tar.gz",
"platform": null,
"description": "\n<div align=\"center\">\n\n## Generate git actions without interrupting your coding flow.\n\n```bash\ngit add . && git commit -am \"ugh... I vide all the way, what did I do? what do I even say here?\" && git push -u origin dev\n```\n### \u2b07\ufe0f \n```bash\ngitme -u <your-remote-branch>\n```\n\n</div>\n\n\n\n```bash\ngitme show\n```\n\n\n\n## Prerequisites\n\n- Python 3.8+\n- At least one AI provider API key:\n - Anthropic API key for Claude models, default is `claude-haiku-4-5`\n - OpenAI API key for GPT models, `openai` Python package for OpenAI support, default is `gpt-4o-mini`\n- Git, all gitme commands must be run from within a git repository directory. If you're not in a git repository, you'll see an error message prompting you to initialize a git repository with `git init`.\n\n## Features\n\n- Analyzes git diffs to generate contextually relevant commit messages\n- Detects untracked files and prompts to add them\n- Supports staged changes only or all modified files\n- Streamline your git workflow: add files, commit and push to upstream branch with user confirmation on every step, extremely lightweight and fast.\n- **User input**: Option to edit and then confirm the messages before committing\n- **Multiple AI Providers**: Choose between Anthropic or OpenAI, default is Anthropic\n- Model options for both providers\n- File changes and commit message history for logging, search and review at local\n- Repository-specific message storage\n\n## Installation\n\nInstall from PyPI:\n\n```bash\npip install gitme-cli --upgrade\n```\n\nOr install directly from GitHub:\n\n```bash\npip install git+https://github.com/wangjing0/gitme.git\n```\n\nOr develop locally:\n\n```bash\ngit clone https://github.com/wangjing0/gitme.git\ncd gitme\npip install -e .\n```\n\n### AI Provider Setup\n\nChoose one or both providers:\n\n**For Anthropic Claude (default):**\n```bash\nexport ANTHROPIC_API_KEY=\"your-anthropic-api-key-here\"\n```\n\n**For OpenAI GPT (Optional):**\n```bash\nexport OPENAI_API_KEY=\"your-openai-api-key-here\"\n```\n\n### Basic Usage\n\n```bash\n# Generate message for staged changes (default - uses Anthropic Claude)\ngitme\n\n# Generate message for all changes\ngitme -a\n\n# Generate message and commit\ngitme -c\n\n# Generate message and commit and push to remote branch\ngitme -u <remote-branch>\n```\n\n```bash\n# Use OpenAI instead of Anthropic (default)\ngitme -p openai\n\n# Use OpenAI with specific model\ngitme -p openai -m gpt-4o\n\n# Use Anthropic with specific model\ngitme -m claude-3-5-haiku-latest\n\n# Combine with other options\ngitme -p openai -c # Use OpenAI and commit\n```\n\n### Message history and modified files\n\n```bash\n# Show previous messages (includes provider/model info)\ngitme show\n\n# Show last 5 messages\ngitme show -n 5\n\n# Show from all repositories\ngitme show -r\n\n# Clear history\ngitme show --clear\n```\n\n**Enhanced Message History Display:**\n```\n[1] 2025-09-30 07:48:32\n \ud83d\udcac Message:\n Update default AI model to Claude Sonnet 4\n \n - Modified README.md\n \ud83e\udd16 AI Provider: Anthropic (claude-sonnet-4-5)\n \ud83d\udcdd Files changed: 1\n\n[2] 2025-09-30 07:45:54\n \ud83d\udcac Message:\n Update documentation images and references\n \n - Modified README.md\n - Added images/gitmecommit.png\n - Added images/gitmeshow.png\n - Cleaned up src/gitme/cli.py\n \ud83e\udd16 AI Provider: Anthropic (claude-sonnet-4-5)\n \ud83d\udcdd Files changed: 4\n```\n\n## Options\n\n### Generate Options\n\n- `-s, --staged`: Analyze only staged changes\n- `-a, --all`: Analyze all changes (staged and unstaged)\n- `-p, --provider`: Choose AI provider (`anthropic` or `openai`, default: anthropic)\n- `-m, --model`: Model to use (provider-specific)\n- `-c, --commit`: Create commit with generated message (uses `git commit -a -m \"auto-generated message\"`)\n- `-u, --upstream`:Analyze all changes and create commit and push to upstream branch (specify branch name)\n\n### Show Options\n\n- `-n, --limit`: Number of messages to show\n- `-r, --all-repos`: Show messages from all repositories\n- `--clear`: Clear message history\n\n### Available Models\n\n**Anthropic Claude:**\n- `claude-haiku-4-5` (default)\n- `claude-sonnet-4-5`\n- `claude-3-5-haiku-latest`\n\n**OpenAI GPT:**\n- `gpt-4o-mini` (default when using OpenAI)\n- `gpt-4o`\n- `gpt-4`\n\n## Privacy & Security Notice\n\n\u26a0\ufe0f **Important**: When using `gitme` or `gitme generate`, your code changes will be sent to the selected AI provider (Anthropic Claude or OpenAI GPT) for processing. The tool does NOT send your entire codebase - only the diff contents of changed files.\n\n**Please exercise caution when using this tool:**\n- Avoid using it with repositories containing sensitive information, credentials, or proprietary code\n- Review your changes before running the command to ensure no sensitive data is included\n- Consider using `.gitignore` to exclude sensitive files from git tracking\n- Be aware that different providers have different data handling policies\n- Both Anthropic and OpenAI have their own privacy policies and data retention practices\n\n## New Release\n\n```bash\nchmod +x release.sh && ./release.sh <version>\n```\nthen upload to PyPI\n```bash\ntwine upload dist/*\n```\n\n## Roadmap\n\n- [x] User feedback on the generated message and modify accordingly\n- [x] Add a way to add custom prompt to the AI provider\n- [ ] add features: search messages and return commit_id, rewind to a previous commit, redo the commit message, etc.\n- [ ] Local models with Ollama support\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a pull request. \u2764\ufe0f @wangjing0 \n\n## License\n\nMIT",
"bugtrack_url": null,
"license": null,
"summary": "Git actions simplified",
"version": "0.9.1",
"project_urls": {
"Homepage": "https://github.com/wangjing0/gitme",
"Repository": "https://github.com/wangjing0/gitme"
},
"split_keywords": [
"ai",
" claude",
" commit",
" generator",
" git",
" message",
" openai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b54691f747411c622084ff2207e0a86d08fd0660720aa0c1e59d47f3aa059de2",
"md5": "9b6deb9beeb12697caf41a415b2607fc",
"sha256": "ee08630dd8ee1a2151d30099cfa318e5a4029f4a2d473c18430ecd6d635a1812"
},
"downloads": -1,
"filename": "gitme_cli-0.9.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9b6deb9beeb12697caf41a415b2607fc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 12396,
"upload_time": "2025-10-16T04:40:45",
"upload_time_iso_8601": "2025-10-16T04:40:45.849443Z",
"url": "https://files.pythonhosted.org/packages/b5/46/91f747411c622084ff2207e0a86d08fd0660720aa0c1e59d47f3aa059de2/gitme_cli-0.9.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5ddb6db66ed36e0f6f20db3375a2117e880ff54ae2759b7848db4e4265f56fea",
"md5": "8628cdf1555ab5db6f277428b449e039",
"sha256": "65404cc6709a9fd4361ffce34dc48c6d899dd6206626cf486ea98c90efcc4202"
},
"downloads": -1,
"filename": "gitme_cli-0.9.1.tar.gz",
"has_sig": false,
"md5_digest": "8628cdf1555ab5db6f277428b449e039",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 254502,
"upload_time": "2025-10-16T04:40:46",
"upload_time_iso_8601": "2025-10-16T04:40:46.826380Z",
"url": "https://files.pythonhosted.org/packages/5d/db/6db66ed36e0f6f20db3375a2117e880ff54ae2759b7848db4e4265f56fea/gitme_cli-0.9.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-16 04:40:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wangjing0",
"github_project": "gitme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "gitme-cli"
}