All skills
Skillintermediate

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

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

Claude Code Knowledge Pack7/10/2026

Overview

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

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

Форматы файла конфигурации

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

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

  1. TypeScript (repomix.config.ts, repomix.config.mts, repomix.config.cts)
  2. JavaScript/ES Module (repomix.config.js, repomix.config.mjs, repomix.config.cjs)
  3. JSON (repomix.config.json5, repomix.config.jsonc, repomix.config.json)

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

Создайте файл конфигурации в директории вашего проекта:

repomix --init

Это создаст файл repomix.config.json с настройками по умолчанию. Вы также можете создать глобальный файл конфигурации, который будет использоваться как запасной, когда локальная конфигурация не найдена:

repomix --init --global

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

Файлы конфигурации TypeScript предоставляют лучший опыт разработки с полной проверкой типов и поддержкой IDE.

Установка:

Чтобы использовать конфигурацию TypeScript или JavaScript с defineConfig, вам нужно установить Repomix как dev-зависимость:

npm install -D repomix

Пример:

// repomix.config.ts

  output: {
    filePath: 'output.xml',
    style: 'xml',
    removeComments: true,
  },
  ignore: {
    customPatterns: ['**/node_modules/**', '**/dist/**'],
  },
});

Преимущества:

  • ✅ Полная проверка типов TypeScript в вашей IDE
  • ✅ Отличное автодополнение и IntelliSense
  • ✅ Использование динамических значений (временные метки, переменные окружения и т.д.)

Пример с динамическими значениями:

// repomix.config.ts

// Генерация имени файла на основе временной метки
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

  output: {
    filePath: `output-${timestamp}.xml`,
    style: 'xml',
  },
});

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

Файлы конфигурации JavaScript работают так же, как TypeScript, поддерживая defineConfig и динамические значения.

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

ПараметрОписаниеПо умолчанию
input.maxFileSizeМаксимальный размер файла в байтах для обработки. Файлы больше этого значения будут пропущены. Полезно для исключения больших бинарных или data-файлов50000000
output.filePathИмя выходного файла. Поддерживает форматы XML, Markdown и простой текст"repomix-output.xml"
output.styleСтиль вывода (xml, markdown, json, plain). Каждый формат имеет свои преимущества для разных ИИ-инструментов"xml"
output.parsableStyleЭкранировать вывод согласно выбранной схеме стиля. Улучшает парсинг, но может увеличить количество токеновfalse
output.compressВыполнять интеллектуальное извлечение кода с помощью Tree-sitter для уменьшения количества токенов при сохранении структурыfalse
output.headerTextПользовательский текст для включения в заголовок файла. Полезно для предоставления контекста или инструкций для ИИ-инструментовnull
output.instructionFilePathПуть к файлу с детальными пользовательскими инструкциями для обработки ИИnull
output.fileSummaryВключать ли раздел сводки в начале с количеством файлов, размерами и другими метрикамиtrue
output.directoryStructureВключать ли структуру директорий в вывод. Помогает ИИ понять организацию проектаtrue
output.filesВключать ли содержимое файлов в вывод. Установите false для включения только структуры и метаданныхtrue
output.removeCommentsУдалять ли комментарии из поддерживаемых типов файлов. Может уменьшить шум и количество токеновfalse
output.removeEmptyLinesУдалять ли пустые строки из вывода для уменьшения количества токеновfalse
output.showLineNumbersДобавлять ли номера строк к каждой строке. Полезно для ссылок на конкретные части кодаfalse
output.truncateBase64Обрезать ли длинные строки base64-данных (например, изображения) для уменьшения количества токеновfalse
output.copyToClipboardКопировать ли вывод в системный буфер обмена помимо сохранения файлаfalse
output.splitOutputРазделить вывод на несколько нумерованных файлов по максимальному размеру на часть (напр., 1000000 для ~1МБ). CLI принимает читаемые размеры, такие как 500kb или 2mb. Сохраняет каждый файл в пределах лимита и предотвращает разделение исходных файлов между частямиНе задано
output.topFilesLengthКоличество топ-файлов для отображения в сводке. Если установлено 0, сводка не будет отображаться5
output.includeEmptyDirectoriesВключать ли пустые директории в структуру репозиторияfalse
output.includeFullDirectoryStructureПри использовании паттернов include отображать ли полное дерево директорий (с учётом паттернов игнорирования), обрабатывая только включённые файлы. Предоставляет полный контекст репозитория для анализа ИИfalse
output.git.sortByChangesСортировать ли файлы по количеству изменений в git. Файлы с большим количеством изменений появляются внизуtrue
output.git.sortByChangesMaxCommitsМаксимальное количество коммитов для анализа изменений git. Ограничивает глубину истории для производительности100
output.git.includeDiffsВключать ли git diff в вывод. Показывает изменения рабочего дерева и staged отдельноfalse
output.git.includeLogsВключать ли git-логи в вывод. Показывает историю коммитов с датами, сообщениями и путями файловfalse
output.git.includeLogsCountКоличество git-коммитов для включения в вывод50
includeПаттерны файлов для включения с использованием glob-паттернов[]
ignore.useGitignoreИспользовать ли паттерны из файла .gitignore проектаtrue
ignore.useDotIgnoreИспользовать ли паттерны из файла .ignore проектаtrue
ignore.useDefaultPatternsИспользовать ли паттерны игнорирования по умолчанию (node_modules, .git и т.д.)true
ignore.customPatternsДополнительные паттерны для игнорирования с использованием glob-паттернов[]
security.enableSecurityCheckВыполнять ли проверки безопасности с помощью Secretlint для обнаружения конфиденциальной информацииtrue
tokenCount.encodingКодировка подсчёта токенов, совместимая с OpenAI (например, o200k_base для GPT-4o, cl100k_base для GPT-4/3.5). Использует gpt-tokenizer."o200k_base"

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

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

