All skills
Skillintermediate

Configuration

Repomix peut être configuré à l'aide d'un fichier de configuration ou d'options en ligne de commande. Le fichier de configuration vous permet de personnaliser divers aspects du traitement et de la sortie de votre base de code.

Claude Code Knowledge Pack7/10/2026

Overview

Configuration

Repomix peut être configuré à l'aide d'un fichier de configuration ou d'options en ligne de commande. Le fichier de configuration vous permet de personnaliser divers aspects du traitement et de la sortie de votre base de code.

Formats de fichiers de configuration

Repomix prend en charge plusieurs formats de fichiers de configuration pour plus de flexibilité et de facilité d'utilisation.

Repomix recherchera automatiquement les fichiers de configuration dans l'ordre de priorité suivant :

  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)

Configuration JSON

Créez un fichier de configuration dans votre répertoire de projet :

repomix --init

Cela créera un fichier repomix.config.json avec les paramètres par défaut. Vous pouvez également créer un fichier de configuration global qui sera utilisé comme solution de repli lorsqu'aucune configuration locale n'est trouvée :

repomix --init --global

Configuration TypeScript

Les fichiers de configuration TypeScript offrent la meilleure expérience de développement avec une vérification complète des types et un support IDE.

Installation :

Pour utiliser la configuration TypeScript ou JavaScript avec defineConfig, vous devez installer Repomix en tant que dépendance de développement :

npm install -D repomix

Exemple :

// repomix.config.ts

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

