MIT License
10,685
15,483
  • Linux
  • Apple

Integrations

  • Enables interaction with Git repositories, supporting sorting files by Git change count and respecting .gitignore configuration

  • Provides tools to fetch, clone and package GitHub repositories for AI analysis, supporting repository URLs or user/repo format

  • Supports token counting using OpenAI's tiktoken tokenizer with configurable encodings (e.g., o200k_base for GPT-4o, cl100k_base for GPT-4/3.5)

Warp, агентский терминал для разработчиков

Доступно для MacOS, Linux и Windows

📦 Repomix — мощный инструмент, который упаковывает весь ваш репозиторий в один файл, удобный для ИИ.
Он идеально подходит, когда вам нужно передать свою кодовую базу в большие языковые модели (LLM) или другие инструменты ИИ, такие как Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok и другие.

🎉 Новое: сайт Repomix и сообщество Discord!

  • Попробуйте Repomix в своем браузере на repomix.com
  • Присоединяйтесь к нашему серверу Discord для поддержки и обсуждений

Мы с нетерпением ждем встречи с вами!

🌟 Особенности

  • Оптимизировано для ИИ : форматирует кодовую базу таким образом, чтобы ИИ мог ее легко понять и обработать.
  • Подсчет токенов : обеспечивает подсчет токенов для каждого файла и всего репозитория, полезно для ограничений контекста LLM.
  • Простота использования : вам понадобится всего одна команда, чтобы упаковать весь ваш репозиторий.
  • Настраиваемость : легко настраивайте, что включать или исключать.
  • Git-Aware : автоматически учитывает ваши файлы .gitignore и .git/info/exclude .
  • Нацеленность на безопасность : включает Secretlint для надежной проверки безопасности с целью обнаружения и предотвращения включения конфиденциальной информации.
  • Сжатие кода : опция --compress использует Tree-sitter для извлечения ключевых элементов кода, сокращая количество токенов и сохраняя структуру.

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

Использование инструмента CLI >_

Вы можете попробовать Repomix прямо сейчас в каталоге своего проекта без установки:

npx repomix

Или установите глобально для многократного использования:

# Install using npm npm install -g repomix # Alternatively using yarn yarn global add repomix # Alternatively using Homebrew (macOS/Linux) brew install repomix # Then run in any project directory repomix

Вот и все! Repomix сгенерирует файл repomix-output.xml в вашем текущем каталоге, содержащий весь ваш репозиторий в формате, удобном для ИИ.

Затем вы можете отправить этот файл помощнику на основе искусственного интеллекта с помощью следующего запроса:

This file contains all the files in the repository combined into one. I want to refactor the code, so please review it first.

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

Удачного кодирования! 🚀

Использование веб-сайта 🌐

Хотите быстро попробовать? Посетите официальный сайт repomix.com . Просто введите имя вашего репозитория, заполните любые дополнительные данные и нажмите кнопку Pack , чтобы увидеть сгенерированный вами результат.

Доступные варианты

Сайт предлагает несколько удобных функций:

  • Настраиваемый формат вывода (XML, Markdown или обычный текст)
  • Мгновенная оценка количества токенов
  • Гораздо больше!

Использование расширения VSCode ⚡️

Расширение VSCode, поддерживаемое сообществом, под названием Repomix Runner (созданное massdo ), позволяет вам запускать Repomix прямо в вашем редакторе всего за несколько щелчков. Запускайте его в любой папке, легко управляйте выходными данными и контролируйте все через интуитивно понятный интерфейс VSCode.

Хотите получить вывод в виде файла или просто содержимое? Нужна автоматическая очистка? Это расширение вам поможет. Плюс, оно отлично работает с вашим существующим repomix.config.json.

Попробуйте сейчас на VSCode Marketplace ! Исходный код доступен на GitHub .

Альтернативные инструменты 🛠️

Если вы используете Python, вам может быть интересно ознакомиться с Gitingest , который лучше подходит для экосистемы Python и рабочих процессов науки о данных: https://github.com/cyclotruc/gitingest

📊 Использование

Чтобы упаковать весь репозиторий:

repomix

Чтобы упаковать определенный каталог:

repomix path/to/directory

Чтобы упаковать определенные файлы или каталоги с использованием шаблонов glob :

repomix --include "src/**/*.ts,**/*.md"

Чтобы исключить определенные файлы или каталоги:

repomix --ignore "**/*.log,tmp/"

Чтобы упаковать удаленный репозиторий:

