GitHub 存储库到文本转换器

将 GitHub 存储库转换为 LLM 可以读取的单个文本文件。选择您需要的文件,观察标记计数,然后将结果粘贴到 ChatGPT、Claude 或 Gemini 中。免费,无需注册。

GitHub 存储库到文本:将整个存储库转换为 LLM 可以读取的一个文件

在上面粘贴 GitHub URL,您将在复选框列表中获得存储库的文件树。勾选什么 重要的是,生成,并且您有一个文本文件:顶部的目录结构,然后是每个 下面选择的文件,由标题及其路径分隔。这是适用的格式 ChatGPT、Claude、Gemini、DeepSeek 或您粘贴到的任何其他内容 — 模型会看到 项目和代码同时存在,因此它可以推理各个部分如何组合在一起,而不是 孤立地从一个文件中猜测。

无需克隆,无需安装,无需注册,而且是免费的。通过 GitHub 读取存储库 直接从浏览器获取 API,因此您根本不需要计算机上的项目 — 这就是 当您查看其他人的代码、您正在评估的依赖项或您的存储库时 刚刚被授予访问权限。

粘贴 URL,包括分支或标签

平原 https://github.com/owner/repo 表单可以工作并为您提供默认分支。但是 该 URL 包含的内容远不止这些,而且值得使用。浏览时复制地址栏 GitHub 以及您正在查看的任何内容都会遇到:

  • 一个分行/tree/develop 或功能分支,因此您可以将 正在进行的工作而不是主要工作。
  • 标签或版本/tree/v2.1.0。当您询问有关问题时很有用 您实际发布的版本,或者通过转换每个版本来区分对话中的两个版本。
  • 一个子目录/tree/main/packages/api。这就是拯救者 你在 monorepo 中。从你关心的包裹开始,你取回的树已经是 范围,而不是一万个文件,然后你必须取消勾选。

如果分支或路径不存在,您会被告知哪个部分未解析,这通常是 您正在使用的令牌私有的分支名称或存储库中的拼写错误。

私人存储库以及您的代币去向

私人存储库使用 GitHub 个人访问令牌。在您的 GitHub 开发人员中生成一个 对您需要的存储库具有读取访问权限的设置 - 范围仅限于单个存储库的细粒度令牌 就足够了,这是值得采取的选择。将其粘贴到令牌字段中,树会加载 和公共的一样。

该令牌保存在您的浏览器中 localStorage 这样您就不必每次访问都重新输入,并且 它只到一个地方: api.github.com,在请求标头中,来自您自己的 机。这里没有帐户可以将其附加到,并且路径中没有我们的后端。清除字段 并将其从存储中删除。在共享计算机上,如果需要,请在完成后清除它 确定性后,撤销 GitHub 中的令牌 - 这是一个一键操作,并且需要您付费 什么也没有。

代币也有助于公共回购。未经身份验证的 GitHub API 请求受到相当的速率限制 积极地,因此如果您要转换大型存储库或连续多个存储库,添加令牌就是 它工作和你等待一个小时之间的区别。

生成之前取消勾选哪些内容

这是决定输出是否有用的步骤。存储库包含许多文件 出于充分的理由进行跟踪,但作为模型上下文仍然毫无价值。穿过树并掉落:

  • 供应的依赖项node_modules, vendor, third_party。在回购中很少见,但一旦存在就会具有毁灭性。这是别人的来源 代码,它会淹没你的。
  • 构建输出dist, build, out, .next, target,报道报道。再次编译您自己的代码或 缩小了,因此模型会读取所有内容两次,并且第二次不会学到任何新内容。
  • 锁文件package-lock.json, yarn.lock, poetry.lock, Cargo.lock。数以万计的哈希令牌 它们几乎没有任何意义。而是保留清单; package.jsonpyproject.toml 是告诉模型你在哪个堆栈上的。
  • 生成的代码 — protobuf 和 gRPC 输出、GraphQL 代码生成、OpenAPI 客户端、 数据库迁移、快照测试。机器编写的、重复的,它将模型推向 编辑无论如何都会重新生成的文件。
  • 大数据文件 — 固定装置、种子转储、示例 CSV、提交的压缩包 几年前。其中之一可以自己吃掉一个上下文窗口。

当存储库很大时,通过扩展进行过滤是快速途径:缩小到 .ts.tsx, 或 .py,您一步就消除了大部分噪音。然后添加回来 解释该项目的少数配置和文档文件 - 自述文件、主配置、 架构。

令牌计数器是重要的部分

生成的输出带有令牌计数,计算公式为 gpt-tokenizer 图书馆 而不是字符除以四的估计。粘贴前检查一下。知道是否转储 适合您将要使用的上下文窗口是整个游戏 - 另一种选择是粘贴,等待, 并读取长度错误。

用它来引导,而不仅仅是检查。如果计数是您的空间的两倍,请返回到 树并取消勾选目录而不是在末尾截断文件,因为转储会切断 项目中期留下的模型只有一半的实现,并且不知道它丢失了。并牢记 大上下文窗口与好的上下文窗口不同:集中的 8,000 个令牌选择 - 模块, 它的测试以及它导入的两个文件 — 通常超过 200,000 个代币。发送整个 当问题是架构问题时,使用 repo;当问题是本地问题时,使用切片。

