Skip to content

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

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

Упаковка всего репозитория:

bash
repomix

Типичные сценарии использования

Упаковка конкретных директорий

bash
repomix path/to/directory

Включение конкретных файлов

Используйте glob-паттерны:

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

Исключение файлов

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

Удалённые репозитории

bash
# Использование GitHub URL
repomix --remote https://github.com/user/repo

# Использование сокращения
repomix --remote user/repo

# Конкретная ветка/тег/коммит
repomix --remote user/repo --remote-branch main
repomix --remote user/repo --remote-branch 935b695

Ввод списка файлов (stdin)

Передавайте пути файлов через stdin для максимальной гибкости:

bash
# Использование команды find
find src -name "*.ts" -type f | repomix --stdin

# Использование git для получения отслеживаемых файлов
git ls-files "*.ts" | repomix --stdin

# Использование ripgrep (rg) для поиска файлов
rg --files --type ts | repomix --stdin

# Использование grep для поиска файлов с определённым содержимым
grep -l "TODO" **/*.ts | repomix --stdin

# Использование ripgrep для поиска файлов с определённым содержимым
rg -l "TODO|FIXME" --type ts | repomix --stdin

# Использование sharkdp/fd для поиска файлов
fd -e ts | repomix --stdin

# Использование fzf для выбора из всех файлов
fzf -m | repomix --stdin

# Интерактивный выбор файлов с fzf
find . -name "*.ts" -type f | fzf -m | repomix --stdin

# Использование ls с glob-паттернами
ls src/**/*.ts | repomix --stdin

# Из файла, содержащего пути файлов
cat file-list.txt | repomix --stdin

# Прямой ввод с echo
echo -e "src/index.ts\nsrc/utils.ts" | repomix --stdin

Опция --stdin позволяет передавать список путей файлов в Repomix, давая вам максимальную гибкость в выборе файлов для упаковки.

При использовании --stdin указанные файлы фактически добавляются к паттернам включения. Это означает, что обычное поведение include и ignore по-прежнему применяется — файлы, указанные через stdin, всё равно будут исключены, если они соответствуют паттернам игнорирования.

NOTE

При использовании --stdin пути файлов могут быть относительными или абсолютными, и Repomix автоматически обработает разрешение путей и удаление дубликатов.

Сжатие кода

bash
repomix --compress

# Также можно использовать с удалёнными репозиториями:
repomix --remote yamadashy/repomix --compress

Интеграция с Git

Включите информацию Git для предоставления контекста разработки для анализа ИИ:

bash
# Включить git diff (незакоммиченные изменения)
repomix --include-diffs

# Включить логи git-коммитов (по умолчанию последние 50)
repomix --include-logs

# Включить определённое количество коммитов
repomix --include-logs --include-logs-count 10

# Включить и diff, и логи
repomix --include-diffs --include-logs

Это добавляет ценный контекст о:

  • Последних изменениях: Git diff показывает незакоммиченные модификации
  • Паттернах разработки: Git-логи раскрывают, какие файлы обычно изменяются вместе
  • Истории коммитов: Последние сообщения коммитов дают представление о фокусе разработки
  • Связях файлов: Понимание того, какие файлы модифицируются в одних и тех же коммитах

Оптимизация подсчёта токенов

Понимание распределения токенов в вашей кодовой базе критически важно для оптимизации взаимодействия с ИИ. Используйте опцию --token-count-tree для визуализации использования токенов в проекте:

bash
repomix --token-count-tree

Это отображает иерархическое представление вашей кодовой базы с количеством токенов:

🔢 Token Count Tree:
────────────────────
└── src/ (70,925 tokens)
    ├── cli/ (12,714 tokens)
    │   ├── actions/ (7,546 tokens)
    │   └── reporters/ (990 tokens)
    └── core/ (41,600 tokens)
        ├── file/ (10,098 tokens)
        └── output/ (5,808 tokens)

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

bash
repomix --token-count-tree 1000  # Показывать только файлы/директории с 1000+ токенов

Это помогает вам:

  • Определить файлы с большим количеством токенов, которые могут превысить лимиты контекста ИИ
  • Оптимизировать выбор файлов с помощью паттернов --include и --ignore
  • Планировать стратегии сжатия, нацеливаясь на самых крупных «потребителей»
  • Балансировать контент и контекст при подготовке кода для анализа ИИ

Форматы вывода

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

bash
repomix --style xml

Markdown

bash
repomix --style markdown

JSON

bash
repomix --style json

Простой текст

bash
repomix --style plain

Дополнительные опции

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

bash
repomix --remove-comments

Показ номеров строк

bash
repomix --output-show-line-numbers

Копирование в буфер обмена

bash
repomix --copy

Отключение проверки безопасности

bash
repomix --no-security-check

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

Инициализация файла конфигурации:

bash
repomix --init

См. Руководство по конфигурации для подробностей.

Released under the MIT License.