# Базовое использование
## Быстрый старт
Упаковка всего репозитория:
```bash
repomix
```
## Типичные сценарии использования
### Упаковка конкретных директорий
```bash
repomix path/to/directory
```
### Включение конкретных файлов
Используйте [glob-паттерны](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax):
```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
```
См. [Руководство по конфигурации](/ru/guide/configuration) для подробностей.