appleboy/CodeGPT
A CLI written in Go language that writes git commit messages or do a code review brief for you using ChatGPT AI (gpt-4.1, gpt-4o model) and automatically installs a git prepare-commit-msg hook.
CodeGPT 是什麼?
CodeGPT 是一個以 Go 編寫的命令列工具,透過與大型語言模型 API(OpenAI、Azure OpenAI、Gemini、Anthropic、Ollama、Groq、OpenRouter)通訊,協助開發者完成兩個日常的 Git 任務:
- 產生提交訊息 – 它讀取你暫存變更的
git diff,將差異傳送給選定的 LLM,並回傳符合 Conventional Commits 格式的提交訊息。該工具還可安裝prepare-commit-msgGit 鈎子,使得當你執行git commit時,AI 產生的訊息會自動插入。 - 總結程式碼審查 – 它可以產生類似拉取請求風格的簡短變更摘要。
這兩個功能均支援串流輸出(令牌逐個產生並顯示)、語言翻譯(英文、繁體中文、簡體中文、日文),以及自訂提示範本。
如何取得?
- macOS –
brew tap appleboy/tap && brew install codegpt - Windows –
choco install codegpt - 任意系統 – 執行提供的安裝腳本,或從 GitHub 發布頁面下載預先編譯的二進位檔。
- 從原始碼建置 –
go install github.com/appleboy/CodeGPT/cmd/codegpt@latest - VS Code devcontainer – 在
devcontainer.json中加入ghcr.io/kvokka/features/codegpt功能。
它是如何運作的?
- 設定 – 透過環境變數、
.codegpt.yaml檔案或內建的 API 金鑰助手 功能提供 API 金鑰(或動態取得金鑰的命令)。設定檔位於$HOME/.config/codegpt/,可設定:- 提供者(
openai、azure、gemini、anthropic、ollama、groq、openrouter) - 基礎 URL、模型名稱、溫度、最大令牌數、代理設定等。
- Git 特定選項,如在差異中包含多少上下文行,以及要排除的檔案。
- 提供者(
- 執行 CLI –
codegpt commit(或codegpt review)讀取差異,根據選定的範本建構提示,呼叫 LLM 端點,並列印結果。使用--stream標誌可逐個查看回應令牌。 - Git 鈎子 –
codegpt hook install會寫入一個prepare-commit-msg腳本,自動呼叫 CLI,因此每次執行git commit時都會自動填入 AI 產生的訊息。
哪些人會用到它?
- 希望無需手動撰寫即可獲得一致、符合規範的提交訊息的開發者。
- 需要快速、易讀的程式碼變更摘要,用於拉取請求描述或內部審查的團隊。
- 需要使用多個 LLM 提供者的人(例如,為合規性偏好 Azure OpenAI,或希望使用 Ollama 本地運行)——CodeGPT 將提供者抽象為單一 CLI。
它的限制是什麼?
- 它僅是 客戶端;生成文字的品質完全取決於你所指向的底層模型。
- 該工具需要網路連線(或本地 Ollama 伺服器)以及所選提供者的有效 API 金鑰。
- 它不執行任何靜態分析或 linting;僅是將差異轉送給模型。
- Git 鈎子會原樣插入 AI 文字;你仍應在最終提交前審查訊息。
快速入門範例
# 安裝(macOS 範例)
brew tap appleboy/tap && brew install codegpt
# 導出你的 OpenAI 金鑰(或透過 `codegpt config set` 設定)
export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# 為暫存變更產生提交訊息
codegpt commit
# 或安裝鈎子,讓 `git commit` 自動執行
codegpt hook install
如何了解更多?
- 倉儲的 README 包含詳細的安裝步驟、完整的設定選項清單,以及每個支援提供者的範例。
- 影片導覽(中文) – https://www.youtube.com/watch?v=4Yei_t6eMZU
- 解釋此概念的部落格文章 – https://blog.wu-boy.com/2023/03/writes-git-commit-messages-using-chatgpt/
以上所有資訊均直接取自專案的 README;未推測任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案