Skip to main content

AI code review tool that works with any language model provider. It detects issues in GitHub pull requests or local changes—instantly, reliably, and without vendor lock-in.

Project description

Gito: AI Code Reviewer

PYPI Release PyLint Tests Code Coverage License

Gito is an open-source AI code reviewer that works with any language model provider. It detects issues in GitHub pull requests or local codebase changes—instantly, reliably, and without vendor lock-in.

Get consistent, thorough code reviews in seconds—no waiting for human availability.

📋 Table of Contents

✨ Why Gito?

  • [⚡] Lightning Fast: Get detailed code reviews in seconds, not days — powered by parallelized LLM processing
  • [🔧] Vendor Agnostic: Works with any language model provider (OpenAI, Anthropic, Google, local models, etc.)
  • [🌐] Universal: Supports all major programming languages and frameworks
  • [🔍] Comprehensive Analysis: Detect issues across security, performance, maintainability, best practices, and much more
  • [📈] Consistent Quality: Never tired, never biased—consistent review quality every time
  • [🚀] Easy Integration: Automatically reviews pull requests via GitHub Actions and posts results as PR comments
  • [🎛️] Infinitely Flexible: Adapt to any project's standards—configure review rules, severity levels, and focus areas, build custom workflows

🎯 Perfect For

  • Solo developers who want expert-level code review without the wait
  • Teams looking to catch issues before human review
  • Open source projects maintaining high code quality at scale
  • CI/CD pipelines requiring automated quality gates

✨ See code review in action

🚀 Quickstart

1. Review Pull Requests via GitHub Actions

Create a .github/workflows/gito-code-review.yml file:

name: "Gito: AI Code Review"
on:
  pull_request:
    types: [opened, synchronize, reopened]
  workflow_dispatch:
    inputs:
      pr_number:
        description: "Pull Request number"
        required: true
jobs:
  review:
    runs-on: ubuntu-latest
    permissions: { contents: read, pull-requests: write } # 'write' for leaving the summary comment
    steps:
    - uses: actions/checkout@v6
      with: { fetch-depth: 0 }
    - name: Set up Python
      uses: actions/setup-python@v6
      with: { python-version: "3.13" }
    - name: Install AI Code Review tool
      run: pip install gito.bot~=3.6
    - name: Run AI code analysis
      env:
        LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
        LLM_API_TYPE: openai
        MODEL: "gpt-5.2"
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        PR_NUMBER_FROM_WORKFLOW_DISPATCH: ${{ github.event.inputs.pr_number }}
      run: |
        gito --verbose review
        gito github-comment --token ${{ secrets.GITHUB_TOKEN }}
    - uses: actions/upload-artifact@v6
      with:
        name: ai-code-review-results
        path: |
          code-review-report.md
          code-review-report.json

⚠️ Make sure to add LLM_API_KEY to your repository's GitHub secrets.

💪 Done!
PRs to your repository will now receive AI code reviews automatically. ✨
See GitHub Setup Guide for more details.

2. Running Code Analysis Locally

Initial Local Setup

Prerequisites:

Option A: Install via pip (recommended)

Step 1: Install gito.bot using pip.

pip install gito.bot

Troubleshooting:
pip may also be available via cli as pip3 depending on your Python installation.

Option B: Windows Standalone Installer

Download the latest Windows installer from Releases.

The installer includes:

  • Standalone executable (no Python required)
  • Automatic PATH configuration
  • Start Menu shortcuts
  • Easy uninstallation

Step 2: Perform initial setup

The following command will perform one-time setup using an interactive wizard. You will be prompted to enter LLM configuration details (API type, API key, etc). Configuration will be saved to ~/.gito/.env.

gito setup

Troubleshooting:
On some systems, gito command may not become available immediately after installation.
Try restarting your terminal or running python -m gito instead.

Perform your first AI code review locally

Step 1: Navigate to your repository root directory.
Step 2: Switch to the branch you want to review.
Step 3: Run the following command:

gito review

Note: This will analyze the current branch against the repository main branch by default.
Files that are not staged for commit will be ignored.
See gito --help for more options.

Reviewing remote repository

gito remote git@github.com:owner/repo.git <FEATURE_BRANCH>..<MAIN_BRANCH>

Use interactive help for details:

gito remote --help

🔧 Configuration

Gito uses a two-layer configuration model:

Scope Location Purpose
Environment ~/.gito/.env or OS environment variables LLM provider, model, API keys, concurrency
Project <repo>/.gito/config.toml Review behavior, prompts, templates, integrations

