大家好,分享一个 AI 写的小工具 vChangelog:从 Git 历史里自动提取两个版本之间的提交记录,并生成可读的 Changelog ;如果你愿意,还可以用 AI 把零散 commits 合并成更像“发布说明”的文本。
当然这篇推广文也是 ai 写的
你可能遇到的痛点
- [痛点] 发版前手工整理
git log,费时还容易漏 - [痛点] 提交记录太碎,直接贴出去不够“人话”
- [痛点] 想要 Markdown 、想复制到剪贴板、想中英文切换,还要自己再加工
vChangelog 做了什么
- [版本识别] 自动扫描 Git 历史中“看起来像版本号”的提交标题作为版本点(例如
1.0.6+71、v1.2.3、2.0.0-beta.1) - [区间生成] 一条命令输出
from_version -> to_version之间的变更 - [按类型分组] 支持 Conventional Commits 风格(如
feat(scope): ...、fix: ...),自动归类为 Features / Bug Fixes / Performance / Chores 等 - [输出格式] 支持纯文本 / Markdown
- [效率增强] 支持一键复制到剪贴板( macOS 使用
pbcopy) - [可选 AI 总结] 通过 OpenAI 兼容的 Chat Completions 接口,把碎提交合并成更像发布说明的表达(支持中英文)
- [emoji 开关] 输出是否带 emoji 可配置,且默认关闭(更适合严肃风格的论坛/邮件)
快速上手
安装
bash ./install.sh
常用命令
# 生成两个版本之间的 changelog
vchangelog 1.0.0 1.0.1
# 最近两个版本
vchangelog --latest
# Markdown 输出
vchangelog --latest -f md
# 一键复制到剪贴板( macOS )
vchangelog --latest --copy
# 使用 AI 总结
vchangelog --latest --ai
配置 AI (可选)
vchangelog --config
需要填:
- [参数]
url:完整接口路径(例如 OpenAI 的 chat/completions ) - [参数]
key:API Key - [参数]
model:模型名 - [参数]
lang:zh或en - [参数]
emoji:是否启用 emoji (默认n)
emoji 开关(你关心的点)
- [默认] 默认不带 emoji
- [临时开启]
vchangelog ... --emoji - [临时关闭]
vchangelog ... --no-emoji - [长期配置] 运行
vchangelog --config设置Emoji (y/n)