Repomix: как передать весь GitHub-репозиторий ChatGPT, Claude или Gemini
Repomix · GitHub · контекст LLM · Claude · ChatGPT

Repomix: как передать весь репозиторий ChatGPT, Claude или Gemini одним AI-friendly файлом

Когда проект состоит из десятков или сотен файлов, отправлять их AI по одному неудобно: модель теряет структуру каталогов, связи между модулями и общий контекст. Repomix собирает репозиторий в один структурированный файл, считает токены, умеет исключать лишнее, сжимать код и упаковывать удалённые GitHub-репозитории без ручного клонирования.

1.18.0 актуальная версия package.json и последний release на момент проверки
XML / Markdown / JSON / Plain четыре формата вывода, XML используется по умолчанию
MIT · Node.js 22+ open-source CLI, библиотека и экспериментальный MCP server
Суть проекта

Repomix — упаковщик кодовой базы для LLM, а не ещё один AI-редактор

Repomix читает файлы проекта, применяет правила исключений, формирует дерево каталогов и объединяет выбранный контент в единый документ. Этот документ можно загрузить в ChatGPT, Claude, Gemini, DeepSeek, Perplexity или передать другому инструменту, который умеет анализировать большие текстовые контексты.

Репозиторий исходники, конфиги, документация
→
Repomix filter → security scan → structure → token count
→
Один файл XML, Markdown, JSON или plain text
→
LLM анализ, review, поиск архитектурных связей
01 Работает локально

CLI после установки может обрабатывать локальный репозиторий без отправки файлов на сервис Repomix.

02 Учитывает Git

По умолчанию применяются .gitignore, .ignore и собственные правила Repomix.

03 Понимает размер контекста

Можно увидеть самые тяжёлые файлы, дерево токенов и задать token budget.

04 Не ограничен одним AI

Результат — обычный файл, поэтому Repomix не привязан к конкретному провайдеру LLM.

Проблема больших проектов

Почему просто прикрепить несколько файлов к чату недостаточно

Ручная загрузка

Модель видит только выбранные файлы

Можно забыть interface, config, schema, migration или соседний модуль. В результате AI строит объяснение по неполному срезу проекта.

Repomix

Контекст формируется по повторяемым правилам

В output сохраняются пути файлов, дерево проекта и содержимое выбранных частей, а фильтры можно положить в config и повторить позже.

Repomix особенно полезен для «прочитай проект перед ответом».

Он не даёт модели бесконечное контекстное окно, но помогает собрать осмысленный snapshot кодовой базы, вместо случайного набора файлов.

Быстрый старт

Как установить Repomix и собрать первый файл

Актуальный package.json требует Node.js 22 или новее. Для разового запуска глобальная установка вообще не обязательна.

Без установки

Запустить последнюю версию через npx

cd /path/to/project
npx repomix@latest

По умолчанию появится repomix-output.xml.

Постоянная установка

Через npm

npm install -g repomix
repomix

После этого команда доступна из любого каталога.

macOS / Linux

Через Homebrew

brew install repomix
Проверка

Узнать установленную версию

repomix --version
Для приватного проекта разумнее использовать локальный CLI.

Это даёт воспроизводимые правила и не требует загрузки исходников в веб-интерфейс Repomix.

Output format

XML, Markdown, JSON или plain text: что выбрать

Readable Markdown
repomix --style markdown

Удобнее читать самому, файл остаётся структурированным и пригодным для AI.

Automation JSON
repomix --style json

Подходит, если результат дальше обрабатывается скриптами, jq или агентом программно.

Minimal Plain
repomix --style plain

Простой текст без дополнительной XML/Markdown-структуры.

Нет универсально «лучшего формата для всех моделей».

XML удобен для строгого разделения частей контекста, Markdown — для ручного чтения, JSON — для машинной постобработки. Выбор зависит от следующего шага вашего workflow.

Контекстное окно

Перед загрузкой в AI сначала посмотрите, какие файлы съедают токены

repomix --token-count-tree показать дерево проекта с количеством токенов
repomix --token-count-tree 1000 оставить в отчёте только узлы от 1000 токенов
repomix --token-budget 100000 вернуть non-zero exit code, если output превышает заданный бюджет
repomix --split-output 2mb разделить слишком большой output на несколько файлов

По умолчанию token count использует encoding o200k_base. Это оценка размера текста, а не гарантия точного биллинга конкретной модели.

Практический порядок: сначала token tree, потом include/ignore.

Не стоит сразу включать --compress ко всему проекту только потому, что output не помещается.

Tree-sitter compression

--compress уменьшает токены ценой деталей реализации

Экспериментальное code compression использует Tree-sitter. Repomix старается сохранить imports/exports, классы, функции, interfaces и сигнатуры, при этом убирая тела функций и часть внутренней логики.

