将Mac上的任何GitHub存储夹或文件夹转换为简单的文本文件,以便您可以将其上传到LLM(Claude,Chatgpt等),以在上下文窗口中对整个内容进行推理。
诸如ChatGpt和Claude之类的LLM可让您上传文件,但是它们可以一次限制您可以一次上传的文件。当您处理具有大量文件的大型代码库时,您不能直接将其上传到LLM。您最终必须使用抹布(检索增强生成)技术,从我的经验中,这不像将所有内容上传到完整的上下文窗口中一样有效,尤其是当您需要推理架构或理解整个系统时。请参见示例。
诸如光标之类的助手是Amazeballs,但是它们在日常代码完成和内联编辑方面的工作效果要好于对高级系统的理解。
AND / OR条件自定义您的纳入标准,以准确定位您需要进行的重点分析所需的内容。 选择您的冒险:
curl -fsSL https://raw.githubusercontent.com/mattmireles/flatty/main/install_flatty.sh | bash -s -- --quickcurl -fsSL https://raw.githubusercontent.com/mattmireles/flatty/main/install_flatty.sh | bash偏执安装(默认)包括校验和验证和完整的安全检查。快速安装跳过这些检查,以了解“我喜欢危险地生活”人群。
基本用法很简单:
cd your-project-directory
flatty这将在~/Documents/flatty/包含所有项目的文本文件中创建一个格式良好的文本文件,可以使用LLM的消费。
通过指定模式和条件来控制扁平输出中所包含的内容。此功能使您可以专注于代码库的特定部分,从而提高效率和相关性。
命令行参数:
--pattern "pattern1" :指定用于过滤文件的模式或关键字。您可以使用多个--pattern使用多个模式。--condition AND|OR :定义应如何匹配多种模式。AND :所有指定的模式必须存在于文件中(文件名或内容中)。OR :必须存在任何指定模式。示例:
包括包含useEffect或async function文件:
flatty --pattern " useEffect " --pattern " async function " --condition OR包括包含useEffect和async function文件:
flatty --pattern " useEffect " --pattern " async function " --condition AND在文件名中包含带有README文件:
flatty --pattern " README " --condition OR默认行为没有模式(包括所有合格的文本文件):
flatty行为:
Flatty聪明地跳过:
node_modules , vendor ).git.DS_Store ) 平坦的文本文件保存在~/flattened/目录中,并使用格式为:
<project-name>-v<version>-<timestamp>.txt
每个输出文件都包括:
由Talktastic用❤️开发
欢迎捐款!请打开问题或提交任何增强功能或错误修复的拉请请求。
为了保持flatty.sh脚本的完整性,并确保始终是最新的校验和文件( flatty.sh.sha256 ),贡献者应设置一个预先承诺的git挂钩。此挂钩在每个提交之前会自动生成和更新校验和。
设置预加入挂钩的步骤:
导航到Git HookS目录:
cd .git/hooks创建或编辑pre-commit挂钩:
cursor pre-commit将以下脚本添加到pre-commit文件中:
#! /bin/bash
# Generate SHA256 checksum for flatty.sh
sha256sum flatty.sh > flatty.sh.sha256
# Add the checksum file to the commit
git add flatty.sh.sha256使钩可执行:
chmod +x pre-commit说明:此挂钩flatty.sh.sha256每次修改flatty.sh 。这维护了安装脚本的完整性验证过程。
麻省理工学院