di-sukharev/opencommit
top #1 and most feature rich GPT wrapper for git — generate commit messages with an LLM in 1 sec — works with Claude, GPT and every other provider, supports local Ollama models too
OpenCommit – AI 驱动的提交消息生成器
它是啥 – 一个 Node.js 命令行工具(oco),读取你已暂存的 Git 提交文件,将差异(或整个文件内容)发送给大语言模型,并返回简洁、符合规范的提交消息。消息可包含 GitMoji 表情符号、简短描述,以及可选的“为何”说明。
如何工作 –
- 你全局安装该包(
npm i -g opencommit)。 - 为任意支持的 LLM 提供商(OpenAI、Anthropic、Azure、Ollama、llama.cpp、Gemini、Flowise、DeepSeek、OpenRouter、OrcaRouter 等)提供 API 密钥。
- 运行
oco(或git add … && oco)会通过提供商的 REST 端点将暂存的变更发送给选定的模型。 - 模型返回提交消息,工具将其传递给
git commit -m "..."。可选标志可让你跳过确认提示、添加表情符号,或强制使用单行消息。
主要功能(如 README 所述)
- 多提供商支持 – 支持云 API(OpenAI、Anthropic、Azure 等)和通过 Ollama 或 llama.cpp 服务器运行的本地模型。
- 可配置模型与语言 – 默认为
gpt-4o-mini;可切换为提供商支持的任意模型名称,并设置输出语言(如de、fr)。 - GitMoji 集成 – 使用
--fgm启用 10 个简短表情符号或完整 GitMoji 规范。 - 提交钩子与 GitHub Action –
oco hook set安装prepare-commit-msg钩子;Beta 版 GitHub Action 可在推送时重写新提交。 - 项目级与全局配置 – 存储在
~/.opencommit或项目中的.env文件;支持多种配置项(OCO_EMOJI、OCO_DESCRIPTION、OCO_WHY、令牌限制、代理等)。 - 忽略文件 –
.opencommitignore(本地)和~/.opencommitignore(全局)可排除大文件或密钥,避免发送给 LLM。 - 模型管理 –
oco models列出缓存的提供商模型;--refresh强制更新。 - 模板占位符 – 可在大模板中嵌入自定义字符串(
$msg),例如oco '#205: $msg'。
典型工作流
# 一次性安装
global npm i -g opencommit
# 设置 API 密钥(每台机器或每个项目一次)
oco config set OCO_API_KEY=sk-…
# 暂存变更(或让 oco 自动处理)并生成提交
git add .
oco # 打开确认提示
# 或跳过确认
oco --yes
使用本地模型(Ollama 示例):
ollama run mistral # 只拉取一次模型
oco config set OCO_AI_PROVIDER=ollama OCO_MODEL=llama3:8b
oco
GitHub Action 使用 – 按 README 所示添加 .github/workflows/opencommit.yml;该动作将使用配置的模型和选项在推送时重写每个新提交。
为何重要 – 编写清晰、规范的提交消息很繁琐。OpenCommit 自动化该过程,确保一致性、更好的变更日志和更顺畅的协作,同时让开发者掌控风格、语言和成本。
安装 – npm install -g opencommit
文档 – 仓库的 README(命令:oco、oco config、oco hook、oco models 等)
许可证 – 摘录中未说明;请查看仓库获取实际许可证。
相关
- 项目
- 项目
- 项目
- 项目
- 项目