README.md
June 22, 2026 · View on GitHub
本地优先的 Git 工作报告生成器
Local-first Git work reports — turn scattered commits into daily, weekly, custom & monthly reports in one click.
把散落在多个仓库里的提交,一键变成可直接交付的日报、周报、自定义区间报告和绩效月报。数据全程不出本机。
▲ 操作流程演示 · 点此查看高清 MP4
🌟 为什么是 GitPulse
每到周五、月底,写日报和绩效月报都是一件麻烦事:要翻多个仓库的 git log、手动拼凑、再润色成人话。GitPulse 把这件事自动化——
- 本地优先:所有扫描、提取、生成都在本机用 Rust 完成,提交记录与 API Key 不上传任何服务器。
- 多仓库聚合:指向工作区目录,自动发现下面所有 Git 仓库,按作者和时间一次性汇总。
- 直接能交付:输出按项目分组、结构清晰的报告,可一键复制进周报系统,或导出 Markdown、Word、PDF 文件。
- 轻量:基于 Tauri,安装包小、启动快,不依赖 Python 或任何运行时。
✨ 功能特性
| 🔍 仓库扫描 | 扫描工作区目录下的所有 Git 仓库,自动读取本机 git 作者 |
| 📅 灵活提取 | 按作者、日期区间、当前分支或全部分支提取 commit |
| 🏷️ 项目名映射 | 把仓库名/分支映射成中文项目名,例如 api-service(*) -> 后端服务- |
| 📰 日报 / 周报 | 一键生成当天提交摘要,也可按本周生成项目分组周报 |
| 🗓️ 自定义区间 | 任意起止日期生成报告 |
| 📊 绩效月报 | 可选择任意月份生成月报,按项目拆分为「项目进度 / 实际完成情况 / 当月总结」 |
| 🤖 AI 润色(可选) | 接入 OpenAI 兼容或 Anthropic 原生接口,把流水账润色成绩效;失败自动回退本地模板 |
| 📋 预览 / 复制 / 导出 | 实时预览、一键复制到剪贴板、按需导出 Markdown、Word 文档或 PDF |
| 🌗 明暗主题 | 跟随系统自动切换深色 / 浅色 |
| ⬆️ 在线更新 | 支持 Windows x86_64 在应用内检查并安装更新 |
📦 下载与安装
直接下载(推荐)
前往 Releases 下载对应平台的安装包:
- Windows —
.exe(NSIS 安装包),安装后可在应用内一键检查更新 - macOS —
.dmg(通用包,同时支持 Apple Silicon 与 Intel) - Linux —
.AppImage(单文件,chmod +x后直接运行)
macOS 首次打开:当前 macOS 包未做 Apple 签名,首次启动可能被 Gatekeeper 拦截。请右键点按 GitPulse.app 选「打开」,或在终端执行:
xattr -dr com.apple.quarantine /Applications/GitPulse.app自动更新目前仅 Windows 支持;macOS / Linux 请到 Releases 页面手动下载新版本。
从源码构建
git clone https://github.com/GoldenZqqq/GitPulse.git
cd GitPulse
npm install
npm run tauri build # 产物位于 src-tauri/target/release/bundle/
🚀 快速开始
首次启动会有引导流程,整体只需四步:
- 选择工作区目录 — 指向你存放代码的根目录,GitPulse 自动扫描其中的所有 Git 仓库。
- 确认作者与范围 — 自动读取本机 git 作者(也可手动填写),选择日期区间与分支范围。
- 一键生成 — 选择「日报 / 周报 / 自定义区间 / 绩效月报」,提交记录会按项目分组汇总成报告。
- 复制或保存 — 预览结果,一键复制到剪贴板,或按需保存为 Markdown、Word、PDF;需要的话开启 AI 润色。
项目名映射:在设置里维护映射规则,把仓库或分支变成可读的项目名。 支持
project(branch) -> 显示名-与project(*) -> 显示名-两种格式,例如api-service(*) -> 后端服务-。
🤖 AI 润色
在设置中开启 AI 润色后,按服务填写以下内容即可:
- 协议:
OpenAI Compatible或Anthropic Native - Base URL:例如
https://api.openai.com/v1或https://api.anthropic.com/v1 - API Key:输入一次后自动保存到系统凭据库;也可填写
OPENAI_API_KEY/env:OPENAI_API_KEY这类环境变量引用 - 模型:可手动填写,或点「获取模型」从服务返回列表中选择
真实 API Key 和 ChatGPT 登录态不会写入普通设置文件,而是交给系统凭据库保存。清空输入框会删除已保存密钥。如果 AI 调用失败,应用会自动回退到本地月报模板,不影响出报告。
🛠️ 技术栈
Tauri 2 · React 19 · Vite · Rust · lucide-react
src/— React 前端(状态、布局、预览、交互)src-tauri/src/git_ops.rs— 本地 Git 仓库发现与提交提取(Rust)src-tauri/src/report.rs— 报告渲染与文件输出src-tauri/src/ai.rs— 可选的 OpenAI 兼容 / Anthropic 原生润色src-tauri/src/lib.rs— Tauri 命令
旧版 Python/Tkinter 实现已归档在分支
codex/legacy-python-desktop。
🧑💻 本地开发
npm install # 安装依赖
npm run tauri dev # 启动桌面应用(开发模式)
npm run dev # 仅启动前端(浏览器预览)
npm run verify:release # 发版前检查
npm run tauri build # 构建安装包
官网本地预览:
cd site
npm install
npm run dev
官网使用 Astro 6,建议使用 Node.js 22.12+。site/.node-version 已声明当前验证版本,mise / asdf / nodenv 等工具可自动读取。官网采用路径型国际化:/GitPulse/ 会按浏览器语言或用户上次选择跳转到 /GitPulse/zh-CN/ 或 /GitPulse/en/。
提交前的校验:
npm run build
cd src-tauri && cargo check && cargo test
版本号同步、发版与在线更新的完整流程见 CONTRIBUTING.md。
🤝 贡献
欢迎 Issue 与 PR!开发规范、验证步骤与发布流程请见 CONTRIBUTING.md。
📄 许可证
基于 MIT 许可证开源。
如果 GitPulse 帮你省下了写日报的时间,点个 ⭐ Star 支持一下吧!