repomix --remote https://github.com/yamadashy/repomix # You can also use GitHub shorthand: repomix --remote yamadashy/repomix # You can specify the branch name, tag, or commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Or use a specific commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Another convenient way is specifying the branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main # Commit's URL is also supported repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

Чтобы сжать вывод:

repomix --compress # You can also use it with remote repositories: repomix --remote yamadashy/repomix --compress

Чтобы инициализировать новый файл конфигурации ( repomix.config.json ):

repomix --init

После создания упакованного файла вы можете использовать его с инструментами генеративного ИИ, такими как ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok и другими.

Использование Docker 🐳

Вы также можете запустить Repomix с помощью Docker.
Это полезно, если вы хотите запустить Repomix в изолированной среде или предпочитаете использовать контейнеры.

Основное использование (текущий каталог):

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix

Чтобы упаковать определенный каталог:

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory

Обработка удаленного репозитория и вывод в output каталог:

docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix

Примеры подсказок

После того, как вы сгенерировали упакованный файл с помощью Repomix, вы можете использовать его с инструментами ИИ, такими как ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok и другими. Вот несколько примеров подсказок, с которых можно начать:

Обзор кода и рефакторинг

Для комплексного обзора кода и предложений по рефакторингу:

This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.
Генерация документации

Для формирования проектной документации:

Based on the codebase in this file, please generate a detailed README.md that includes an overview of the project, its main features, setup instructions, and usage examples.
Генерация тестовых случаев

Для создания тестовых случаев:

Analyze the code in this file and suggest a comprehensive set of unit tests for the main functions and classes. Include edge cases and potential error scenarios.
Оценка качества кода

Оцените качество кода и соответствие передовым практикам:

Review the codebase for adherence to coding best practices and industry standards. Identify areas where the code could be improved in terms of readability, maintainability, and efficiency. Suggest specific changes to align the code with best practices.
Обзор библиотеки

Получите общее представление о библиотеке

This file contains the entire codebase of library. Please provide a comprehensive overview of the library, including its main purpose, key features, and overall architecture.

Вы можете свободно изменять эти подсказки в зависимости от ваших конкретных потребностей и возможностей используемого вами инструмента ИИ.

Обсуждение в сообществе

Посетите наше сообщество , где пользователи делятся:

  • Какие инструменты ИИ они используют с Repomix
  • Эффективные подсказки, которые они обнаружили
  • Как Repomix им помог
  • Советы и рекомендации по максимально эффективному анализу кода с помощью ИИ

Не стесняйтесь присоединиться к обсуждению и поделиться собственным опытом! Ваши идеи могут помочь другим лучше использовать Repomix.

Формат выходного файла

Repomix генерирует один файл с четкими разделителями между различными частями вашей кодовой базы.
Для улучшения понимания ИИ выходной файл начинается с объяснения, ориентированного на ИИ, что упрощает понимание контекста и структуры упакованного репозитория для моделей ИИ.

Формат XML (по умолчанию)

Формат XML структурирует содержимое иерархически:

This file is a merged representation of the entire codebase, combining all repository files into a single document. <file_summary> (Metadata and usage AI instructions) </file_summary> <directory_structure> src/ cli/ cliOutput.ts index.ts (...remaining directories) </directory_structure> <files> <file path="src/index.js"> // File contents here </file> (...remaining files) </files> <instruction> (Custom instructions from `output.instructionFilePath`) </instruction>

Для тех, кто интересуется потенциалом XML-тегов в контексте ИИ:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags

Когда ваши подсказки включают несколько компонентов, таких как контекст, инструкции и примеры, XML-теги могут стать решающим фактором. Они помогают Клоду точнее анализировать ваши подсказки, что приводит к более качественным результатам.

Это означает, что XML-вывод из Repomix — это не просто другой формат, а потенциально более эффективный способ передачи вашей кодовой базы в системы ИИ для анализа, проверки кода или других задач.

Формат разметки

Чтобы создать вывод в формате Markdown, используйте опцию --style markdown :

repomix --style markdown

Формат Markdown структурирует контент иерархически:

This file is a merged representation of the entire codebase, combining all repository files into a single document. # File Summary (Metadata and usage AI instructions) # Repository Structure ``` src/ cli/ cliOutput.ts index.ts ``` (...remaining directories) # Repository Files ## File: src/index.js ``` // File contents here ``` (...remaining files) # Instruction (Custom instructions from `output.instructionFilePath`)

Этот формат обеспечивает четкую, удобочитаемую структуру, которая одновременно понятна человеку и легко анализируется системами искусственного интеллекта.