Note: Environment configuration defines external resources and credentials — it's machine-specific and never committed to version control. Project configuration defines review behavior and can be shared across your team.

Environment Configuration

Environment settings control LLM inference, API Keys and apply system-wide.

Gito uses ai-microcore for vendor-agnostic LLM access. All settings are configured via OS environment variables or .env files.

Default location: ~/.gito/.env
(Created automatically via gito setup)

Example

# ~/.gito/.env
LLM_API_TYPE=openai
LLM_API_KEY=sk-...
LLM_API_BASE=https://api.openai.com/v1/
MODEL=gpt-5.2
MAX_CONCURRENT_TASKS=20

For all supported options, see the ai-microcore configuration guide.

CI/CD Environments

In CI workflows, configure LLM settings via workflow environment variables. Use your platform's secrets management (GitHub Secrets, GitLab CI Variables) for API keys.

Project Configuration

Gito supports per-repository customization through a .gito/config.toml file placed at the root of your project. This allows you to tailor code review behavior to your specific codebase, coding standards, and workflow requirements.

Configuration Inheritance Model

Project settings follow a layered override model:

Bundled Defaults (config.toml) → Project Config (<your-repo>/.gito/config.toml)

Any values defined in your project's .gito/config.toml are merged on top of the built-in defaults. You only need to specify the settings you want to change—everything else falls back to sensible defaults.

Common Customizations

  • Review prompts — Tailor AI instructions, review criteria, and quality thresholds
  • Output templates — Customize report format for GitHub comments and CLI
  • Post-processing — Python snippets to filter or transform detected issues
  • Bot behavior — Mention triggers, retries, comment handling
  • Pipeline integrations — Jira, Linear, etc.

Explore the bundled config.toml for the complete list of available options.

Example

# .gito/config.toml
mention_triggers = ["gito", "/check"]
collapse_previous_code_review_comments = true

# Files to provide as context
aux_files = [
    'documentation/command_line_reference.md'
]

exclude_files = [
    'poetry.lock',
]

[prompt_vars]
# Custom instructions injected into the system prompts
awards = ""  # Disable awards
requirements = """
- All public functions must have docstrings.
"""

For detailed guidance, see the 📖 Configuration Cookbook.

📚 Guides & Reference

For more detailed information, check out these articles:

Or browse all documentation in the /documentation directory.

🚧 Known Limitations

Gito cannot modify files inside .github/workflows when reacting to GitHub PR comments (e.g., "Gito fix issue 2").
This is a GitHub security restriction that prevents workflows from modifying other workflow files using the default GITHUB_TOKEN.

While using a Personal Access Token (PAT) with the workflow scope would bypass this limitation, it is not recommended as a workaround. PATs have broader permissions, longer lifespans, and are tied to individual user accounts, making them less secure than the default GITHUB_TOKEN for CI/CD pipelines.

💻 Development Setup

Cloning the repository:

git clone https://github.com/Nayjest/Gito.git
cd Gito

Install dependencies:

make install

Format code and check style:

make black
make cs

Run tests:

pytest

🤝 Contributing

Looking for a specific feature or having trouble?
Contributions are welcome! ❤️
See CONTRIBUTING.md for details.

📝 License

Licensed under the MIT License.

© 2025–2026 Vitalii Stepanenko

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

gito_bot-3.6.0.tar.gz (49.0 kB view details)

Uploaded Source

Built Distribution

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

gito_bot-3.6.0-py3-none-any.whl (59.3 kB view details)

Uploaded Python 3

File details

Details for the file gito_bot-3.6.0.tar.gz.

File metadata

  • Download URL: gito_bot-3.6.0.tar.gz
  • Upload date:
  • Size: 49.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gito_bot-3.6.0.tar.gz
Algorithm Hash digest
SHA256 6bd9e3c7a55d7758313a4a2bcd66c8dba8da91547e102ded66bb4b5cf96161c4
MD5 26a7a1d52684fc5c4aac0262da55e9e2
BLAKE2b-256 9d0d67c54d4431e788304de3bbd89bd35721a7fa482026a1a2937d75f3b6dc2c

See more details on using hashes here.

File details

Details for the file gito_bot-3.6.0-py3-none-any.whl.

File metadata

  • Download URL: gito_bot-3.6.0-py3-none-any.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gito_bot-3.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 086273116248b4a123bdd5da0f22413b623a803bad6169c871efbd77d8207e28
MD5 13e3bc7d3522a2aa10f43c7f52703d5d
BLAKE2b-256 d1aba422a97df307bef1ad6b6744929ae8af4b88cb849fec109135d67bc307e6

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