code2prompt:883⭐的代码转LLM上下文工具
代码库越来越复杂,如何让 LLM 快速理解项目结构?code2prompt 提供了一种优雅的解决方案。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | raphaelmansuy/code2prompt |
| Stars | 883 |
| 语言 | Python |
| 特点 | 代码转Markdown、.gitignore 过滤、模板支持 |
| 最后更新 | 2025年6月 |
它解决了什么问题
开发者经常需要:
- 向 ChatGPT/Claude 询问代码问题,但复制粘贴太麻烦
- 希望 AI 审查整个项目的架构设计
- 需要生成代码文档或README
- 在多个文件间建立上下文关联
code2prompt 把整个代码库打包成一份结构清晰的 Markdown 文件,LLM 可以一次性理解项目全貌。
核心功能
智能过滤
- 自动遵循
.gitignore规则,排除 node_modules、pycache 等 - 支持自定义包含/排除模式
- 按文件类型过滤(如只提取 .ts 和 .json)
结构化输出
- 生成目录树,展示项目结构
- 每个文件用代码块包裹,标注路径
- 可选文件统计信息(行数、大小)
模板引擎
- 内置多种提示模板
- 支持自定义 Jinja2 模板
- 常见场景:代码审查、文档生成、Bug 分析
Token 优化
- 估算生成内容的 Token 数量
- 避免超出 LLM 上下文限制
快速开始
# 安装
pip install code2prompt
# 基础用法
code2prompt /path/to/your/project
# 排除测试文件
code2prompt . --exclude "*.test.js,*.spec.ts"
# 使用模板生成代码审查提示
code2prompt . --template code_review
工具对比
| 工具 | Stars | 特点 |
|---|---|---|
| gpt-repository-loader | 1.2k | 早期工具,功能单一 |
| repomix | 2.8k | TypeScript 重写,功能丰富 |
| code2prompt | 883 | Python 实现,模板灵活 |
code2prompt 的优势在于模板系统。你可以定义 “生成 API 文档”、“寻找潜在 Bug”、“解释架构” 等专用模板,一键生成针对性提示词。
适用场景
- 代码审查:让 AI 检查代码规范、潜在问题
- 文档生成:从源码自动生成技术文档
- Onboarding:帮助新成员快速理解项目结构
- Bug 分析:将错误上下文完整提供给 LLM
注意事项
- 处理大型仓库时注意 Token 限制(建议先用
--filter缩小范围) - 敏感代码谨慎上传至外部 LLM 服务
- 模板语法使用 Jinja2,需要简单学习
总结
code2prompt 是一个专注解决单一问题的工具:让 LLM 理解你的代码库。它不追求功能大而全,而是把 “代码转 Markdown” 这件事做到极致。如果你经常需要与 AI 讨论代码,这个 883⭐ 的小工具值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/raphaelmansuy/code2prompt |
| 许可证 | MIT |
| 语言 | Python |
| 维护者 | @raphaelmansuy |