AI个人学习
和实操指南
阿里绘蛙

code2prompt:将代码库转换为大模型可理解的prompt文件

综合介绍

code2prompt 是一个开源的命令行工具,由开发者 Mufeed VH 创建并托管在 GitHub 上,旨在帮助用户将整个代码库快速转换为适合大语言模型(LLM)的提示(prompt)。它通过遍历代码目录、生成源代码树结构并整合文件内容,生成格式化的 Markdown 输出,支持用户直接用于代码分析、文档生成或功能改进等任务。该工具支持 Handlebars 模板定制、token 计数统计以及 Git 差异整合,特别适合开发者利用大模型(如 ChatGPT 或 Claude)处理复杂代码库。无论是优化性能、查找漏洞还是生成提交信息,code2prompt 都能大幅提升效率。截至 2025 年 3 月 3 日,该项目已有超过 4500 个星标,显示出其在开发者社区中的广泛认可。

code2prompt:将代码库转换为大模型prompt的命令行工具-1


 

功能列表

  • 代码库转换:将指定目录的代码文件整合为单一 LLM 可读的提示。
  • 源代码树生成:自动生成代码目录的树状结构,便于理解项目布局。
  • 模板定制:通过 Handlebars 模板自定义输出格式,支持多种使用场景。
  • Token 计数:统计生成提示的 token 数,确保适配不同模型的上下文限制。
  • Git 集成:支持添加 Git diff 和 log,展示代码变更历史。
  • 文件过滤:支持 glob 模式过滤文件,忽略无关内容如 .gitignore。
  • Markdown 输出:生成结构化的 Markdown 文档,方便直接上传至 LLM。
  • 跨平台支持:在 Linux、macOS 和 Windows 上运行稳定。
  • 剪贴板支持:自动将生成的提示复制到剪贴板,提升操作效率。

 

使用帮助

安装流程

code2prompt 是用 Rust 编写的命令行工具,安装过程简单,支持多种方式。以下是详细步骤:

方法 1:通过源码安装

  1. 前提条件:确保系统中已安装 Rust 和 Cargo(Rust 的包管理器)。可以通过以下命令检查:
    rustc --version
    cargo --version

如果未安装,可访问 Rust 官网 下载并安装。
2. 克隆仓库

git clone https://github.com/mufeedvh/code2prompt.git
cd code2prompt
  1. 编译与安装
    cargo build --release
    

    编译完成后,可在 target/release/ 目录下找到 code2prompt 可执行文件。

  2. 移动到全局路径(可选):将文件移动到系统路径以便全局调用,例如:
    sudo mv target/release/code2prompt /usr/local/bin/
    

方法 2:通过预编译二进制文件

  1. 访问 GitHub Releases 页面,下载适合你操作系统的最新版本二进制文件(如 code2prompt-v2.0.0-linux-x86_64)。
  2. 解压并赋予执行权限:
    chmod +x code2prompt
    
  3. 移动到全局路径(可选):
    sudo mv code2prompt /usr/local/bin/
    

方法 3:通过 Nix 安装

如果你使用 Nix 包管理器,可以直接安装:

# 无 flakes
nix-env -iA nixpkgs.code2prompt
# 有 flakes
nix profile install nixpkgs#code2prompt

使用方法

安装完成后即可通过命令行运行 code2prompt。以下是主要功能的详细操作流程:

1. 基本使用:生成代码库提示

假设你有一个代码目录 /path/to/codebase,运行以下命令:

code2prompt /path/to/codebase
  • 输出将包含源代码树和所有文件内容,默认以 Markdown 格式生成并复制到剪贴板。
  • 示例输出:
    Source Tree:
    

    dir/
    ├── file1.rs
    └── file2.py

    `dir/file1.rs`:
    <文件内容>
    

2. 自定义模板

code2prompt 提供内置模板(如生成 git 提交信息、文档注释等),位于安装目录的 templates/ 文件夹中。你也可以创建自定义模板。例如,使用 document-the-code.hbs 添加文档注释:

code2prompt /path/to/codebase -t templates/document-the-code.hbs
  • 自定义模板需遵循 Handlebars 语法,变量包括 absolute_code_path(代码路径)、source_tree(源代码树)和 files(文件列表)。

3. Token 计数与编码选择

查看生成的提示 token 数,支持多种分词器:

code2prompt /path/to/codebase --tokens -c cl100k
  • 可选分词器:cl100k(默认)、p50kp50k_editr50k

4. Git 集成

添加 Git diff(已暂存文件):

code2prompt /path/to/codebase --diff

比较两个分支的差异:

code2prompt /path/to/codebase --git-diff-branch "main, development"

获取分支间的提交日志:

code2prompt /path/to/codebase --git-log-branch "main, development"

5. 文件过滤

排除特定文件或目录:

code2prompt /path/to/codebase --exclude "*.log" --exclude "tests/*"

仅包含特定文件:

code2prompt /path/to/codebase --include "*.rs" --include "*.py"

6. 保存输出

将结果保存为文件而非仅复制到剪贴板:

code2prompt /path/to/codebase -o output.md

操作示例

假设你想为一个 Python 项目生成性能优化建议:

  1. 运行命令:
    code2prompt /path/to/project -t templates/improve-performance.hbs -o prompt.md
    
  2. 将 prompt.md 内容上传至 Claude 或 ChatGPT,输入:“根据这个代码库,提出性能优化建议。”
  3. 获取模型返回的优化方案,如循环优化、内存管理建议等。

注意事项

  • 如果剪贴板功能在某些系统(如 Ubuntu 24.04)失效,可输出到终端并手动复制:
    code2prompt /path/to/codebase -o /dev/stdout | xclip -selection c
    
  • 检查 .gitignore 文件,确保无关文件被正确忽略(可用 --no-ignore 禁用)。

通过以上步骤,你可以快速上手 code2prompt,轻松将代码库转为大模型可用的提示,完成从分析到优化的全流程。

CDN1
未经允许不得转载:首席AI分享圈 » code2prompt:将代码库转换为大模型可理解的prompt文件

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文