Skip to main content

A CLI tool to generate commit messages and pull requests using LLM.

Project description

git-scribe

git-scribe logo

PyPI version Python Versions License: MIT

Build Status Code Coverage Powered by Gemini Code style: black

Your AI-powered git assistant for crafting perfect commits and pull requests.

FeaturesInstallationUsageCustomizationContributing


git-scribe is a command-line tool that leverages Large Language Models (LLMs) to automatically generate high-quality, conventional commit messages and pull request descriptions. It acts as a smart wrapper around your daily git commands, streamlining your workflow and improving your commit history.

Demo

Demo of git-scribe in action

Features

  • AI-Generated Commit Messages: Automatically generates well-formatted commit messages from your staged changes.
  • AI-Generated Pull Requests: Creates detailed pull request titles and bodies from your branch diffs.
  • Full git commit Compatibility: Supports passthrough of common git commit options like --all and --amend.
  • Full gh pr create Compatibility: Supports common gh pr create options like --reviewer, --label, --milestone, and --draft.
  • Interactive Review & Edit: Always prompts you to review and edit the AI-generated content before any action is taken.
  • Customizable Prompts: Easily customize the AI's behavior by editing simple markdown files.

Installation

Prerequisites

1. Install git-scribe

You can install the tool directly from this GitHub repository:

pip install git+https://github.com/popyson1648/git-llm.git

(Note: Once published to PyPI, this will become pip install git-scribe)

2. Initial Setup

After installation, run the init command to create the necessary configuration files:

git-scribe init

This will create a new directory at ~/.config/git-scribe/.

3. Configure API Keys

Open the newly created configuration file at ~/.config/git-scribe/config.toml and add your API keys:

[api_keys]
gemini = "YOUR_GEMINI_API_KEY"
github = "YOUR_GITHUB_PERSONAL_ACCESS_TOKEN"
  • Gemini API Key: Get yours from Google AI Studio.
  • GitHub Personal Access Token: Create one here with repo scope.

Usage

Creating a Commit

  1. Stage your files as you normally would (git add .).
  2. Run the commit command. git-scribe will generate a message for you to review.
git-scribe commit

You can also pass through git commit arguments:

# Commit all tracked files, not just staged ones
git-scribe commit --all

# Amend the previous commit
git-scribe commit --amend

Creating a Pull Request

  1. Push your feature branch to the remote repository.
  2. Run the pr command.
# Create a PR against the 'main' branch
git-scribe pr --base main

Add reviewers, labels, and other attributes just like you would with gh pr create:

git-scribe pr --base main --reviewer <user> --label "bug,enhancement" --draft

Command Reference

git-scribe commit [OPTIONS]

Accepts most standard git commit options, including but not limited to:

  • --all, -a
  • --amend
  • --author=<author>
  • --date=<date>
  • --no-verify

git-scribe pr [OPTIONS]

Accepts the following options, compatible with gh pr create:

  • --base <branch>, -B <branch>
  • --head <branch>, -H <branch>
  • --reviewer <handle>, -r <handle> (can be specified multiple times)
  • --assignee <login>, -a <login> (can be specified multiple times)
  • --label <name>, -l <name> (can be specified multiple times)
  • --milestone <name>, -m <name>
  • --draft, -d

Customization

You can fully customize the AI's tone, language, and output format by editing the prompt files located in ~/.config/git-scribe/.

  • System Prompts (system_*.md): These files instruct the AI on its role and the strict output format it must follow.
  • User Prompts (user_*.md): These files are for you. You can add your own project-specific guidelines, examples, or context to further guide the AI. They are empty by default and can be safely left that way.

Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request.

Development Setup

  1. Clone the repository.
  2. Create a virtual environment and activate it.
  3. Install the package in editable mode with development dependencies:
    pip install -e .[dev]
    
  4. Run tests:
    pytest
    

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

popyson_git_scribe-0.2.4.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

popyson_git_scribe-0.2.4-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file popyson_git_scribe-0.2.4.tar.gz.

File metadata

  • Download URL: popyson_git_scribe-0.2.4.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for popyson_git_scribe-0.2.4.tar.gz
Algorithm Hash digest
SHA256 c6c3ed1ccd9ff5dd2ac21bfb554b961604a7fb762efe280d666d0856d4950007
MD5 d330108a46bbc745ac28d564e1ef7dda
BLAKE2b-256 82a6417ae00023873ecea280da43a8d50bcfb67aad05cbbad527c025ee4bd3d8

See more details on using hashes here.

File details

Details for the file popyson_git_scribe-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for popyson_git_scribe-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7588c31566a63585df28adb7e723da0059e743dfa6d8a6f2c40fff8f8de63090
MD5 36f27bff250aa5930a9044289bd36b83
BLAKE2b-256 21bcfe66c74dd392d61c6d7eb2d293b335d7046b07b2259fcbb5d7d8665c937c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page