Формат простого текста

Чтобы создать вывод в формате простого текста, используйте опцию --style plain :

repomix --style plain
This file is a merged representation of the entire codebase, combining all repository files into a single document. ================================================================ File Summary ================================================================ (Metadata and usage AI instructions) ================================================================ Directory Structure ================================================================ src/ cli/ cliOutput.ts index.ts config/ configLoader.ts (...remaining directories) ================================================================ Files ================================================================ ================ File: src/index.js ================ // File contents here ================ File: src/utils.js ================ // File contents here (...remaining files) ================================================================ Instruction ================================================================ (Custom instructions from `output.instructionFilePath`)

Параметры командной строки

Базовые опции
  • -v, --version : Показать версию инструмента
Параметры вывода
  • -o, --output <file> : Укажите имя выходного файла
  • --style <style> : Укажите стиль вывода ( xml , markdown , plain )
  • --parsable-style : Включить парсируемый вывод на основе выбранной схемы стиля. Обратите внимание, что это может увеличить количество токенов.
  • --compress : выполнить интеллектуальное извлечение кода, сосредоточившись на основных функциях и сигнатурах классов, чтобы сократить количество токенов.
  • --output-show-line-numbers : Показывать номера строк в выводе
  • --copy : дополнительно копировать сгенерированный вывод в системный буфер обмена
  • --no-file-summary : Отключить вывод раздела сводки файла
  • --no-directory-structure : Отключить вывод раздела структуры каталога
  • --remove-comments : Удалить комментарии из поддерживаемых типов файлов
  • --remove-empty-lines : Удалить пустые строки из вывода
  • --header-text <text> : Пользовательский текст для включения в заголовок файла
  • --instruction-file-path <path> : Путь к файлу, содержащему подробные пользовательские инструкции
  • --include-empty-directories : Включить пустые каталоги в вывод
  • --no-git-sort-by-changes : Отключить сортировку файлов по количеству изменений git (включено по умолчанию)
Параметры фильтра
  • --include <patterns> : Список включаемых шаблонов (через запятую)
  • -i, --ignore <patterns> : Дополнительные шаблоны игнорирования (через запятую)
  • --no-gitignore : Отключить использование файла .gitignore
  • --no-default-patterns : Отключить шаблоны по умолчанию
Параметры удаленного репозитория
  • --remote <url> : Обработать удаленный репозиторий Git
  • --remote-branch <name> : Укажите имя удаленной ветки, тег или хэш коммита (по умолчанию — ветка репозитория по умолчанию)
Параметры конфигурации
  • -c, --config <path> : Путь к пользовательскому файлу конфигурации
  • --init : Создать файл конфигурации
  • --global : Использовать глобальную конфигурацию
Параметры безопасности
  • --no-security-check : Отключить проверку безопасности
Параметры подсчета токенов
  • --token-count-encoding <encoding> : Укажите кодировку количества токенов, используемую токенизатором OpenAI tiktoken (например, o200k_base для GPT-4o, cl100k_base для GPT-4/3.5). Подробности кодировки см. в tiktoken model.py .
МКП
Другие варианты
  • --top-files-len <number> : Количество верхних файлов для отображения в сводке
  • --verbose : Включить подробное ведение журнала
  • --quiet : Отключить весь вывод на stdout

Примеры:

repomix -o custom-output.txt repomix -i "*.log,tmp" -v repomix -c ./custom-config.json repomix --style xml repomix --remote https://github.com/user/repo npx repomix src

Обновление Репомикса

Чтобы обновить глобально установленный Repomix:

# Using npm npm update -g repomix # Using yarn yarn global upgrade repomix

Использование npx repomix , как правило, более удобно, поскольку он всегда использует последнюю версию.

Обработка удаленного репозитория

Repomix поддерживает обработку удаленных репозиториев Git без необходимости ручного клонирования. Эта функция позволяет быстро анализировать любой публичный репозиторий Git с помощью одной команды.

Для обработки удаленного репозитория используйте параметр --remote , за которым следует URL-адрес репозитория:

repomix --remote https://github.com/yamadashy/repomix

Вы также можете использовать сокращенный формат GitHub:

repomix --remote yamadashy/repomix

Вы можете указать имя ветки, тег или хэш коммита:

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Using branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main

Или используйте определенный хеш коммита:

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Using commit's URL repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

Сжатие кода

Опция --compress использует Tree-sitter для интеллектуального извлечения кода, фокусируясь на основных функциях и сигнатурах классов, удаляя детали реализации. Это может помочь сократить количество токенов, сохраняя важную структурную информацию.

