一个用 Go 编写的 CLI 工具,它使用 ChatGPT AI(gpt-4o,gpt-4 模型)为你编写 git 提交信息或提供代码审查摘要,并自动安装 git prepare-commit-msg hook。
en
、zh-tw
或 zh-cn
)。gpt-4
、gpt-4o
等。在 macOS 上通过 Homebrew 安装
brew tap appleboy/tap
brew install codegpt
在 Windows 上通过 Chocolatey 安装
choco install codegpt
# 下载并运行安装脚本
bash < <(curl -sSL https://raw.githubusercontent.com/appleboy/CodeGPT/main/install.sh)
或手动下载并运行:
chmod +x install.sh
./install.sh
变量名 | 默认值 | 说明 |
---|---|---|
VERSION | latest | 要安装的 CodeGPT 版本(默认为最新发布版) |
INSTALL_DIR | $HOME/.codegpt/bin | 安装目录 |
CURL_INSECURE | false | 是否跳过 SSL 验证 (true/false) |
使用示例:
# 安装指定版本到自定义目录
VERSION=1.1.0 INSTALL_DIR=/opt/codegpt ./install.sh
该脚本会:
可以从 发布页面 下载预编译的二进制文件。将二进制文件权限更改为 755
并将其复制到系统 bin 目录。使用如下所示的 codegpt
命令。
$ codegpt version
Version: 1.1.0
Git Commit: 899396a
Build Time: 2025-05-16T15:52:38Z
Go Version: 1.24.3
OS/Arch: darwin/arm64
从源码安装:
go install github.com/appleboy/CodeGPT/cmd/codegpt@latest
在 devcontainer.json 中添加 feature:
"features": {
"ghcr.io/kvokka/features/codegpt:1": {}
}
请先创建你的 OpenAI API Key。可以在 OpenAI 平台 生成新的 API Key。
环境变量是设置在操作系统上的变量,而不是在应用程序内。它由名称和值组成。我们建议将变量名称设置为 OPENAI_API_KEY
。
参见 API Key 安全最佳实践。
export OPENAI_API_KEY=sk-xxxxxxx
或者将你的 API key 存储在自定义配置文件中。
codegpt config set openai.api_key sk-xxxxxxx
这将在你的主目录中创建一个 .codegpt.yaml
文件($HOME/.config/codegpt/.codegpt.yaml)。以下选项可用。
选项 | 描述 |
---|---|
openai.base_url | 替换默认的基本 URL (https://api.openai.com/v1 )。 |
openai.api_key | 从 openai 平台页面 生成 API key。 |
openai.org_id | 在 API 请求中有时使用的组织标识符。参见 组织设置。仅适用于 openai 服务。 |
openai.model | 默认模型是 gpt-4o ,你可以更改为其他自定义模型(Groq 或 OpenRouter 提供)。 |
openai.proxy | HTTP/HTTPS 客户端代理。 |
openai.socks | SOCKS 客户端代理。 |
openai.timeout | 默认 HTTP 超时时间是 10s (十秒)。 |
openai.skip_verify | 默认 skip_verify 设置为 false ,可以将其更改为 true 以忽略 SSL 验证。 |
openai.max_tokens | 默认最大 token 数是 300 。参见参考 max_tokens。 |
openai.temperature | 默认温度是 1 。参见参考 temperature。 |
git.diff_unified | 生成具有 <n> 行上下文的差异,默认是 3 。 |
git.exclude_list | 从 git diff 命令中排除文件。 |
openai.provider | 默认服务提供商是 openai ,你可以更改为 azure 。 |
output.lang | 默认语言是 en ,可用语言有 zh-tw 、zh-cn 、ja 。 |
openai.top_p | 默认 top_p 是 1.0 。参见参考 top_p。 |
openai.frequency_penalty | 默认 frequency_penalty 是 0.0 。参见参考 frequency_penalty。 |
openai.presence_penalty | 默认 presence_penalty 是 0.0 。参见参考 presence_penalty。 |
prompt.folder | 默认提示文件夹是 $HOME/.config/codegpt/prompt 。 |
默认提示文件夹位于 $HOME/.config/codegpt/prompt
。你可以通过执行以下命令将其更改为其他目录:
codegpt config set prompt.folder /path/to/your/prompt
要从自定义文件夹加载提示文件,请运行:
codegpt prompt --load
执行后,你将看到类似以下的消息:
save code_review_file_diff.tmpl to /Users/xxxxx/.config/codegpt/prompt/code_review_file_diff.tmpl
save summarize_file_diff.tmpl to /Users/xxxxx/.config/codegpt/prompt/summarize_file_diff.tmpl
save summarize_title.tmpl to /Users/xxxxx/.config/codegpt/prompt/summarize_title.tmpl
save conventional_commit.tmpl to /Users/xxxxx/.config/codegpt/prompt/conventional_commit.tmpl
请从 Azure 资源管理门户左侧菜单获取 API key
、Endpoint
和 Model deployments
列表。
更新你的配置文件。
codegpt config set openai.provider azure
codegpt config set openai.base_url https://xxxxxxxxx.openai.azure.com/
codegpt config set openai.api_key xxxxxxxxxxxxxxxx
codegpt config set openai.model xxxxx-gpt-4o
你可以使用 Gemini API 或 VertexAI Gemini 服务。参见 Gemini API 文档 和 VertexAI 文档。
请在配置文件中更新以下参数。
选项 | 描述 | 示例值 | 是否必填 | 默认值 |
---|---|---|---|---|
openai.provider | 设置为 gemini 以使用 Gemini 提供商 |
gemini |
是 | |
gemini.api_key | Gemini 或 VertexAI 的 API key | xxxxxxx |
是 | |
gemini.model | 模型名称(参见 Gemini 模型) | gemini-2.0-flash |
是 | |
gemini.backend | Gemini 后端:BackendGeminiAPI (默认,适用于 Gemini API)或 BackendVertexAI (VertexAI) |
BackendGeminiAPI |
否 | BackendGeminiAPI |
gemini.project_id | VertexAI 项目 ID(如使用 BackendVertexAI 必填) |
my-gcp-project |
条件必填 | |
gemini.location | VertexAI 区域(如使用 BackendVertexAI 必填) |
us-central1 |
条件必填 |
codegpt config set openai.provider gemini
codegpt config set gemini.api_key xxxxxxx
codegpt config set openai.model gemini-2.0-flash
# gemini.backend 默认为 BackendGeminiAPI,可省略
codegpt config set openai.provider gemini
codegpt config set openai.model gemini-1.5-pro-preview-0409
codegpt config set gemini.backend BackendVertexAI
codegpt config set gemini.project_id my-gcp-project
codegpt config set gemini.location us-central1
使用 Anthropic API 构建,你可以参见 Anthropic API 文档。在你的配置文件中更新 provider
和 api_key
。请从 Anthropic API 页面创建 API key。
codegpt config set openai.provider anthropic
codegpt config set openai.api_key xxxxxxx
codegpt config set openai.model claude-3-5-sonnet-20241022
参见 Anthropic API 文档 中的模型列表。
请从 Groq API 服务获取 API key
,请访问 这里。在你的配置文件中更新 base_url
和 api_key
。
codegpt config set openai.provider openai
codegpt config set openai.base_url https://api.groq.com/openai/v1
codegpt config set openai.api_key gsk_xxxxxxxxxxxxxx
codegpt config set openai.model llama3-8b-8192
GroqCloud 目前支持 以下模型:
我们可以使用 ollama API 服务中的 Llama3 模型,请访问 这里。在你的配置文件中更新 base_url
。
# 拉取 llama3 8b 模型
ollama pull llama3
ollama cp llama3 gpt-4o
尝试使用 ollama
API 服务。
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'
在你的配置文件中更新 base_url
。你不需要在配置文件中设置 api_key
。
codegpt config set openai.base_url http://localhost:11434/v1
你可以参见 支持的模型列表,模型使用可以由用户、开发者或两者支付,并且可能会在 可用性 上有所变化。你还可以通过 API 获取模型、价格和限制。
以下示例使用免费模型名称:meta-llama/llama-3-8b-instruct:free
codegpt config set openai.provider openai
codegpt config set openai.base_url https://openrouter.ai/api/v1
codegpt config set openai.api_key sk-or-v1-xxxxxxxxxxxxxxxx
codegpt config set openai.model google/learnlm-1.5-pro-experimental:free
要将你的应用程序包含在 openrouter.ai 排名中并在 openrouter.ai 排名中显示,你可以在配置文件中设置 openai.headers
。
codegpt config set openai.headers "HTTP-Referer=https://github.com/appleboy/CodeGPT X-Title=CodeGPT"
有两种方法可以使用 codegpt
命令生成提交信息:CLI 模式和 Git Hook。
你可以直接调用 codegpt
为你的暂存更改生成提交信息:
git add <files...>
codegpt commit --preview
提交信息如下所示。
使用 gpt-4o 模型总结提交信息
我们正在尝试总结 git diff
我们正在尝试总结拉取请求的标题
================提交摘要====================
feat: 在 commit 命令和模板文件中添加预览标志并移除 disableCommit 标志。
- 在 `commit` 命令中添加 `preview` 标志
- 从 `prepare-commit-msg` 模板文件中移除 `disbaleCommit` 标志
==================================================
将提交信息写入 .git/COMMIT_EDITMSG 文件
或将所有 git 提交信息翻译成其他语言(繁体中文
、简体中文
或 日语
)
codegpt commit --lang zh-tw --preview
考虑以下结果:
使用 gpt-4o 模型总结提交信息
我们正在尝试总结 git diff
我们正在尝试总结拉取请求的标题
我们正在尝试将 git 提交信息翻译成繁体中文
================提交摘要====================
功能:重构 codegpt commit 命令标记
- 将「codegpt commit」命令新增「预览」标记
- 从「codegpt commit」命令中移除「--disableCommit」标记
==================================================
将提交信息写入 .git/COMMIT_EDITMSG 文件
你可以使用 --amend
标志创建一个新的提交来替换当前分支的尖端。
codegpt commit --amend
默认提交信息模板如下:
{{ .summarize_prefix }}: {{ .summarize_title }}
{{ .summarize_message }}
使用 --template_string
参数更改模板格式:
codegpt commit --preview --template_string \
"[{{ .summarize_prefix }}]: {{ .summarize_title }}"
使用 --template_file
参数更改模板文件格式:
codegpt commit --preview --template_file your_file_path
向 git 提交信息模板添加自定义变量:
{{ .summarize_prefix }}: {{ .summarize_title }}
{{ .summarize_message }}
{{ if .JIRA_URL }}{{ .JIRA_URL }}{{ end }}
使用 --template_vars
参数向 git 提交信息模板添加自定义变量:
codegpt commit --preview --template_file your_file_path --template_vars \
JIRA_URL=https://jira.example.com/ABC-123
使用 --template_vars_file
参数从文件加载自定义变量:
codegpt commit --preview --template_file your_file_path --template_vars_file your_file_path
参见 template_vars_file
格式如下:
JIRA_URL=https://jira.example.com/ABC-123
你还可以使用 prepare-commit-msg hook 将 codegpt
与 Git 集成。这允许你正常使用 Git 并在提交前编辑提交信息。
你想在 Git 仓库中安装 hook:
codegpt hook install
你想从 Git 仓库中移除 hook:
codegpt hook uninstall
安装后暂存你的文件并提交:
git add <files...>
git commit
codegpt
将为你生成提交信息并将其传回 Git。Git 将使用配置的编辑器打开它供你审查/编辑。然后,要提交,请保存并关闭编辑器!
$ git commit
使用 gpt-4o 模型总结提交信息
我们正在尝试总结 git diff
我们正在尝试总结拉取请求的标题
================提交摘要====================
改进 OpenAI 工具的用户体验和文档
- 添加预编译二进制文件的下载链接
- 包括
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。