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 表情符号、简短描述,以及可选的“为何”说明。

如何工作

  1. 你全局安装该包(npm i -g opencommit)。
  2. 为任意支持的 LLM 提供商(OpenAI、Anthropic、Azure、Ollama、llama.cpp、Gemini、Flowise、DeepSeek、OpenRouter、OrcaRouter 等)提供 API 密钥。
  3. 运行 oco(或 git add … && oco)会通过提供商的 REST 端点将暂存的变更发送给选定的模型。
  4. 模型返回提交消息,工具将其传递给 git commit -m "..."。可选标志可让你跳过确认提示、添加表情符号,或强制使用单行消息。

主要功能(如 README 所述)

  • 多提供商支持 – 支持云 API(OpenAI、Anthropic、Azure 等)和通过 Ollama 或 llama.cpp 服务器运行的本地模型。
  • 可配置模型与语言 – 默认为 gpt-4o-mini;可切换为提供商支持的任意模型名称,并设置输出语言(如 defr)。
  • GitMoji 集成 – 使用 --fgm 启用 10 个简短表情符号或完整 GitMoji 规范。
  • 提交钩子与 GitHub Actionoco hook set 安装 prepare-commit-msg 钩子;Beta 版 GitHub Action 可在推送时重写新提交。
  • 项目级与全局配置 – 存储在 ~/.opencommit 或项目中的 .env 文件;支持多种配置项(OCO_EMOJIOCO_DESCRIPTIONOCO_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(命令:ocooco configoco hookoco models 等) 许可证 – 摘录中未说明;请查看仓库获取实际许可证。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目