Сохраняется
  • сигнатуры функций и методов;
  • классы и свойства;
  • interfaces и type definitions;
  • ключевая структура модуля.
Может удаляться
  • реализация функций;
  • условия и циклы;
  • локальные переменные;
  • детали алгоритма.
repomix --compress
Для поиска конкретного бага compressed output может быть бесполезен.

Если модели нужно понять точную реализацию, race condition, SQL-запрос или обработку ошибки, ей нужны тела функций. Compression лучше подходит для обзора архитектуры.

В новых версиях можно задавать уровень детализации по glob-паттернам: например, оставить src/core/** полностью, документацию сжать, а generated-файлы показать только в directory structure.

Меньше шума

Не обязательно отправлять модели весь репозиторий

Include

Оставить только нужные части

repomix --include "src/**/*.ts,package.json,README.md"
Ignore

Исключить тестовые fixture или docs

repomix --ignore "dist/**,coverage/**,docs/archive/**"
Git context

Добавить текущие изменения

repomix --include-diffs

Полезно для code review текущего рабочего дерева.

История

Добавить последние коммиты

repomix --include-logs --include-logs-count 10

Модель получает commit messages и список изменённых файлов.

Лучший контекст — не максимальный, а релевантный.

Один файл на 300 000 токенов не обязательно полезнее аккуратно выбранных 40 000. Лишние generated assets, lockfiles и архивы могут только затруднить анализ.

Remote repository

Публичный GitHub-репозиторий можно упаковать без ручного clone

repomix --remote yamadashy/repomix

# или ещё короче:
repomix yamadashy/repomix

# конкретная ветка, tag или commit:
repomix --remote owner/repo --remote-branch main

Repomix временно получает удалённый репозиторий и формирует такой же output. Это удобно для быстрого разбора open-source проекта, когда не хочется вручную клонировать его в рабочую директорию.

Не включайте --remote-trust-config для неизвестного репозитория автоматически.

Документация предупреждает: доверенный remote config способен запускать commands и читать локальные файлы. По умолчанию такая конфигурация считается недоверенной.

Перед загрузкой в LLM

Secretlint помогает, но output всё равно нужно проверять самому

Repomix включает security check по умолчанию и использует Secretlint для поиска потенциально чувствительных данных: API keys, access tokens, credentials, private keys и некоторых connection strings.

Security check включён по умолчанию

Подозрительные файлы могут быть исключены из результата.

.gitignore учитывается

Но секрет, случайно закоммиченный в обычный файл, всё равно требует отдельной проверки.

Binary content не включается

Пути бинарных файлов могут остаться в directory structure, но сами данные не попадают в output.

Проверку можно отключить

--no-security-check существует, но для отправки кода внешней LLM это плохой default.

Сканер секретов не является гарантией.

Перед загрузкой output в ChatGPT, Claude или другой внешний сервис откройте файл и проверьте, нет ли внутри паролей, токенов, персональных данных, внутренних URL и закрытой бизнес-логики.

В истории Repomix уже исправлялись security-ошибки, связанные с remote branch argument injection и обходом secret scan в MCP attach flow. Это дополнительная причина использовать актуальную версию.

CLI или сайт

Для приватного репозитория локальный CLI предпочтительнее веб-формы

CLI Обработка локально

Privacy Policy проекта утверждает, что CLI не собирает и не отправляет repository data или telemetry. После установки сеть нужна в основном для remote mode и ручной проверки обновлений.

repomix.com Uploaded files проходят через сервер

При загрузке ZIP или папки файлы временно хранятся на серверах для обработки и удаляются после завершения.

Даже локальный Repomix не определяет политику конфиденциальности вашей LLM.

После упаковки вы сами решаете, куда отправить output. Если затем загрузить его в облачный AI, применяются правила именно этого AI-провайдера.

Model Context Protocol

Repomix можно подключить как MCP server и не собирать файл вручную

repomix --mcp

В этом режиме AI-клиент получает tools для упаковки, чтения и поиска по Repomix output. Для Claude Code официальный пример выглядит так:

claude mcp add repomix -- npx -y repomix --mcp
Для MCP лучше использовать sandbox mode
repomix --mcp --sandbox

# или ограничить конкретной рабочей папкой:
repomix --mcp --sandbox path/to/project

В 1.18.0 sandbox ограничивает file tools одной workspace-директорией. Абсолютные пути, .., Windows drive/UNC paths и выход через symlink блокируются.

Это application-level confinement, не полноценная OS sandbox.

Сама документация рекомендует для недоверенного клиента дополнительно использовать системную изоляцию, например контейнер или отдельного пользователя.

Практические сценарии

Четыре полезных workflow с Repomix

