An open API service indexing awesome lists of open source software.

https://github.com/zillowe/gct

Smart, interactive Git tool powered by AI, GitLab mirror
https://github.com/zillowe/gct

ai cli git go

Last synced: about 5 hours ago
JSON representation

Smart, interactive Git tool powered by AI, GitLab mirror

Awesome Lists containing this project

README

          


ZDS Logo

GCT


An intelligent, AI-powered Git assistant.


Go beyond simple commits. Let GCT explain, create, and conversationally refine your code changes with the power of AI.




Get it on Zoidberg




## ✨ Features

- **Conversational AI Commits:** Generate a commit message and then "chat" with the AI to refine it until it's perfect.
- **Smart Atomic Commits:** Automatically breaks large changes into logical, atomic commits with context awareness.
- **Interactive Review:** Review and edit AI-proposed commit groups in a scrollable TUI before execution.
- **Multi-Provider Support:** Works with over 10 AI providers, including OpenAI, Anthropic, Google, Mistral, Amazon Bedrock, and any OpenAI-compatible endpoint.
- **Real-time Streaming:** AI responses are streamed to your terminal in real-time for faster feedback.
- **AI-Powered Diff Analysis:** Get a high-level explanation of any commit, branch, or staged changes (`gct ai diff`).
- **AI-Generated Changelogs:** Automatically create user-facing changelogs from any set of git changes (`gct ai log`).
- **Guided Setup:** An interactive wizard (`gct init`) makes setup for any provider simple and fast.
- **Custom Guidelines:** Enforce project-specific styles for commits and changelogs by providing your own guide files.

## 🚀 Getting Started

The easiest way to get started is with the **model preset wizard**. It provides a curated list of popular, high-performance models and configures the provider for you. In your project directory, run:

```sh
gct init model
```

For a fully manual setup where you enter the provider and model name yourself, run `gct init`.

## ⚙️ Configuration

GCT is highly flexible. You can configure it using a local `gct.yaml` file, a global config file (e.g. `~/.config/gct/config.yaml`), or with environment variables. This allows you to set project-specific guidelines while keeping your API keys global or managed by your shell.

For a detailed guide on the configuration hierarchy and all available options, please see the [Configuration Reference](https://zillowe.qzz.io/docs/zds/gct/project-config).

**Security Note:** When using file-based configuration, your API key is stored in plain text. The `gct init` command will automatically add `gct.yaml` to your `.gitignore` file to prevent accidentally committing secrets.

### Supported Providers

GCT supports a wide range of providers:
`Google AI Studio`, `Google Vertex AI`, `OpenAI`, `OpenAI Compatible`, `Azure OpenAI`, `Anthropic`, `OpenRouter`, `DeepSeek`, `Mistral`, `Alibaba`, `Hugging Face`, `Amazon Bedrock`, and `xAI`.

### Configuration Fields

- `provider`: The AI service you want to use.
- `model`: The specific model/deployment name from your chosen provider.
- `api`: Your secret API key.
- `commits.guides` & `changelogs.guides`: Lists of local files containing formatting rules.
- `endpoint`: (Optional) The base URL, only for the `"OpenAI Compatible"` provider.
- `gcp_project_id`, `gcp_region`: (Optional) Required only for `"Google Vertex AI"`.
- `aws_region`, `aws_access_key_id`, `aws_secret_access_key`: (Optional) Required only for `"Amazon Bedrock"`.
- `azure_resource_name`: (Optional) Required only for `"Azure OpenAI"`.
- `cache.enabled`: (Optional) To store generated responses locally and reduce costs.

## 🤖 Model Recommendations

Choosing a model can be tough. Here are some recommended starting points for GCT's use case:

| Recommendation | Model ID | Best For... |
| :----------------------- | :------------------------------------- | :---------------------------------------------------- |
| **Best Overall** | `gpt-5.4-mini` (OpenAI) | Top-tier reasoning, speed, and instruction following. |
| **Best Balance** | `claude-sonnet-4-6` (Anthropic) | Excellent performance at a great price point. |
| **Fastest & Best Value** | `gemini-3-flash-preview` (Google) | High-speed, low-cost tasks like `ai log` & chat. |
| **Best Open Model** | `openai/gpt-oss-120b` (via OpenRouter) | State-of-the-art open-source performance. |

## ✨ Commands

GCT is a command-line tool. Here are the available commands, grouped by category:

### Core Commands

| Command | Description |
| :--------------- | :---------------------------------------------------------------- |
| `gct init model` | Starts a wizard with recommended models for easy setup. |
| `gct init` | Interactively creates a `gct.yaml` config file with manual input. |
| `gct version` | Shows GCT version information. |
| `gct help` | Shows the detailed help message. |

### Manual Git Commands

| Command | Description |
| :---------------- | :------------------------------------------------------ |
| `gct commit` | Creates a new git commit using an interactive TUI form. |
| `gct commit edit` | Edits the previous commit's message using the same TUI. |

### AI Git Commands

| Command | Description |
| :------------------------ | :--------------------------------------------------------------------------- |
| `gct ai commit [context]` | Generates and conversationally refines a commit message from staged changes. |
| `gct ai diff [args]` | Asks AI to explain a set of code changes in a readable format. |
| `gct ai log [args]` | Generates a user-facing changelog entry from code changes. |

## 💾 Installation

You can install GCT via [Zoi](https://zillowe.qzz.io/zds/zoi):

```sh
zoi install @zillowe/gct
```

Or build GCT from source. To do so, you need to have [`go`](https://go.dev) installed.

```sh
# For Linux/macOS
./build/build-release.sh

# For Windows
./build/build-release.ps1
```

## 📚 Documentation

For more detailed guides, please refer to the **[GCT Docs](https://zillowe.qzz.io/docs/zds/gct)**.



GCT is developed by Zusty < Zillowe Foundation
Part of the Zillowe Development Suite (ZDS)