Avantages :

  • ✅ Vérification complète des types TypeScript dans votre IDE
  • ✅ Excellente autocomplétion et IntelliSense de l'IDE
  • ✅ Utilisation de valeurs dynamiques (horodatages, variables d'environnement, etc.)

Exemple de valeurs dynamiques :

// repomix.config.ts

// Générer un nom de fichier basé sur l'horodatage
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

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

Configuration JavaScript

Les fichiers de configuration JavaScript fonctionnent de la même manière que TypeScript, en prenant en charge defineConfig et les valeurs dynamiques.

Options de configuration

OptionDescriptionDéfaut
input.maxFileSizeTaille maximale des fichiers à traiter en octets. Les fichiers plus grands seront ignorés. Utile pour exclure les fichiers binaires volumineux ou les fichiers de données50000000
output.filePathNom du fichier de sortie. Prend en charge les formats XML, Markdown et texte brut"repomix-output.xml"
output.styleStyle de sortie (xml, markdown, json, plain). Chaque format a ses propres avantages pour différents outils d'IA"xml"
output.parsableStyleIndique s'il faut échapper la sortie selon le schéma de style choisi. Permet une meilleure analyse mais peut augmenter le nombre de tokensfalse
output.compressIndique s'il faut effectuer une extraction intelligente du code à l'aide de Tree-sitter pour réduire le nombre de tokens tout en préservant la structurefalse
output.headerTextTexte personnalisé à inclure dans l'en-tête du fichier. Utile pour fournir du contexte ou des instructions aux outils d'IAnull
output.instructionFilePathChemin vers un fichier contenant des instructions personnalisées détaillées pour le traitement par l'IAnull
output.fileSummaryIndique s'il faut inclure une section de résumé au début montrant le nombre de fichiers, les tailles et d'autres métriquestrue
output.directoryStructureIndique s'il faut inclure la structure des répertoires dans la sortie. Aide l'IA à comprendre l'organisation du projettrue
output.filesIndique s'il faut inclure le contenu des fichiers dans la sortie. Mettre à false pour n'inclure que la structure et les métadonnéestrue
output.removeCommentsIndique s'il faut supprimer les commentaires des types de fichiers pris en charge. Peut réduire le bruit et le nombre de tokensfalse
output.removeEmptyLinesIndique s'il faut supprimer les lignes vides de la sortie pour réduire le nombre de tokensfalse
output.showLineNumbersIndique s'il faut ajouter des numéros de ligne à chaque ligne. Utile pour référencer des parties spécifiques du codefalse
output.truncateBase64Indique s'il faut tronquer les chaînes de données base64 longues (par exemple, les images) pour réduire le nombre de tokensfalse
output.copyToClipboardIndique s'il faut copier la sortie dans le presse-papiers système en plus de sauvegarder le fichierfalse
output.splitOutputDiviser la sortie en plusieurs fichiers numérotés par taille maximale par partie (ex., 1000000 pour ~1Mo). CLI accepte des tailles lisibles comme 500kb ou 2mb. Maintient chaque fichier sous la limite et évite de diviser les fichiers sources entre les partiesNon défini
output.topFilesLengthNombre de fichiers principaux à afficher dans le résumé. Si défini à 0, aucun résumé ne sera affiché5
output.includeEmptyDirectoriesIndique s'il faut inclure les répertoires vides dans la structure du dépôtfalse
output.includeFullDirectoryStructureLors de l'utilisation de motifs include, indique s'il faut afficher l'arbre de répertoires complet (en respectant les motifs ignore) tout en ne traitant que les fichiers inclus. Fournit un contexte complet du dépôt pour l'analyse IAfalse
output.git.sortByChangesIndique s'il faut trier les fichiers par nombre de modifications git. Les fichiers avec plus de modifications apparaissent en bastrue
output.git.sortByChangesMaxCommitsNombre maximum de commits à analyser pour les modifications git. Limite la profondeur de l'historique pour les performances100
output.git.includeDiffsIndique s'il faut inclure les différences git dans la sortie. Montre séparément les modifications de l'arborescence de travail et les modifications indexéesfalse
output.git.includeLogsIndique s'il faut inclure les journaux git dans la sortie. Montre l'historique des commits avec les dates, les messages et les chemins de fichiersfalse
output.git.includeLogsCountNombre de commits de journaux git récents à inclure dans la sortie50
includeMotifs des fichiers à inclure en utilisant les motifs glob[]
ignore.useGitignoreIndique s'il faut utiliser les motifs du fichier .gitignore du projettrue
ignore.useDotIgnoreIndique s'il faut utiliser les motifs du fichier .ignore du projettrue
ignore.useDefaultPatternsIndique s'il faut utiliser les motifs d'ignorance par défaut (node_modules, .git, etc.)true
ignore.customPatternsMotifs supplémentaires à ignorer en utilisant les motifs glob[]
security.enableSecurityCheckIndique s'il faut effectuer des vérifications de sécurité à l'aide de Secretlint pour détecter les informations sensiblestrue
tokenCount.encodingEncodage du comptage de tokens compatible OpenAI (par ex., o200k_base pour GPT-4o, cl100k_base pour GPT-4/3.5). Utilise gpt-tokenizer."o200k_base"

Le fichier de configuration prend en charge la syntaxe JSON5, qui permet :

  • Les commentaires (à la fois sur une seule ligne et sur plusieurs lignes)
  • Les virgules finales dans les objets et les tableaux
  • Les noms de propriétés non entre guillemets
  • Une syntaxe de chaîne plus souple

Validation de schéma

Vous pouvez activer la validation de schéma pour votre fichier de configuration en ajoutant la propriété $schema :

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

Cela fournit l'auto-complétion et la validation dans les éditeurs qui prennent en charge le schéma JSON.

Exemple de fichier de configuration

Voici un exemple de fichier de configuration complet (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": "Informations d'en-tête personnalisées pour le fichier compressé.",
    "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,
    // Les motifs peuvent également être spécifiés dans .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Emplacements des fichiers de configuration

Repomix recherche les fichiers de configuration dans l'ordre suivant :

  1. Fichier de configuration local dans le répertoire courant (ordre de priorité : 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. Fichier de configuration global (ordre de priorité : 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

Les options en ligne de commande ont la priorité sur les paramètres du fichier de configuration.

Motifs d'inclusion

Repomix prend en charge la spécification de fichiers à inclure en utilisant des motifs glob. Cela permet une sélection de fichiers plus flexible et puissante :

  • Utilisez **/*.js pour inclure tous les fichiers JavaScript dans n'importe quel répertoire
  • Utilisez src/**/* pour inclure tous les fichiers dans le répertoire src et ses sous-répertoires
  • Combinez plusieurs motifs comme ["src/**/*.js", "**/*.md"] pour inclure les fichiers JavaScript dans src et tous les fichiers Markdown

Vous pouvez spécifier des motifs d'inclusion dans votre fichier de configuration :

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

Ou utilisez l'option en ligne de commande --include pour un filtrage ponctuel.

Motifs d'ignorance

Repomix offre plusieurs méthodes pour définir des motifs d'ignorance afin d'exclure des fichiers ou répertoires spécifiques pendant le processus d'empaquetage :

  • .gitignore : Par défaut, les motifs listés dans les fichiers .gitignore de votre projet et .git/info/exclude sont utilisés. Ce comportement peut être contrôlé avec le paramètre ignore.useGitignore ou l'option CLI --no-gitignore.
  • .ignore : Vous pouvez utiliser un fichier .ignore à la racine de votre projet, suivant le même format que .gitignore. Ce fichier est respecté par des outils comme ripgrep et the silver searcher, réduisant le besoin de maintenir plusieurs fichiers d'ignorance. Ce comportement peut être contrôlé avec le paramètre ignore.useDotIgnore ou l'option CLI --no-dot-ignore.
  • Motifs par défaut : Repomix inclut une liste par défaut de fichiers et répertoires couramment exclus (par exemple, node_modules, .git, fichiers binaires). Cette fonctionnalité peut être contrôlée avec le paramètre ignore.useDefaultPatterns ou l'option CLI --no-default-patterns. Veuillez consulter defaultIgnore.ts pour plus de détails.
  • .repomixignore : Vous pouvez créer un fichier .repomixignore à la racine de votre projet pour définir des motifs d'ignorance spécifiques à Repomix. Ce fichier suit le même format que .gitignore.
  • Motifs personnalisés : Des motifs d'ignorance supplémentaires peuvent être spécifiés en utilisant l'option ignore.customPatterns dans le fichier de configuration. Vous pouvez remplacer ce paramètre avec l'option en ligne de commande `-i, --i