Repomix: как передать весь репозиторий ChatGPT, Claude или Gemini одним AI-friendly файлом
Когда проект состоит из десятков или сотен файлов, отправлять их AI по одному неудобно: модель теряет структуру каталогов, связи между модулями и общий контекст. Repomix собирает репозиторий в один структурированный файл, считает токены, умеет исключать лишнее, сжимать код и упаковывать удалённые GitHub-репозитории без ручного клонирования.
Repomix — упаковщик кодовой базы для LLM, а не ещё один AI-редактор
Repomix читает файлы проекта, применяет правила исключений, формирует дерево каталогов и объединяет выбранный контент в единый документ. Этот документ можно загрузить в ChatGPT, Claude, Gemini, DeepSeek, Perplexity или передать другому инструменту, который умеет анализировать большие текстовые контексты.
CLI после установки может обрабатывать локальный репозиторий без отправки файлов на сервис Repomix.
По умолчанию применяются .gitignore, .ignore и собственные правила Repomix.
Можно увидеть самые тяжёлые файлы, дерево токенов и задать token budget.
Результат — обычный файл, поэтому Repomix не привязан к конкретному провайдеру LLM.
Почему просто прикрепить несколько файлов к чату недостаточно
Модель видит только выбранные файлы
Можно забыть interface, config, schema, migration или соседний модуль. В результате AI строит объяснение по неполному срезу проекта.
Контекст формируется по повторяемым правилам
В output сохраняются пути файлов, дерево проекта и содержимое выбранных частей, а фильтры можно положить в config и повторить позже.
Он не даёт модели бесконечное контекстное окно, но помогает собрать осмысленный snapshot кодовой базы, вместо случайного набора файлов.
Как установить Repomix и собрать первый файл
Актуальный package.json требует Node.js 22 или новее.
Для разового запуска глобальная установка вообще не обязательна.
Запустить последнюю версию через npx
cd /path/to/project
npx repomix@latest
По умолчанию появится repomix-output.xml.
Через npm
npm install -g repomix
repomix
После этого команда доступна из любого каталога.
Через Homebrew
brew install repomix
Узнать установленную версию
repomix --version
Это даёт воспроизводимые правила и не требует загрузки исходников в веб-интерфейс Repomix.
XML, Markdown, JSON или plain text: что выбрать
repomix --style xml
Чётко отделяет summary, directory structure и каждый файл тегами. Хороший универсальный вариант для LLM.
repomix --style markdown
Удобнее читать самому, файл остаётся структурированным и пригодным для AI.
repomix --style json
Подходит, если результат дальше обрабатывается скриптами, jq или агентом программно.
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.
Это оценка размера текста, а не гарантия точного биллинга конкретной модели.
Не стоит сразу включать --compress ко всему проекту только потому, что output не помещается.
--compress уменьшает токены ценой деталей реализации
Экспериментальное code compression использует Tree-sitter. Repomix старается сохранить imports/exports, классы, функции, interfaces и сигнатуры, при этом убирая тела функций и часть внутренней логики.
- сигнатуры функций и методов;
- классы и свойства;
- interfaces и type definitions;
- ключевая структура модуля.
- реализация функций;
- условия и циклы;
- локальные переменные;
- детали алгоритма.
repomix --compress
Если модели нужно понять точную реализацию, race condition, SQL-запрос или обработку ошибки, ей нужны тела функций. Compression лучше подходит для обзора архитектуры.
В новых версиях можно задавать уровень детализации по glob-паттернам:
например, оставить src/core/** полностью, документацию сжать,
а generated-файлы показать только в directory structure.
Не обязательно отправлять модели весь репозиторий
Оставить только нужные части
repomix --include "src/**/*.ts,package.json,README.md"
Исключить тестовые fixture или docs
repomix --ignore "dist/**,coverage/**,docs/archive/**"
Добавить текущие изменения
repomix --include-diffs
Полезно для code review текущего рабочего дерева.
Добавить последние коммиты
repomix --include-logs --include-logs-count 10
Модель получает commit messages и список изменённых файлов.
Один файл на 300 000 токенов не обязательно полезнее аккуратно выбранных 40 000. Лишние generated assets, lockfiles и архивы могут только затруднить анализ.
Публичный 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 и читать локальные файлы. По умолчанию такая конфигурация считается недоверенной.
Secretlint помогает, но output всё равно нужно проверять самому
Repomix включает security check по умолчанию и использует Secretlint для поиска потенциально чувствительных данных: API keys, access tokens, credentials, private keys и некоторых connection strings.
Подозрительные файлы могут быть исключены из результата.
Но секрет, случайно закоммиченный в обычный файл, всё равно требует отдельной проверки.
Пути бинарных файлов могут остаться в directory structure, но сами данные не попадают в output.
--no-security-check существует, но для отправки кода внешней LLM это плохой default.
Перед загрузкой output в ChatGPT, Claude или другой внешний сервис откройте файл и проверьте, нет ли внутри паролей, токенов, персональных данных, внутренних URL и закрытой бизнес-логики.
В истории Repomix уже исправлялись security-ошибки, связанные с remote branch argument injection и обходом secret scan в MCP attach flow. Это дополнительная причина использовать актуальную версию.
Для приватного репозитория локальный CLI предпочтительнее веб-формы
Privacy Policy проекта утверждает, что CLI не собирает и не отправляет repository data или telemetry. После установки сеть нужна в основном для remote mode и ручной проверки обновлений.
При загрузке ZIP или папки файлы временно хранятся на серверах для обработки и удаляются после завершения.
После упаковки вы сами решаете, куда отправить output. Если затем загрузить его в облачный AI, применяются правила именно этого AI-провайдера.
Repomix можно подключить как MCP server и не собирать файл вручную
repomix --mcp
В этом режиме AI-клиент получает tools для упаковки, чтения и поиска по Repomix output. Для Claude Code официальный пример выглядит так:
claude mcp add repomix -- npx -y repomix --mcp
repomix --mcp --sandbox
# или ограничить конкретной рабочей папкой:
repomix --mcp --sandbox path/to/project
В 1.18.0 sandbox ограничивает file tools одной workspace-директорией.
Абсолютные пути, .., Windows drive/UNC paths и выход через symlink блокируются.
Сама документация рекомендует для недоверенного клиента дополнительно использовать системную изоляцию, например контейнер или отдельного пользователя.
Четыре полезных workflow с Repomix
repomix --compress
Передать AI структуру большого проекта без тел всех функций.
repomix --include-diffs --include-logs
Добавить рабочие изменения и недавнюю историю к основному контексту.
repomix owner/repo --compress
Получить быстрый structural overview без ручного clone.
repomix --watch
Output пересобирается после изменений файлов с debounce.
Пример prompt после упаковки
«Сначала изучи структуру репозитория и основные зависимости. Не предлагай изменения, пока не определишь, какие модули отвечают за нужную функцию. Затем перечисли затрагиваемые файлы, риски и только после этого предложи план.»
Repomix не превращает огромный репозиторий в бесконечный контекст
Если output больше окна модели, придётся выбирать файлы, сжимать или делить результат.
Нерелевантный код снижает signal-to-noise и может ухудшить выводы модели.
Для debugging и security review часто нужен полный исходник.
Автоматическая проверка не освобождает от ручной ревизии output перед отправкой.
После изменений проект нужно упаковать заново или использовать watch/MCP workflow.
Полный кодовый контекст не гарантирует правильный root cause, patch или архитектурное решение.
Качество результата по-прежнему зависит от выбранных файлов, модели, prompt и последующей проверки.
Чем Repomix отличается от Headroom, Spec Kit, Superpowers и Ponytail
Создаёт переносимый snapshot репозитория для анализа LLM.
Сжимает tool output и историю внутри agentic workflow.
Specification → plan → tasks → implementation.
Brainstorming, TDD, debugging, worktree и review.
Выбирает минимальную достаточную реализацию.
Исходники и документация Repomix
На момент проверки текущая версия в package.json и latest GitHub release — 1.18.0.
Repomix полезен, когда AI нужно увидеть проект целиком, но файлов слишком много для ручной передачи
Его сильная сторона — простой и воспроизводимый способ подготовить кодовую базу: дерево проекта, пути, содержимое, token count и инструкции оказываются в одном документе. Для разового архитектурного анализа этого часто достаточно.
Но «упаковать всё» не должно быть целью само по себе. Для качественного AI-review лучше сначала удалить шум, проверить секреты, оценить token tree и решить, где нужны полные файлы, а где достаточно compressed structure.
Частые вопросы о 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, чтобы не отправлять модели лишние файлы и чувствительные данные.