samueltuoyo15/Dokugen
Turn your messy repositories into job-ready portfolio pieces. Generate crystal-clear READMEs recruiters actually read, and professional Conventional Commits that make your git history look senior.
Dokugen – AI 驱动的 README 与更新日志生成器
功能简介 – Dokugen 是一款专为开发者设计的工具,它能扫描代码库,将相关文件发送至大型语言模型(Google 的 Gemini,可通过 ApiSmart/OpenAI 兼容 API 访问),并返回一份精美的 README.md。它还能:
- 仅更新 README 中自动生成的部分,同时保留您手动编辑的内容。
- 根据暂存文件的差异(diff)生成符合规范的 Git 提交信息。
- 通过分析提交历史,构建符合 Keep a Changelog 格式的
CHANGELOG.md。 - 保留先前 README 版本的备份,以便您随时还原。
所有功能皆可通过简单的命令行界面(CLI)操作,支持交互式菜单或直接使用子命令。
核心组件
| 组件 | 角色 |
|---|---|
| CLI 客户端 (TypeScript, Python, Go) | 本地入口点,负责收集项目文件、与后端 API 通信,并将生成的 Markdown 写回存储库。 |
| API 服务器 (Node.js + Express) | 接收代码快照,转发至 Gemini 模型,将 AI 输出与现有的 README 合并,并返回结果。 |
| Supabase DB | 存储用户配置文件与生成的 README 备份。 |
| Gemini (或通过 ApiSmart 的任何 OpenAI 兼容模型) | 实际撰写文档与提交信息的 LLM。 |
| Monorepo 工具 (Turborepo, pnpm) | 保持多个包(服务器、CLI 客户端、未来网页 UI)同步。 |
重点功能
- 交互式菜单 – 直接运行
dokugen即可从友好的提示中选择 Generate、Update、Commit、Changelog 等功能。 - 智能更新 – 当您重新运行
dokugen update时,仅会重新整理最初自动生成的部分;您的自定义文本、徽章与注释将保持不变。 - AI 辅助提交 (
dokugen aic) – CLI 会提取暂存文件的git diff,发送至模型,并返回一份符合规范的提交信息,供您确认或编辑后再提交。 - 压缩上传 – 代码经过 70-90% 的压缩以符合 API 负载限制,支持分析大型项目。
- 自动更新日志 (
dokugen changelog) – 扫描存储库的提交历史,并创建/更新符合 Keep a Changelog 规范的CHANGELOG.md。 - 语言无关 – 适用于任何技术栈(JavaScript/TS, Python, Rust, Go, Java, C++ 等),因为 CLI 仅负责读取文件并发送至模型。
开始使用
- 克隆并安装
git clone https://github.com/samueltuoyo15/Dokugen.git cd Dokugen pnpm install # 或 npm/yarn - 运行后端 (需要 Supabase 项目与 API 密钥)
cd apps/server cp .env.example .env # 填入您的密钥 (OpenAI/ApiSmart, Supabase 等) pnpm run dev # 或 pnpm run build && pnpm start - 安装 CLI – 选择全局安装 TypeScript 版本:
或在虚拟环境中安装 Python 版本:cd apps/cli/clients/typescript pnpm run build pnpm install -g .cd apps/cli/clients/python python -m venv .venv && source .venv/bin/activate pip install -e . - 生成 README
您也可以使用dokugen generate # 针对当前文件夹运行 AI 生成--template提供自定义模板 URL。
典型工作流程
$ dokugen # 开启交互式菜单
> Generate README
→ 扫描文件,调用 Gemini,写入 README.md
> AI Commit (aic)
→ 读取暂存差异,获取提交信息,进行提交
> Changelog
→ 从历史记录构建/更新 CHANGELOG.md
如果您不喜欢 AI 的输出,dokugen revert 可立即还原先前的备份。
技术栈概览
- Monorepo – Turborepo
- 后端 – Node.js 18+, TypeScript, Express, Supabase
- AI 模型 – Gemini (或通过 ApiSmart/OpenRouter 的任何 OpenAI 兼容端点)
- CLI 客户端 – TypeScript (Node), Python, Go
- 封装 – pnpm workspaces;提供 Windows/macOS/Linux 的预构建二进制文件
授权与社区
- 授权 – MIT (宽松,适合商业使用)。
- 贡献 – 指南位于
CONTRIBUTION.md;项目欢迎 PR、错误报告与功能建议。 - 作者 – Samuel Tuoyo (LinkedIn, X)。
谁适合使用?
- 希望在不手动撰写的情况下,保持文档一致且最新的开源维护者。
- 需要快速生成符合规范的提交信息以维持干净 Git 历史的团队。
- 任何希望在不同语言栈中自动化生成更新日志的人。
Dokugen 本质上是一个大型语言模型的轻量级封装,将项目文档中重复的部分转化为单一指令操作,同时让开发者保留他们在意的自定义内容。
相关
- 项目
- 项目
- 项目
- 项目