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
- Host: GitHub
- URL: https://github.com/zillowe/gct
- Owner: Zillowe
- License: apache-2.0
- Created: 2025-08-23T12:26:36.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-09-01T16:31:19.000Z (10 months ago)
- Last Synced: 2025-09-01T18:09:11.647Z (10 months ago)
- Topics: ai, cli, git, go
- Language: Go
- Homepage: https://gitlab.com/Zillowe/Zillwen/Zusty/GCT
- Size: 225 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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.
## ✨ 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)**.