repomix --compress

Например, этот код:

import { ShoppingItem } from './shopping-item'; /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { let total = 0; for (const item of items) { total += item.price * item.quantity; } return total; } // Shopping item interface interface Item { name: string; price: number; quantity: number; }

Будет сжато до:

import { ShoppingItem } from './shopping-item'; ⋮---- /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { ⋮---- // Shopping item interface interface Item { name: string; price: number; quantity: number; }

[!ПРИМЕЧАНИЕ] Это экспериментальная функция, которую мы будем активно улучшать на основе отзывов пользователей и реального использования.

Интеграция MCP-сервера

Repomix поддерживает протокол Model Context Protocol (MCP) , что позволяет помощникам ИИ напрямую взаимодействовать с вашей кодовой базой. При запуске в качестве сервера MCP Repomix предоставляет инструменты, которые позволяют помощникам ИИ упаковывать локальные или удаленные репозитории для анализа без необходимости ручной подготовки файлов.

repomix --mcp
Настройка MCP-серверов

Чтобы использовать Repomix в качестве сервера MCP с помощниками на основе искусственного интеллекта, такими как Клод, необходимо настроить параметры MCP:

Для VS-кода:

Установить сервер Repomix MCP в VS Code можно одним из следующих способов:

  1. Использование значка установки:

  1. Использование командной строки:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Для инсайдеров VS Code:

code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Для Cline (расширение VS Code):

Отредактируйте файл cline_mcp_settings.json :

{ "mcpServers": { "repomix": { "command": "npx", "args": [ "-y", "repomix", "--mcp" ] } } }

Для курсора:

В Cursor добавьте новый сервер MCP из Cursor Settings > MCP > + Add new global MCP server с конфигурацией, аналогичной Cline.

Для Клода Десктопа:

Отредактируйте файл claude_desktop_config.json , используя конфигурацию, аналогичную конфигурации Клайна.

После настройки ваш помощник на основе искусственного интеллекта сможет напрямую использовать возможности Repomix для анализа кодовых баз без ручной подготовки файлов, что сделает рабочие процессы анализа кода более эффективными.

Доступные инструменты MCP

При работе в качестве сервера MCP Repomix предоставляет следующие инструменты:

  1. pack_codebase : Упаковка локального каталога кода в консолидированный файл для анализа ИИ
  • Параметры:
    • directory : Абсолютный путь к каталогу для упаковки
    • compress : (Необязательно, по умолчанию: true) Следует ли выполнять интеллектуальное извлечение кода
    • includePatterns : (Необязательно) список шаблонов включения, разделенных запятыми.
    • ignorePatterns : (Необязательно) список шаблонов игнорирования, разделенных запятыми.
  1. pack_remote_repository : Извлечение, клонирование и упаковка репозитория GitHub
  • Параметры:
    • remote : URL-адрес репозитория GitHub или формат пользователя/репозитория (например, yamadashy/repomix)
    • compress : (Необязательно, по умолчанию: true) Следует ли выполнять интеллектуальное извлечение кода
    • includePatterns : (Необязательно) список шаблонов включения, разделенных запятыми.
    • ignorePatterns : (Необязательно) список шаблонов игнорирования, разделенных запятыми.
  1. read_repomix_output : чтение содержимого выходного файла Repomix в средах, где прямой доступ к файлу невозможен.
  • Параметры:
    • outputId : идентификатор выходного файла Repomix для чтения
  • Функции:
    • Специально разработан для веб-сред или изолированных приложений.
    • Извлекает содержимое ранее созданных выходных данных, используя их идентификатор.
    • Обеспечивает безопасный доступ к упакованной кодовой базе без необходимости доступа к файловой системе.
  1. file_system_read_file : чтение файла с использованием абсолютного пути с проверкой безопасности
  • Параметры:
    • path : Абсолютный путь к файлу для чтения
  • Функции безопасности:
    • Реализует проверку безопасности с помощью Secretlint
    • Предотвращает доступ к файлам, содержащим конфиденциальную информацию
    • Проверяет абсолютные пути для предотвращения атак обхода каталогов
  1. file_system_read_directory : Вывод списка содержимого каталога с использованием абсолютного пути
  • Параметры:
    • path : Абсолютный путь к каталогу для просмотра
  • Функции:
    • Показывает файлы и каталоги с четкими индикаторами ( [FILE] или [DIR] )
    • Обеспечивает безопасный обход каталогов с правильной обработкой ошибок.
    • Проверяет пути и обеспечивает их абсолютность

⚙️ Конфигурация

Создайте файл repomix.config.json в корневом каталоге вашего проекта для пользовательских конфигураций.

repomix --init

Вот объяснение параметров конфигурации:

ВариантОписаниеПо умолчанию
output.filePathИмя выходного файла"repomix-output.xml"
output.styleСтиль вывода ( xml , markdown , plain )"xml"
output.parsableStyleСледует ли экранировать вывод на основе выбранной схемы стиля. Обратите внимание, что это может увеличить количество токенов.false
output.compressСледует ли выполнять интеллектуальное извлечение кода для уменьшения количества токеновfalse
output.headerTextПользовательский текст для включения в заголовок файлаnull
output.instructionFilePathПуть к файлу, содержащему подробные пользовательские инструкцииnull
output.fileSummaryВключать ли раздел резюме в начало вывода?true
output.directoryStructureВключать ли структуру каталогов в вывод?true
output.removeCommentsУдалять ли комментарии из поддерживаемых типов файловfalse
output.removeEmptyLinesУдалять ли пустые строки из выводаfalse
output.showLineNumbersДобавлять ли номера строк к каждой строке выводаfalse
output.copyToClipboardКопировать ли вывод в системный буфер обмена в дополнение к сохранению файлаfalse
output.topFilesLengthКоличество верхних файлов для отображения в сводке. Если установлено значение 0, сводка не будет отображаться5
output.includeEmptyDirectoriesВключать ли пустые каталоги в структуру репозиторияfalse
output.git.sortByChangesСортировать ли файлы по количеству изменений git (файлы с большим количеством изменений отображаются внизу)true
output.git.sortByChangesMaxCommitsМаксимальное количество коммитов для анализа изменений git100
includeШаблоны файлов для включения (с использованием шаблонов glob )[]
ignore.useGitignoreИспользовать ли шаблоны из файла .gitignore проектаtrue
ignore.useDefaultPatternsИспользовать ли шаблоны игнорирования по умолчаниюtrue
ignore.customPatternsДополнительные шаблоны для игнорирования (с использованием шаблонов glob )[]
security.enableSecurityCheckСледует ли проводить проверку безопасности файловtrue
tokenCount.encodingКодировка количества токенов, используемая токенизатором tiktoken OpenAI (например, o200k_base для GPT-4o, cl100k_base для GPT-4/3.5). Подробности кодировки см. в tiktoken model.py ."o200k_base"

Файл конфигурации поддерживает синтаксис JSON5 , который позволяет:

  • Комментарии (как однострочные, так и многострочные)
  • Завершающие запятые в объектах и массивах
  • Имена свойств без кавычек
  • Более свободный синтаксис строк

Пример конфигурации:

{ "output": { "filePath": "repomix-output.xml", "style": "xml", "parsableStyle": true, "compress": false, "headerText": "Custom header information for the packed file.", "fileSummary": true, "directoryStructure": true, "removeComments": false, "removeEmptyLines": false, "showLineNumbers": false, "copyToClipboard": true, "topFilesLength": 5, "includeEmptyDirectories": false, "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100 } }, "include": [ "**/*" ], "ignore": { "useGitignore": true, "useDefaultPatterns": true, // Patterns can also be specified in .repomixignore "customPatterns": [ "additional-folder", "**/*.log" ], }, "security": { "enableSecurityCheck": true }, "tokenCount": { "encoding": "o200k_base" }, }

Глобальная конфигурация

Чтобы создать глобальный файл конфигурации:

repomix --init --global

Глобальный файл конфигурации будет создан в:

  • Windows: %LOCALAPPDATA%\Repomix\repomix.config.json
  • macOS/Linux: $XDG_CONFIG_HOME/repomix/repomix.config.json или ~/.config/repomix/repomix.config.json

Примечание: Локальная конфигурация (если присутствует) имеет приоритет над глобальной конфигурацией.

Включить и игнорировать

Включить шаблоны

Repomix теперь поддерживает указание файлов для включения с использованием шаблонов glob . Это обеспечивает более гибкий и мощный выбор файлов:

  • Используйте **/*.js для включения всех файлов JavaScript в любой директории.
  • Используйте src/**/* для включения всех файлов в каталоге src и его подкаталогах.
  • Объедините несколько шаблонов, таких как ["src/**/*.js", "**/*.md"] чтобы включить файлы JavaScript в src и все файлы Markdown
Игнорировать шаблоны

Repomix предлагает несколько методов установки шаблонов игнорирования для исключения определенных файлов или каталогов в процессе упаковки:

  • .gitignore : По умолчанию используются шаблоны, перечисленные в файлах .gitignore вашего проекта и .git/info/exclude . Это поведение можно контролировать с помощью параметра ignore.useGitignore или опции cli --no-gitignore .
  • Шаблоны по умолчанию : Repomix включает список по умолчанию часто исключаемых файлов и каталогов (например, node_modules, .git, двоичные файлы). Эту функцию можно контролировать с помощью параметра ignore.useDefaultPatterns или параметра cli --no-default-patterns . Более подробную информацию см. в defaultIgnore.ts .
  • .repomixignore : Вы можете создать файл .repomixignore в корне вашего проекта, чтобы определить шаблоны игнорирования, специфичные для Repomix. Этот файл имеет тот же формат, что и .gitignore .
  • Пользовательские шаблоны : Дополнительные шаблоны игнорирования можно указать с помощью параметра ignore.customPatterns в файле конфигурации. Вы можете переопределить этот параметр с помощью параметра командной строки -i, --ignore .

Порядок приоритета (от высшего к низшему):

  1. Пользовательские шаблоны ignore.customPatterns
  2. .repomixignore
  3. .gitignore и .git/info/exclude (если ignore.useGitignore имеет значение true и --no-gitignore не используется)
  4. Шаблоны по умолчанию (если ignore.useDefaultPatterns имеет значение true и --no-default-patterns не используется)

Этот подход позволяет гибко настраивать исключение файлов в зависимости от потребностей вашего проекта. Он помогает оптимизировать размер сгенерированного файла пакета, гарантируя исключение файлов, чувствительных к безопасности, и больших двоичных файлов, одновременно предотвращая утечку конфиденциальной информации.

Примечание: Двоичные файлы не включены в упакованный вывод по умолчанию, но их пути указаны в разделе "Структура репозитория" выходного файла. Это обеспечивает полный обзор структуры репозитория, сохраняя при этом эффективность упакованного файла и его текстовую основу.

Индивидуальная инструкция

Параметр output.instructionFilePath позволяет указать отдельный файл, содержащий подробные инструкции или контекст вашего проекта. Это позволяет системам ИИ понимать конкретный контекст и требования вашего проекта, что потенциально приводит к более релевантному и адаптированному анализу или предложениям.

Вот пример того, как можно использовать эту функцию:

  1. Создайте файл с именем repomix-instruction.md в корневом каталоге вашего проекта:
# Coding Guidelines - Follow the Airbnb JavaScript Style Guide - Suggest splitting files into smaller, focused units when appropriate - Add comments for non-obvious logic. Keep all text in English - All new features should have corresponding unit tests # Generate Comprehensive Output - Include all content without abbreviation, unless specified otherwise - Optimize for handling large codebases while maintaining output quality
  1. В repomix.config.json добавьте опцию instructionFilePath :
{ "output": { "instructionFilePath": "repomix-instruction.md", // other options... } }

Когда Repomix сгенерирует вывод, он включит содержимое repomix-instruction.md в специальный раздел.

Примечание: Содержимое инструкции добавляется в конец выходного файла. Такое размещение может быть особенно эффективным для систем ИИ. Для тех, кто хочет понять, почему это может быть полезно, Anthropic дает некоторые сведения в своей документации:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips

Размещайте длинные данные в верхней части: размещайте длинные документы и входные данные (~20K+ токенов) в верхней части вашего приглашения, над вашим запросом, инструкциями и примерами. Это может значительно улучшить производительность Claude во всех моделях. Запросы в конце могут улучшить качество ответа до 30% в тестах, особенно со сложными многодокументными входными данными.

Удаление комментария

Когда output.removeComments установлен в true , Repomix попытается удалить комментарии из поддерживаемых типов файлов. Эта функция может помочь уменьшить размер выходного файла и сосредоточиться на существенном содержимом кода.

Поддерживаемые языки включают:
HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell и YAML.

Примечание: Процесс удаления комментариев консервативен, чтобы избежать случайного удаления кода. В сложных случаях некоторые комментарии могут быть сохранены.

🔍 Проверка безопасности

Repomix включает функцию проверки безопасности, которая использует Secretlint для обнаружения потенциально конфиденциальной информации в ваших файлах. Эта функция помогает вам определить возможные риски безопасности перед тем, как поделиться вашим упакованным репозиторием.

Результаты проверки безопасности будут отображены в выходных данных CLI после завершения процесса упаковки. Если будут обнаружены какие-либо подозрительные файлы, вы увидите список этих файлов вместе с предупреждающим сообщением.

Пример вывода:

🔍 Security Check: ────────────────── 2 suspicious file(s) detected: 1. src/utils/test.txt 2. tests/utils/secretLintUtils.test.ts Please review these files for potentially sensitive information.

По умолчанию функция проверки безопасности Repomix включена. Вы можете отключить ее, установив security.enableSecurityCheck на false в вашем файле конфигурации:

{ "security": { "enableSecurityCheck": false } }

Или используйте параметр командной строки --no-security-check :

repomix --no-security-check

[!ПРИМЕЧАНИЕ] Отключение проверок безопасности может раскрыть конфиденциальную информацию. Используйте эту опцию с осторожностью и только при необходимости, например, при работе с тестовыми файлами или документацией, содержащей примеры учетных данных.

🤖 Использование Repomix с действиями GitHub

Вы также можете использовать Repomix в рабочих процессах GitHub Actions. Это полезно для автоматизации процесса упаковки вашей кодовой базы для анализа ИИ.

Основное использование:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.xml style: xml

Используйте --style для генерации вывода в различных форматах:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.md style: markdown

Упакуйте определенные каталоги со сжатием:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: directories: src tests include: "**/*.ts,**/*.md" ignore: "**/*.test.ts" output: repomix-output.txt compress: true

Загрузите выходной файл как артефакт:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: directories: src output: repomix-output.txt compress: true - name: Upload Repomix output uses: actions/upload-artifact@v4 with: name: repomix-output path: repomix-output.txt

Полный пример рабочего процесса:

name: Pack repository with Repomix on: workflow_dispatch: push: branches: [ main ] pull_request: branches: [ main ] jobs: pack-repo: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.xml - name: Upload Repomix output uses: actions/upload-artifact@v4 with: name: repomix-output.xml path: repomix-output.xml retention-days: 30

Полный пример рабочего процесса смотрите здесь .

Действия Входы

ИмяОписаниеПо умолчанию
directoriesСписок каталогов для обработки, разделенных пробелами (например, src tests docs ).
includeРазделенные запятыми шаблоны для включения файлов (например, **/*.ts,**/*.md )""
ignoreРазделенные запятыми шаблоны glob для игнорирования файлов (например, **/*.test.ts,**/node_modules/** )""
outputОтносительный путь к упакованному файлу (расширение определяет формат: .txt , .md , .xml )repomix-output.xml
compressВключить интеллектуальное сжатие для уменьшения размера выходных данных путем удаления деталей реализацииtrue
styleСтиль вывода ( xml , markdown , plain )xml
additional-argsДополнительные необработанные аргументы для CLI repomix (например, --no-file-summary --no-security-check )""
repomix-versionВерсия пакета npm для установки (поддерживает диапазоны semver, теги или определенные версии, например 0.2.25 )latest

Действия Выходы

ИмяОписание
output_fileПуть к сгенерированному выходному файлу. Может использоваться на последующих этапах для загрузки артефакта, обработки LLM или других операций. Файл содержит форматированное представление вашей кодовой базы на основе указанных параметров.

📚 Использование Repomix в качестве библиотеки

Помимо использования Repomix в качестве инструмента CLI, вы также можете использовать его в качестве библиотеки в своих приложениях Node.js.

Установка

npm install repomix

Базовое использование

import { runCli, type CliOptions } from 'repomix'; // Process current directory with custom options async function packProject() { const options = { output: 'output.xml', style: 'xml', compress: true, quiet: true } as CliOptions; const result = await runCli(['.'], process.cwd(), options); return result.packResult; }

Процесс удаленного репозитория

import { runCli, type CliOptions } from 'repomix'; // Clone and process a GitHub repo async function processRemoteRepo(repoUrl) { const options = { remote: repoUrl, output: 'output.xml', compress: true } as CliOptions; return await runCli(['.'], process.cwd(), options); }

Использование основных компонентов

Если вам нужен больший контроль, вы можете использовать низкоуровневые API:

import { searchFiles, collectFiles, processFiles, TokenCounter } from 'repomix'; async function analyzeFiles(directory) { // Find and collect files const { filePaths } = await searchFiles(directory, { /* config */ }); const rawFiles = await collectFiles(filePaths, directory); const processedFiles = await processFiles(rawFiles, { /* config */ }); // Count tokens const tokenCounter = new TokenCounter('o200k_base'); // Return analysis results return processedFiles.map(file => ({ path: file.path, tokens: tokenCounter.countTokens(file.content) })); }

Дополнительные примеры можно найти в исходном коде по адресу website/server/src/remoteRepo.ts, где показано, как repomix.com использует библиотеку.

🤝 Вклад

Мы приветствуем вклады от сообщества! Чтобы начать, пожалуйста, ознакомьтесь с нашим Руководством по внесению вклада .

Участники

🔒 Политика конфиденциальности

Инструмент командной строки Repomix

  • Сбор данных : инструмент Repomix CLI не собирает, не передает и не хранит какие-либо пользовательские данные, телеметрию или информацию репозитория.
  • Использование сети : Repomix CLI работает полностью в автономном режиме после установки. Единственные случаи, когда требуется подключение к Интернету:
    • Установка через npm/yarn.
    • Использование флага --remote для обработки удаленных репозиториев.
    • Проверка обновлений (запускается вручную).
  • Вопросы безопасности : поскольку вся обработка выполняется локально, Repomix CLI можно безопасно использовать с частными и внутренними репозиториями.

Сайт Repomix ( repomix.com )

  • Сбор данных : Сайт Repomix использует Google Analytics для сбора данных об использовании, таких как просмотры страниц и взаимодействие пользователей. Это помогает нам понять, как используется сайт, и улучшить пользовательский опыт.

Отказ от ответственности

Repomix (как инструмент CLI, так и веб-сайт) предоставляется «как есть» без каких-либо гарантий.
Мы не несем ответственности за то, как используются полученные результаты, включая, помимо прочего, их точность, законность или любые потенциальные последствия, возникающие в результате их использования.

📜 Лицензия

Данный проект лицензирован в соответствии с лицензией MIT .

-
security - not tested
A
license - permissive license
-
quality - not tested

Repomix MCP Server позволяет моделям ИИ эффективно анализировать кодовые базы, упаковывая локальные или удаленные репозитории в оптимизированные отдельные файлы с интеллектуальным сжатием с помощью Tree-sitter, что позволяет значительно сократить использование токенов, сохраняя при этом структуру кода и основные сигнатуры.

  1. 🎉 Новое: сайт Repomix и сообщество Discord!
    1. 🌟 Особенности
      1. 🚀 Быстрый старт
        1. Использование инструмента CLI >_
        2. Использование веб-сайта 🌐
        3. Использование расширения VSCode ⚡️
        4. Альтернативные инструменты 🛠️
      2. 📊 Использование
        1. Использование Docker 🐳
        2. Примеры подсказок
        3. Обсуждение в сообществе
        4. Формат выходного файла
        5. Параметры командной строки
        6. Обновление Репомикса
        7. Обработка удаленного репозитория
        8. Сжатие кода
        9. Интеграция MCP-сервера
      3. ⚙️ Конфигурация
        1. Глобальная конфигурация
        2. Включить и игнорировать
        3. Индивидуальная инструкция
        4. Удаление комментария
      4. 🔍 Проверка безопасности
        1. 🤖 Использование Repomix с действиями GitHub
          1. Действия Входы
          2. Действия Выходы
        2. 📚 Использование Repomix в качестве библиотеки
          1. Установка
          2. Базовое использование
          3. Процесс удаленного репозитория
          4. Использование основных компонентов
        3. 🤝 Вклад
          1. Участники
        4. 🔒 Политика конфиденциальности
          1. Инструмент командной строки Repomix
          2. Сайт Repomix ( repomix.com )
          3. Отказ от ответственности
        5. 📜 Лицензия

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            AiDD MCP Server provides a secure interface for AI agents to perform file system operations and code analysis, enhancing AI-assisted development workflows across multiple programming languages.
            Last updated -
            29
            54
            Python
            Apache 2.0
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            quality
            An MCP server that implements Claude Code-like functionality, allowing the AI to analyze codebases, modify files, execute commands, and manage projects through direct file system interactions.
            Last updated -
            132
            Python
            MIT License
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            quality
            A MCP server that transforms code repositories from GitHub, GitLab, or local directories into LLM-friendly formats, preserving context and structure for better AI processing.
            Last updated -
            1
            Python
            Apache 2.0
          • -
            security
            -
            license
            -
            quality
            An MCP server that automatically generates documentation, test plans, and code reviews for code repositories by analyzing directory structures and code files using AI models via OpenRouter API.
            Last updated -
            3
            TypeScript
            Creative Commons Zero v1.0 Universal

          View all related MCP servers

          ID: lczqcx54uv