All skills
Skillintermediate

Configuración

Repomix puede configurarse mediante un archivo de configuración o opciones de línea de comandos. El archivo de configuración le permite personalizar varios aspectos de cómo se procesa y genera la salida de su base de código.

Claude Code Knowledge Pack7/10/2026

Overview

Configuración

Repomix puede configurarse mediante un archivo de configuración o opciones de línea de comandos. El archivo de configuración le permite personalizar varios aspectos de cómo se procesa y genera la salida de su base de código.

Formatos de archivos de configuración

Repomix admite múltiples formatos de archivos de configuración para mayor flexibilidad y facilidad de uso.

Repomix buscará automáticamente archivos de configuración en el siguiente orden de prioridad:

  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)

Configuración JSON

Cree un archivo de configuración en el directorio de su proyecto:

repomix --init

Esto creará un archivo repomix.config.json con la configuración predeterminada. También puede crear un archivo de configuración global que se utilizará como respaldo cuando no se encuentre una configuración local:

repomix --init --global

Configuración TypeScript

Los archivos de configuración TypeScript ofrecen la mejor experiencia de desarrollo con verificación completa de tipos y soporte IDE.

Instalación:

Para usar la configuración TypeScript o JavaScript con defineConfig, debe instalar Repomix como dependencia de desarrollo:

npm install -D repomix

Ejemplo:

// repomix.config.ts

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

Ventajas:

  • ✅ Verificación completa de tipos TypeScript en su IDE
  • ✅ Excelente autocompletado e IntelliSense del IDE
  • ✅ Uso de valores dinámicos (marcas de tiempo, variables de entorno, etc.)

Ejemplo de valores dinámicos:

// repomix.config.ts

// Generar nombre de archivo basado en marca de tiempo
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

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

Configuración JavaScript

Los archivos de configuración JavaScript funcionan igual que TypeScript, admitiendo defineConfig y valores dinámicos.

Opciones de configuración

OpciónDescripciónPredeterminado
input.maxFileSizeTamaño máximo de archivo en bytes para procesar. Los archivos más grandes serán ignorados. Útil para excluir archivos binarios grandes o archivos de datos50000000
output.filePathNombre del archivo de salida. Admite formatos XML, Markdown y texto plano"repomix-output.xml"
output.styleEstilo de salida (xml, markdown, json, plain). Cada formato tiene sus propias ventajas para diferentes herramientas de IA"xml"
output.parsableStyleIndica si se debe escapar la salida según el esquema de estilo elegido. Permite un mejor análisis pero puede aumentar el recuento de tokensfalse
output.compressIndica si se debe realizar una extracción inteligente de código usando Tree-sitter para reducir el recuento de tokens mientras se preserva la estructurafalse
output.headerTextTexto personalizado para incluir en el encabezado del archivo. Útil para proporcionar contexto o instrucciones a las herramientas de IAnull
output.instructionFilePathRuta a un archivo que contiene instrucciones personalizadas detalladas para el procesamiento de IAnull
output.fileSummaryIndica si se debe incluir una sección de resumen al principio mostrando recuentos de archivos, tamaños y otras métricastrue
output.directoryStructureIndica si se debe incluir la estructura de directorios en la salida. Ayuda a la IA a entender la organización del proyectotrue
output.filesIndica si se debe incluir el contenido de los archivos en la salida. Establecer en false para incluir solo estructura y metadatostrue
output.removeCommentsIndica si se deben eliminar los comentarios de los tipos de archivos soportados. Puede reducir el ruido y el recuento de tokensfalse
output.removeEmptyLinesIndica si se deben eliminar las líneas vacías de la salida para reducir el recuento de tokensfalse
output.showLineNumbersIndica si se deben agregar números de línea a cada línea. Útil para referenciar partes específicas del códigofalse
output.truncateBase64Indica si se deben truncar las cadenas de datos base64 largas (por ejemplo, imágenes) para reducir el recuento de tokensfalse
output.copyToClipboardIndica si se debe copiar la salida al portapapeles del sistema además de guardar el archivofalse
output.splitOutputDividir la salida en múltiples archivos numerados por tamaño máximo por parte (ej., 1000000 para ~1MB). CLI acepta tamaños legibles como 500kb o 2mb. Mantiene cada archivo bajo el límite y evita dividir archivos de origen entre partesNo establecido
output.topFilesLengthNúmero de archivos principales para mostrar en el resumen. Si se establece en 0, no se mostrará ningún resumen5
output.includeEmptyDirectoriesIndica si se deben incluir directorios vacíos en la estructura del repositoriofalse
output.includeFullDirectoryStructureAl usar patrones include, indica si se debe mostrar el árbol de directorios completo (respetando los patrones ignore) mientras se procesan solo los archivos incluidos. Proporciona contexto completo del repositorio para análisis de IAfalse
output.git.sortByChangesIndica si se deben ordenar los archivos por número de cambios git. Los archivos con más cambios aparecen al finaltrue
output.git.sortByChangesMaxCommitsNúmero máximo de commits para analizar al contar cambios git. Limita la profundidad del historial por rendimiento100
output.git.includeDiffsIndica si se deben incluir las diferencias git en la salida. Muestra por separado los cambios del árbol de trabajo y los cambios preparadosfalse
output.git.includeLogsIndica si se deben incluir los logs de git en la salida. Muestra el historial de commits con fechas, mensajes y rutas de archivosfalse
output.git.includeLogsCountNúmero de commits de log de git a incluir en la salida50
includePatrones de archivos a incluir usando patrones glob[]
ignore.useGitignoreIndica si se deben usar los patrones del archivo .gitignore del proyectotrue
ignore.useDotIgnoreIndica si se deben usar los patrones del archivo .ignore del proyectotrue
ignore.useDefaultPatternsIndica si se deben usar los patrones de ignorar predeterminados (node_modules, .git, etc.)true
ignore.customPatternsPatrones adicionales para ignorar usando patrones glob[]
security.enableSecurityCheckIndica si se deben realizar comprobaciones de seguridad usando Secretlint para detectar información sensibletrue
tokenCount.encodingCodificación de recuento de tokens compatible con OpenAI (por ejemplo, o200k_base para GPT-4o, cl100k_base para GPT-4/3.5). Utiliza gpt-tokenizer."o200k_base"

