GitHub Репо в текст: превратите весь репозиторий в один файл, который LLM может прочитать
Вставьте URL-адрес GitHub выше, и вы получите дерево файлов репозитория в списке флажков. Отметьте что имеет значение, сгенерируйте, и у вас будет один текстовый файл: структура каталогов вверху, затем каждый выбранный файл внизу, разделенный заголовком с указанием пути. Это формат, который работает с ChatGPT, Claude, Gemini, DeepSeek или что-либо еще, куда вы вставляете — модель видит форму проект и код одновременно, поэтому он может рассуждать о том, как части сочетаются друг с другом, а не угадывание по одному файлу изолированно.
Не нужно ничего клонировать, ничего устанавливать, не нужно регистрироваться, и это бесплатно. Репо читается через GitHub. API прямо из вашего браузера, поэтому вам вообще не нужен проект на вашем компьютере. момент, когда вы просматриваете чужой код, оцениваемую зависимость или репозиторий, который у вас есть. только что получил доступ.
Вставьте URL-адрес, включая ветку или тег.
Равнина https://github.com/owner/repo форма работает и дает вам ветку по умолчанию. Но
URL-адрес содержит нечто большее, и его стоит использовать. Скопируйте адресную строку во время просмотра
GitHub и все, на что вы смотрите, встречается:
- Филиал —
/tree/developили ветвь функции, чтобы вы могли преобразовать незавершенная работа, а не то, что находится на главном. - Тег или релиз —
/tree/v2.1.0. Полезно, когда вы спрашиваете о версию, которую вы действительно выпускаете, или различать две версии в ходе разговора, конвертируя каждую из них. - Подкаталог —
/tree/main/packages/api. Это тот, который спасает вы в монорепозитории. Начните с пакета, который вам интересен, и дерево, которое вы получите обратно, уже готово. с ограниченной областью действия, а не десять тысяч файлов, которые вам потом придется снять.
Если ветка или путь не существует, вам сообщат, какая часть не была решена, что обычно является ошибкой. опечатка в названии ветки или репозитории, являющемся личным для используемого вами токена.
Частные репозитории и куда идет ваш токен
Частные репозитории работают с персональным токеном доступа GitHub. Создайте его в своем разработчике GitHub. настройки с доступом на чтение к нужным вам репозиториям — детальный токен, привязанный к одному репозиторию достаточно, и этот вариант стоит выбрать. Вставьте его в поле токена, и дерево загрузит так же, как и публичный.
Токен хранится в вашем браузере localStorage чтобы вам не приходилось перепечатывать его при каждом посещении, и
он идет ровно в одно место: api.github.com, в заголовках запроса, из вашего собственного
машина. Здесь нет учетной записи, к которой можно было бы прикрепить его, и нет нашего бэкэнда на пути. Очистить поле
и его снимают с хранения. На общей машине очистите ее, когда закончите, и, если захотите,
уверенности, впоследствии отзовите токен через GitHub — это действие в один клик, и оно будет стоить вам
ничего.
Токен также помогает в публичных репозиториях. Неаутентифицированные запросы API GitHub довольно ограничены по скорости. агрессивно, поэтому, если вы конвертируете большой репозиторий или несколько репозиториев подряд, добавление токена — это разница между тем, чтобы это работало, и тем, что вы ждете час.
Что снять, прежде чем создавать
Это шаг, который решает, будет ли результат полезен. Репозиторий содержит множество файлов, которые отслеживаются по уважительным причинам и по-прежнему бесполезны в качестве контекста модели. Пройдите через дерево и бросьте:
- Поставщики зависимостей —
node_modules,vendor,third_party. Редко в репозитории, но разрушительно, когда присутствует. Это чужой источник код, и он утопит ваш. - Построить вывод —
dist,build,out,.next,target, сообщает освещение. Снова ваш собственный код, транспилированный или минимизирован, поэтому модель читает все дважды и во второй раз не узнает ничего нового. - Файлы блокировки —
package-lock.json,yarn.lock,poetry.lock,Cargo.lock. Десятки тысяч токенов хешей с смысла в них почти нет. Вместо этого сохраните манифест;package.jsonилиpyproject.tomlэто то, что сообщает модели, в каком стеке вы находитесь. - Сгенерированный код — вывод protobuf и gRPC, генератор кода GraphQL, клиенты OpenAPI, миграция баз данных, тесты снимков. Машинописанный, повторяющийся и подталкивающий модель к редактирование файлов, которые все равно восстанавливаются.
- Файлы больших данных — фикстуры, исходные дампы, образцы CSV, зафиксированные минифицированные пакеты. лет назад. Один из них может использовать контекстное окно самостоятельно.
Фильтрация по расширению — это быстрый путь, когда репозиторий большой: сузить до .ts и
.tsx, или .py, и вы устранили большую часть шума одним движением. Затем добавьте обратно
несколько файлов конфигурации и документации, описывающих проект — README, основная конфигурация,
схема.
Счетчик токенов — важная часть
Сгенерированный вывод содержит количество токенов, рассчитанное с помощью gpt-tokenizer библиотека
а не оценку, разделенную на четыре символа. Проверьте это, прежде чем вставлять. Зная, является ли свалка
соответствует контекстному окну, которое вы собираетесь использовать, — это вся игра — альтернатива — вставка, ожидание,
и чтение ошибки длины.
Используйте его для управления, а не только для проверки. Если счет вдвое больше, чем у вас есть места, вернитесь к дерево и снимите галочку с каталога, а не обрезаем файл в конце, потому что дамп обрезан В середине проекта модель остается с половиной реализации, и никто не подозревает, что она отсутствует. И имейте в виду что большое контекстное окно — это не то же самое, что хорошее: целенаправленная выборка из 8000 токенов — модуль, его тесты и два файла, которые он импортирует, обычно превосходят 200 000 токенов всего. Отправить весь репо, когда вопрос архитектурный, и фрагмент, когда он локальный.
Когда все будет готово, скопируйте текст в буфер обмена, загрузите его как файл. .txtили возьмите
выбранные файлы в формате ZIP, если вы предпочитаете иметь их как файлы, а не как один объединенный документ.
Как это использовать
Для чего люди на самом деле его используют
- Знакомство с незнакомой кодовой базой. Новая работа, новая команда или открытый исходный код проект, в который вы хотите внести свой вклад. Конвертируйте его, вставьте и запросите точки входа, ядро абстракции и три вещи, которые удивят нового сопровождающего. Вы сориентируетесь быстрее, чем читать README и просматривать файлы в течение дня.
- Анализ запроса на включение с его окружением. Разница показывает, что изменилось, но не то, чего он касается. Преобразуйте ветку или только затронутый пакет и спросите, что еще вызывает какая функция изменилась и какие предположения делает по этому поводу новый код.
- Написание документации, которая действительно верна. README гниют, потому что они написаны один раз. Создайте обзор архитектуры, сводку модулей или реальный список среды. переменные из кода в том виде, в котором он существует сегодня в main.
- Генерация тестов. Включите модуль и один существующий тестовый файл в качестве стиля. ссылка. Модель соответствует вашей структуре, вашему именованию и вашим приспособлениям, а не изобретает соглашение, которое никто в команде не использует.
- Планирование миграции и рефакторинга. Компоненты класса для перехватов, JavaScript для TypeScript, один ORM в другой. Модель, которая может видеть каждое место вызова, создает реальную последовательность шаги, а не общий контрольный список.
- Аудит и комплексная проверка. Оценка репозитория, который вы наследуете, приобретаете, или рассматривая как зависимость. Объединенный файл позволяет узнать, где находятся секреты. обрабатываются, как выглядят пути ошибок и где обитают рискованные шаблоны.
- RAG и вложения. Разделы, разделенные путями, четко разбиваются, поэтому вывод снижается. в векторное хранилище с минимальной предварительной обработкой.
Часто задаваемые вопросы
Как преобразовать репозиторий GitHub в текстовый файл?
Вставьте URL-адрес репозитория выше, и дерево файлов появится в виде списка флажков. Снимите галочки с того, что модели не нужно, сгенерируйте, и вы получите один текстовый файл: структуру каталогов вверху, затем каждый выбранный файл под заголовком со своим путем. Нечего клонировать, нечего устанавливать, бесплатно и без регистрации.
Как мне преобразовать частный репозиторий GitHub?
Вставьте токен личного доступа рядом с URL-адресом. Создайте детальный токен, ограниченный только этим одним репозиторием, с разрешением «Содержимое» только для чтения и коротким сроком действия — это наименьшая привилегия, которую API примет для этого. Токен используется для вызова GitHub из вашего браузера и не хранится на нашей стороне.
Сколько токенов составляет моя кодовая база и подойдет ли она?
Счетчик обновляется по мере того, как вы отмечаете файлы, поэтому вы можете увидеть число, прежде чем что-либо вставлять. Грубо говоря, исходный код содержит от 3 до 4 символов на токен, поэтому выборка размером 500 КБ соответствует примерно 140 000 токенов. Это соответствует контекстному окну размером 200 тыс. и не помещается в одно сообщение чата на большинстве интерфейсов.
Какие файлы следует исключить перед отправкой репозитория в LLM?
node_modules, vendorи сначала любой каталог зависимостей — обычно они составляют подавляющее большинство байтов и не влияют на ваш код. Затем файлы блокировки, выходные данные сборки, минифицированные пакеты, тестовые приспособления и бинарные ресурсы. В типичном проекте JavaScript, который проходит самостоятельно, часто удаляется более девяноста процентов токенов.
Как это соотносится с gitingest, repomix или code2prompt?
Это сильные инструменты, и их отличие заключается в рабочем процессе, а не в возможностях. Они в первую очередь выполняются из командной строки, доступны для сценариев и являются правильным ответом внутри CI или пакетного задания. Это выполняется на вкладке браузера с деревом флажков, поэтому вы можете просмотреть репозиторий, отменить выбор того, что вам не нужно, и наблюдать за изменением количества токенов — лучше для разового случая, когда вы все еще решаете, что включить.
Безопасно ли пропускать через это свой код?
Публичные репозитории считываются через API GitHub из вашего браузера, поэтому код передается вам от GitHub. Для чего-либо конфиденциального более сильным вариантом является конвертер локальных папок, который вообще никогда не загружается. В любом случае, сканируйте свой выбор на наличие ключей API и учетных данных, прежде чем вставлять его в модель — этот шаг люди пропускают.
Локальные папки, GitLab и все, что не является кодом
Не все, что вы хотите преобразовать, живет на GitHub. конвертер локальной папки в текст берет каталог прямо с вашего диска и объединяет его в один файл, ничего не загружая — нет сетевых вызовов вообще, а это то, что вам нужно для работы с клиентами, незафиксированных ветвей или проекта, который никогда не был репозиторием git. Для GitLab Конвертер GitLab в текст делает то же самое работа против государственных, частных и самостоятельных проектов.
Код обычно представляет собой лишь половину контекста. Спецификация находится в формате PDF, схема в формате JSON, устаревшая версия config в формате XML, пример данных в формате CSV. Конвертируйте их вместе с вашим репо с помощью PDF в Markdown, JSON в Markdown, XML в Markdown, CSV в Markdown, или HTML для Markdown. Если кто-то вручаю вам архив, ZIP в текст тянет читаемое содержание из него, и File2Txt принимает любой из тринадцать поддерживаемых форматов, если вы не хотите выбирать страницу. Для документации, которая существует только на сеть, Web2Txt копирует URL-адрес в очистите Markdown, включая страницы, обработанные с помощью JavaScript — соедините очищенную ссылку API с вашим преобразованный репозиторий, и помощник по кодированию может видеть обе стороны одновременно.
В блоге есть более подробная информация: полное руководство по конвертации репозиториев GitHub для LLM, превращение базы кода в файл, готовый к LLM, подача всего репозитория в ИИи папка в текстовое прохождение для локальных каталогов.
Repo2Txt создан и поддерживается v12hero, независимый разработчик, создающий собственные и веб-приложения, ориентированные на конфиденциальность.