khromov/ai-digest

A CLI tool to aggregate your codebase into a single Markdown file for use with Claude Projects or custom ChatGPTs.

ai‑digest

功能说明

  • 这是一个命令行工具(及 Node 库),能遍历项目文件,通过忽略/压缩规则进行筛选,选择性地移除空白字符,并将所有内容写入单个 Markdown 文档 (codebase.md)。
  • 生成的 Markdown 可上传至 Claude Projects 或自定义 ChatGPT,让模型能“看见”整个代码库以进行分析、调试或审查。

如何使用

  1. 使用 npx ai-digest 安装/运行 CLI(或使用 npm i ai-digest 并从脚本中调用)。
  2. 选择选项,例如:
    • -i / --input 指定一个或多个目录。
    • -o 指定输出文件名。
    • --whitespace-removal 缩减文本大小。
    • --ignore-file / --minify-file 提供 .aidigestignore 和 .aidigestminify 模式文件。
    • --watch 在编辑时保持 Markdown 更新。
    • --show-output-files 查看每个文件大小的柱状图。
  3. 工具会创建一个 Markdown 文件,将每个源代码文件包裹在代码块中,并为压缩(即列出但未完整包含)的文件提供占位符。
  4. 将该 Markdown 上传至 Claude 或自定义 GPT 的知识库,然后开始对话。

主要特色

  • 默认忽略模式(构建产物、配置文件)加上自定义 .aidigestignore 支持。
  • 压缩模式 (.aidigestminify) 可将大型文件替换为简短的占位符;使用库时可通过回调函数自定义占位符。
  • 空白字符移除(对 Python/YAML 等对空白敏感的语言会自动停用)以减少 Token 数量。
  • 文件大小统计,包含可视化柱状图;可按大小排序。
  • 监控模式 (Watch mode) – 文件变更时自动重建 Markdown。
  • 库 API – 所有 CLI 功能皆以异步函数 (generateDigest, generateDigestFiles, getFileStats 等) 形式公开,供程序化使用。

适用对象

  • 希望在不手动压缩或复制文件的情况下,让 LLM 完整查看代码库的开发者。
  • 正在构建自定义 ChatGPT 代理或 Claude Projects,且需要精简、Token 高效的源代码表示法的团队。

典型工作流程

# 从仓库根目录执行
npx ai-digest            # 创建 codebase.md
# 在 Claude UI → New Project → 上传 codebase.md
# 或在 ChatGPT → Custom GPT → 上传相同文件

限制

  • 此工具仅聚合文本文件;二进制/SVG 文件会被标注但不会嵌入。
  • 对于会改变语义的语言,空白字符移除功能会被跳过。
  • 提供 Token 估算值,但仍受限于实际模型限制。

授权

  • MIT,您可以自由使用或修改。

相关

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