01 Архитектурный разбор
repomix --compress

Передать AI структуру большого проекта без тел всех функций.

02 Code review текущей ветки
repomix --include-diffs --include-logs

Добавить рабочие изменения и недавнюю историю к основному контексту.

03 Разбор чужого open-source проекта
repomix owner/repo --compress

Получить быстрый structural overview без ручного clone.

04 Постоянный AI-context во время разработки
repomix --watch

Output пересобирается после изменений файлов с debounce.

Пример prompt после упаковки

«Сначала изучи структуру репозитория и основные зависимости. Не предлагай изменения, пока не определишь, какие модули отвечают за нужную функцию. Затем перечисли затрагиваемые файлы, риски и только после этого предложи план.»

Ограничения

Repomix не превращает огромный репозиторий в бесконечный контекст

01Контекст всё равно конечен

Если output больше окна модели, придётся выбирать файлы, сжимать или делить результат.

02Больше файлов не всегда лучше

Нерелевантный код снижает signal-to-noise и может ухудшить выводы модели.

03Compression удаляет детали

Для debugging и security review часто нужен полный исходник.

04Secret scan не абсолютен

Автоматическая проверка не освобождает от ручной ревизии output перед отправкой.

05Snapshot быстро устаревает

После изменений проект нужно упаковать заново или использовать watch/MCP workflow.

06LLM всё равно может ошибаться

Полный кодовый контекст не гарантирует правильный root cause, patch или архитектурное решение.

Repomix решает транспорт контекста, а не задачу понимания автоматически.

Качество результата по-прежнему зависит от выбранных файлов, модели, prompt и последующей проверки.

В экосистеме AI-разработки

Чем Repomix отличается от Headroom, Spec Kit, Superpowers и Ponytail

Repomix Упаковывает кодовую базу

Создаёт переносимый snapshot репозитория для анализа LLM.

Headroom Оптимизирует текущий контекст

Сжимает tool output и историю внутри agentic workflow.

Spec Kit Структурирует требования

Specification → plan → tasks → implementation.

Superpowers Структурирует работу агента

Brainstorming, TDD, debugging, worktree и review.

Ponytail Сдерживает переусложнение

Выбирает минимальную достаточную реализацию.

Первоисточники

Исходники и документация Repomix

Материал проверен 21 сентября 2026 года.

На момент проверки текущая версия в package.json и latest GitHub release — 1.18.0.

Вывод

Repomix полезен, когда AI нужно увидеть проект целиком, но файлов слишком много для ручной передачи

Его сильная сторона — простой и воспроизводимый способ подготовить кодовую базу: дерево проекта, пути, содержимое, token count и инструкции оказываются в одном документе. Для разового архитектурного анализа этого часто достаточно.

Но «упаковать всё» не должно быть целью само по себе. Для качественного AI-review лучше сначала удалить шум, проверить секреты, оценить token tree и решить, где нужны полные файлы, а где достаточно compressed structure.

FAQ

Частые вопросы о Repomix

Что такое Repomix простыми словами?

Инструмент, который объединяет выбранные файлы репозитория и его структуру в один документ, удобный для передачи LLM.

Какой формат Repomix лучше для Claude или ChatGPT?

XML — хороший универсальный default. Markdown удобнее читать человеку, JSON лучше для программной обработки. Универсального победителя для всех моделей нет.

Можно ли упаковать GitHub-репозиторий без clone?

Да. Используйте repomix owner/repo или repomix --remote owner/repo.

Repomix отправляет мой локальный код на свои серверы?

Согласно Privacy Policy проекта, CLI обрабатывает локальные репозитории локально и не собирает repository data. Веб-сайт работает иначе: загруженные файлы временно обрабатываются на сервере.

Можно ли использовать Repomix с приватным проектом?

Да, локальный CLI подходит для этого лучше hosted web form. Но перед передачей результата внешней LLM всё равно нужно проверить secrets и правила самого AI-провайдера.

Что делает --compress?

Tree-sitter сохраняет основную структуру кода и сигнатуры, убирая детали реализации. Это удобно для архитектурного обзора, но не для всех debugging-задач.

Как понять, что проект не помещается в context window?

Используйте --token-count-tree и --token-budget, затем сократите include scope или разделите output.

Repomix умеет MCP?

Да. MCP server считается экспериментальным; для ограничения доступа к файловой системе лучше использовать новый --sandbox.

Какая версия актуальна?

На момент проверки 21 сентября 2026 года package.json и GitHub Releases указывают версию 1.18.0.

ИИ и автоматизация

Нужно подготовить большой проект для анализа ChatGPT, Claude или локальной LLM?

Можно подобрать структуру include/ignore, формат output и безопасный workflow, чтобы не отправлять модели лишние файлы и чувствительные данные.