El archivo de configuración admite la sintaxis JSON5, que permite:

  • Comentarios (tanto de una línea como multilínea)
  • Comas finales en objetos y arrays
  • Nombres de propiedades sin comillas
  • Sintaxis de cadena más flexible

Validación de esquema

Puede habilitar la validación de esquema para su archivo de configuración agregando la propiedad $schema:

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

Esto proporciona autocompletado y validación en editores que admiten esquemas JSON.

Ejemplo de archivo de configuración

Aquí hay un ejemplo de un archivo de configuración completo (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": "Información de encabezado personalizada para el archivo empaquetado.",
    "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,
    // Los patrones también se pueden especificar en .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Ubicaciones de los archivos de configuración

Repomix busca los archivos de configuración en el siguiente orden:

  1. Archivo de configuración local en el directorio actual (orden de prioridad: 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. Archivo de configuración global (orden de prioridad: 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

Las opciones de línea de comandos tienen prioridad sobre la configuración del archivo.

Patrones de inclusión

Repomix admite especificar archivos para incluir usando patrones glob. Esto permite una selección de archivos más flexible y potente:

  • Use **/*.js para incluir todos los archivos JavaScript en cualquier directorio
  • Use src/**/* para incluir todos los archivos dentro del directorio src y sus subdirectorios
  • Combine múltiples patrones como ["src/**/*.js", "**/*.md"] para incluir archivos JavaScript en src y todos los archivos Markdown

Puede especificar patrones de inclusión en su archivo de configuración:

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

O use la opción de línea de comandos --include para filtrado único.

Patrones de ignorar

Repomix ofrece múltiples métodos para establecer patrones de ignorar para excluir archivos o directorios específicos durante el proceso de empaquetado:

  • .gitignore: Por defecto, se utilizan los patrones listados en los archivos .gitignore de su proyecto y .git/info/exclude. Este comportamiento se puede controlar con la configuración ignore.useGitignore o la opción CLI --no-gitignore.
  • .ignore: Puede usar un archivo .ignore en la raíz de su proyecto, siguiendo el mismo formato que .gitignore. Este archivo es respetado por herramientas como ripgrep y the silver searcher, reduciendo la necesidad de mantener múltiples archivos de ignorar. Este comportamiento se puede controlar con la configuración ignore.useDotIgnore o la opción CLI --no-dot-ignore.
  • Patrones predeterminados: Repomix incluye una lista predeterminada de archivos y directorios comúnmente excluidos (por ejemplo, node_modules, .git, archivos binarios). Esta característica se puede controlar con la configuración ignore.useDefaultPatterns o la opción CLI --no-default-patterns. Consulte defaultIgnore.ts para más detalles.
  • .repomixignore: Puede crear un archivo .repomixignore en la raíz de su proyecto para definir patrones de ignorar específicos de Repomix. Este archivo sigue el mismo formato que .gitignore.
  • Patrones personalizados: Se pueden especificar patrones de ignorar adicionales usando la opción ignore.customPatterns en el archivo de configuración. Puede sobrescribir esta configuración con la opción de línea de comandos -i, --ignore.

Orden de prioridad (de mayor a menor):

  1. Patrones personalizados (ignore.customPatterns)
  2. Archivos de ignorar (.repomixignore, .ignore, .gitignore y .git/info/exclude):
    • Cuando están en directorios anidados, los archivos en directorios más profundos tienen mayor prioridad
    • Cuando están en el mismo directorio, estos archivos se fusionan sin un orden particular
  3. Patrones predeterminados (si