Валидация схемы

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

{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml"
  }
}

Это обеспечивает автодополнение и валидацию в редакторах, поддерживающих JSON-схему.

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

Вот пример полного файла конфигурации (repomix.config.json):

{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "input": {
    "maxFileSize": 50000000
  },
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml",
    "parsableStyle": false,
    "compress": false,
    "headerText": "Пользовательская информация заголовка для упакованного файла.",
    "fileSummary": true,
    "directoryStructure": true,
    "files": true,
    "removeComments": false,
    "removeEmptyLines": false,
    "topFilesLength": 5,
    "showLineNumbers": false,
    "truncateBase64": false,
    "copyToClipboard": false,
    "includeEmptyDirectories": false,
    "git": {
      "sortByChanges": true,
      "sortByChangesMaxCommits": 100,
      "includeDiffs": false,
      "includeLogs": false,
      "includeLogsCount": 50
    }
  },
  "include": ["**/*"],
  "ignore": {
    "useGitignore": true,
    "useDefaultPatterns": true,
    // Паттерны также можно указать в .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Расположение файлов конфигурации

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

  1. Локальный файл конфигурации в текущей директории (порядок приоритета: TS > JS > JSON)
    • TypeScript: repomix.config.ts, repomix.config.mts, repomix.config.cts
    • JavaScript: repomix.config.js, repomix.config.mjs, repomix.config.cjs
    • JSON: repomix.config.json5, repomix.config.jsonc, repomix.config.json
  2. Глобальный файл конфигурации (порядок приоритета: TS > JS > JSON)
    • Windows:
      • TypeScript: %LOCALAPPDATA%\\Repomix\\repomix.config.ts, .mts, .cts
      • JavaScript: %LOCALAPPDATA%\\Repomix\\repomix.config.js, .mjs, .cjs
      • JSON: %LOCALAPPDATA%\\Repomix\\repomix.config.json5, .jsonc, .json
    • macOS/Linux:
      • TypeScript: ~/.config/repomix/repomix.config.ts, .mts, .cts
      • JavaScript: ~/.config/repomix/repomix.config.js, .mjs, .cjs
      • JSON: ~/.config/repomix/repomix.config.json5, .jsonc, .json

Параметры командной строки имеют приоритет над настройками файла конфигурации.

Паттерны включения

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

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

Вы можете указать паттерны включения в файле конфигурации:

{
  "include": ["src/**/*", "tests/**/*.test.js"]
}

Или используйте параметр командной строки --include для одноразовой фильтрации.

Паттерны игнорирования

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

  • .gitignore: По умолчанию используются паттерны из файлов .gitignore вашего проекта и .git/info/exclude. Это поведение можно контролировать с помощью настройки ignore.useGitignore или параметра CLI --no-gitignore.
  • .ignore: Вы можете использовать файл .ignore в корне проекта, следуя тому же формату, что и .gitignore. Этот файл учитывается такими инструментами, как ripgrep и silver searcher, что уменьшает необходимость поддерживать несколько файлов игнорирования. Это поведение можно контролировать с помощью настройки ignore.useDotIgnore или параметра CLI --no-dot-ignore.
  • Паттерны по умолчанию: 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, .ignore, .gitignore и .git/info/exclude):
    • Во вложенных директориях файлы в более глубоких директориях имеют более высокий приоритет
    • В одной директории эти файлы объединяются без определённого порядка
  3. Паттерны по умолчанию (если ignore.useDefaultPatterns равно true и --no-default-patterns не используется)

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