准备好后,将文本复制到剪贴板,将其下载为 .txt,或者抓住 如果您希望将所选文件作为文件而不是作为一个合并文档,则可以将选定的文件作为 ZIP 格式。

如何使用

人们实际上用它做什么

  • 进入一个不熟悉的代码库。 新工作、新团队或开源 您想要贡献的项目。转换它,粘贴它,并询问入口点,核心 抽象,以及让新维护者感到惊讶的三件事。你就会有方向感 比阅读 README 并点击一天的文件要快。
  • 审查拉取请求及其周围环境。 差异显示了发生了什么变化,但是 不是它所触及的东西。转换分支,或者只是受影响的包,并询问还有什么调用 更改的函数以及新代码对此做出的假设。
  • 编写实际上是真实的文档。 自述文件因编写而腐烂 一次。生成架构概述、模块摘要或真实环境列表 今天 main 上存在的代码中的变量。
  • 生成测试。 包含该模块以及一个现有的测试文件作为一种样式 参考。该模型与您的框架、您的命名和您的装置相匹配,而不是发明 团队中没有人使用的约定。
  • 迁移和重构规划。 类组件到钩子,JavaScript 到 TypeScript,一种 ORM 到另一种。一个可以看到每个调用站点的模型会产生一个真实的序列 步骤而不是通用清单。
  • 审计和尽职调查。 评估您正在继承、获取的存储库, 或将其视为依赖项。合并的文件使得询问秘密在哪里变得实用 处理情况、错误路径是什么样的以及风险模式存在于何处。
  • RAG 和嵌入。 路径分隔的部分干净地分块,因此输出下降 只需很少的预处理即可将其存储到向量存储中。

常见问题解答

如何将 GitHub 存储库转换为文本文件?

粘贴上面的存储库 URL,文件树将显示为复选框列表。取消选中模型不需要的内容,生成,然后您将获得一个文本文件:顶部的目录结构,然后是标题下的每个选定文件及其路径。无需克隆,无需安装,免费且无需注册。

如何转换私有 GitHub 存储库?

将个人访问令牌粘贴到 URL 旁边。创建一个细粒度令牌,其范围仅限于具有只读内容权限和短期到期的一个存储库 - 这是 API 为此接受的最小权限。该令牌用于从您的浏览器调用 GitHub,并且不存储在我们这边。

我的代码库有多少个令牌,它适合吗?

计数器会在您勾选文件时更新,因此您可以在粘贴任何内容之前看到该数字。作为粗略的指导,源代码每个标记运行大约 3 到 4 个字符,因此 500 KB 的选择大约有 140,000 个标记。这适合 200K 上下文窗口,但不适合大多数界面上的单个聊天消息。

在将存储库提供给 LLM 之前,我应该排除哪些文件?

node_modules, vendor,以及任何依赖项目录——它们通常占绝大多数字节,对您的代码没有任何贡献。然后是锁定文件、构建输出、缩小的捆绑包、测试装置和二进制资产。在典型的 JavaScript 项目中,单独传递通常会删除百分之九十以上的令牌。

这与 gitingest、repomix 或 code2prompt 相比如何?

这些都是强大的工具,真正的区别在于工作流程,而不是能力。它们首先是命令行,可编写脚本,是 CI 或批处理作业中的正确答案。它在带有复选框树的浏览器选项卡中运行,因此您可以查看存储库,取消选择您不需要的内容,并观察令牌计数的变化 - 更适合您仍在决定包含哪些内容的一次性情况。

让我的代码通过这个安全吗?

公共存储库是通过浏览器中的 GitHub API 读取的,因此代码从 GitHub 发送给您。对于任何机密的事情,更强的选择是 本地文件夹转换器,根本不上传。无论哪种方式,在将其粘贴到模型中之前扫描您选择的 API 密钥和凭据 - 这是人们跳过的步骤。

本地文件夹、GitLab 以及所有非代码内容

并非所有您想要转换的内容都存在于 GitHub 上。的 本地文件夹到文本转换器 需要一个 直接从磁盘上删除目录并将其合并为一个文件,无需上传任何内容 - 否 根本没有网络调用,这就是您想要的客户端工作、未提交的分支或项目 从来都不是 git 仓库。对于 GitLab, GitLab 到文本转换器 做同样的事 针对公共、私人和自托管项目的工作。

代码通常也只是上下文的一半。规范在 PDF 中,架构在 JSON 中,遗留的 XML 中的配置,CSV 中的示例数据。将它们与您的存储库一起转换为 PDF 至 Markdown, JSON 到 Markdown, XML 到 Markdown, CSV 到 Markdown, 或 HTML 到 Markdown。如果有人 给你一个档案, 压缩为文本 拉出可读的 其中的内容,以及 File2Txt 采取任何 如果您不想选择页面,则支持 13 种格式。对于仅存在于 网络, Web2Txt 将 URL 抓取到 干净的 Markdown,包括 JavaScript 渲染的页面 - 将抓取的 API 参考与您的 转换后的仓库和编码助手可以同时看到双方。

博客上有更深入的内容: 将 GitHub 存储库转换为 LLM 的完整指南, 将代码库转换为 LLM-ready 文件, 将整个存储库输入人工智能, 和 文件夹到文本演练 对于本地目录。

Repo2Txt 由以下人员构建和维护 v12hero, 一位独立开发人员,构建隐私优先的本机和网络应用程序。