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,让模型能“看见”整个代码库以进行分析、调试或审查。
如何使用
- 使用
npx ai-digest安装/运行 CLI(或使用npm i ai-digest并从脚本中调用)。 - 选择选项,例如:
-i/--input指定一个或多个目录。-o指定输出文件名。--whitespace-removal缩减文本大小。--ignore-file/--minify-file提供.aidigestignore和.aidigestminify模式文件。--watch在编辑时保持 Markdown 更新。--show-output-files查看每个文件大小的柱状图。
- 工具会创建一个 Markdown 文件,将每个源代码文件包裹在代码块中,并为压缩(即列出但未完整包含)的文件提供占位符。
- 将该 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,您可以自由使用或修改。
相关
- 项目
- 项目
- 项目
- 项目