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 仅负责读取文件并发送至模型。

开始使用

  1. 克隆并安装
    git clone https://github.com/samueltuoyo15/Dokugen.git
    cd Dokugen
    pnpm install   # 或 npm/yarn
    
  2. 运行后端 (需要 Supabase 项目与 API 密钥)
    cd apps/server
    cp .env.example .env   # 填入您的密钥 (OpenAI/ApiSmart, Supabase 等)
    pnpm run dev   # 或 pnpm run build && pnpm start
    
  3. 安装 CLI – 选择全局安装 TypeScript 版本:
    cd apps/cli/clients/typescript
    pnpm run build
    pnpm install -g .
    
    或在虚拟环境中安装 Python 版本:
    cd apps/cli/clients/python
    python -m venv .venv && source .venv/bin/activate
    pip install -e .
    
  4. 生成 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 本质上是一个大型语言模型的轻量级封装,将项目文档中重复的部分转化为单一指令操作,同时让开发者保留他们在意的自定义内容。

相关

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