All skills
Skillintermediate

Konfiguration

Repomix kann über eine Konfigurationsdatei oder Kommandozeilenoptionen konfiguriert werden. Die Konfigurationsdatei ermöglicht es Ihnen, die Verarbeitung und Ausgabe Ihres Codes anzupassen.

Claude Code Knowledge Pack7/10/2026

Overview

Konfiguration

Repomix kann über eine Konfigurationsdatei oder Kommandozeilenoptionen konfiguriert werden. Die Konfigurationsdatei ermöglicht es Ihnen, die Verarbeitung und Ausgabe Ihres Codes anzupassen.

Konfigurationsdateiformate

Repomix unterstützt mehrere Konfigurationsdateiformate für Flexibilität und Benutzerfreundlichkeit.

Repomix sucht automatisch nach Konfigurationsdateien in der folgenden Prioritätsreihenfolge:

  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-Konfiguration

Erstellen Sie eine Konfigurationsdatei in Ihrem Projektverzeichnis:

repomix --init

Dies erstellt eine repomix.config.json-Datei mit Standardeinstellungen. Sie können auch eine globale Konfigurationsdatei erstellen, die als Fallback verwendet wird, wenn keine lokale Konfiguration gefunden wird:

repomix --init --global

TypeScript-Konfiguration

TypeScript-Konfigurationsdateien bieten die beste Entwicklererfahrung mit vollständiger Typüberprüfung und IDE-Unterstützung.

Installation:

Um TypeScript- oder JavaScript-Konfiguration mit defineConfig zu verwenden, müssen Sie Repomix als Entwicklungsabhängigkeit installieren:

npm install -D repomix

Beispiel:

// repomix.config.ts

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

Vorteile:

  • ✅ Vollständige TypeScript-Typüberprüfung in Ihrer IDE
  • ✅ Hervorragende IDE-Autovervollständigung und IntelliSense
  • ✅ Verwendung dynamischer Werte (Zeitstempel, Umgebungsvariablen usw.)

Beispiel für dynamische Werte:

// repomix.config.ts

// Zeitstempel-basierten Dateinamen generieren
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

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

JavaScript-Konfiguration

JavaScript-Konfigurationsdateien funktionieren genauso wie TypeScript und unterstützen defineConfig und dynamische Werte.

Konfigurationsoptionen

OptionBeschreibungStandardwert
input.maxFileSizeMaximale zu verarbeitende Dateigröße in Bytes. Größere Dateien werden übersprungen. Nützlich zum Ausschließen großer Binär- oder Datendateien50000000
output.filePathName der Ausgabedatei. Unterstützt XML-, Markdown- und Textformate"repomix-output.xml"
output.styleAusgabestil (xml, markdown, json, plain). Jedes Format hat seine Vorteile für verschiedene KI-Tools"xml"
output.parsableStyleOb die Ausgabe gemäß dem gewählten Stilschema escaped werden soll. Ermöglicht besseres Parsing, kann aber die Token-Anzahl erhöhenfalse
output.compressOb Tree-sitter verwendet werden soll, um intelligente Codeextraktion durchzuführen und dabei die Struktur beizubehalten, während die Token-Anzahl reduziert wirdfalse
output.headerTextBenutzerdefinierter Text für den Dateikopf. Nützlich für die Bereitstellung von Kontext oder Anweisungen für KI-Toolsnull
output.instructionFilePathPfad zu einer Datei mit detaillierten benutzerdefinierten Anweisungen für die KI-Verarbeitungnull
output.fileSummaryOb eine Zusammenfassung mit Dateianzahl, -größen und anderen Metriken am Anfang der Ausgabe eingefügt werden solltrue
output.directoryStructureOb die Verzeichnisstruktur in der Ausgabe enthalten sein soll. Hilft der KI, die Projektorganisation zu verstehentrue
output.filesOb Dateiinhalte in der Ausgabe enthalten sein sollen. Bei false werden nur Struktur und Metadaten einbezogentrue
output.removeCommentsOb Kommentare aus unterstützten Dateitypen entfernt werden sollen. Kann Rauschen und Token-Anzahl reduzierenfalse
output.removeEmptyLinesOb leere Zeilen aus der Ausgabe entfernt werden sollen, um die Token-Anzahl zu reduzierenfalse
output.showLineNumbersOb Zeilennummern hinzugefügt werden sollen. Hilfreich für das Referenzieren bestimmter Codestellenfalse
output.truncateBase64Ob lange base64-Datenstrings (z.B. Bilder) abgeschnitten werden sollen, um die Token-Anzahl zu reduzierenfalse
output.copyToClipboardOb die Ausgabe zusätzlich zum Speichern in die Zwischenablage kopiert werden sollfalse
output.splitOutputAusgabe in mehrere nummerierte Dateien nach maximaler Größe pro Teil aufteilen (z.B. 1000000 für ~1MB). CLI akzeptiert lesbare Größen wie 500kb oder 2mb. Hält jede Datei unter dem Limit und verhindert, dass Quelldateien auf mehrere Ausgabedateien aufgeteilt werdenNicht gesetzt
output.topFilesLengthAnzahl der in der Zusammenfassung anzuzeigenden Top-Dateien. Bei 0 wird keine Zusammenfassung angezeigt5
output.includeEmptyDirectoriesOb leere Verzeichnisse in der Repository-Struktur enthalten sein sollenfalse
output.includeFullDirectoryStructureBei Verwendung von include-Mustern, ob der vollständige Verzeichnisbaum (unter Beachtung von Ignorier-Mustern) angezeigt werden soll, während nur die inkludierten Dateien verarbeitet werden. Bietet vollständigen Repository-Kontext für die KI-Analysefalse
output.git.sortByChangesOb Dateien nach Git-Änderungen sortiert werden sollen. Häufiger geänderte Dateien erscheinen am Endetrue
output.git.sortByChangesMaxCommitsMaximale Anzahl zu analysierender Commits für Git-Änderungen. Begrenzt die Historien-Tiefe für bessere Performance100
output.git.includeDiffsOb Git-Unterschiede in der Ausgabe enthalten sein sollen. Zeigt Arbeitsverzeichnis- und Stage-Änderungen separat anfalse
output.git.includeLogsOb Git-Logs in der Ausgabe enthalten sein sollen. Zeigt Commit-Historie mit Daten, Nachrichten und Dateipfaden anfalse
output.git.includeLogsCountAnzahl der Git-Log-Commits, die in die Ausgabe einbezogen werden sollen50
includeZu einschließende Dateimuster (verwendet glob-Muster)[]
ignore.useGitignoreOb Muster aus der .gitignore-Datei des Projekts verwendet werden sollentrue
ignore.useDotIgnoreOb Muster aus der .ignore-Datei des Projekts verwendet werden sollentrue
ignore.useDefaultPatternsOb Standard-Ignorier-Muster (node_modules, .git etc.) verwendet werden sollentrue
ignore.customPatternsZusätzliche Ignorier-Muster (verwendet glob-Muster)[]
security.enableSecurityCheckOb Secretlint verwendet werden soll, um Sicherheitsprüfungen auf sensible Informationen durchzuführentrue
tokenCount.encodingOpenAI-kompatibles Token-Count-Encoding (z.B. o200k_base für GPT-4o, cl100k_base für GPT-4/3.5). Verwendet gpt-tokenizer."o200k_base"

Die Konfigurationsdatei unterstützt JSON5-Syntax, die Folgendes erlaubt:

  • Kommentare (einzeilig und mehrzeilig)
  • Nachfolgende Kommas in Objekten und Arrays
  • Unquotierte Eigenschaftsnamen
  • Flexiblere String-Syntax

Schema-Validierung

Sie können die Schema-Validierung für Ihre Konfigurationsdatei aktivieren, indem Sie die Eigenschaft $schema hinzufügen:

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

Dies bietet Autovervollständigung und Validierung in Editoren, die JSON-Schema unterstützen.

Beispiel-Konfigurationsdatei

Hier ist ein Beispiel einer vollständigen Konfigurationsdatei (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": "Benutzerdefinierte Header-Informationen für die gepackte Datei",
    "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,
    // Muster können auch in .repomixignore angegeben werden
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Speicherorte der Konfigurationsdatei

Repomix sucht in folgender Reihenfolge nach Konfigurationsdateien:

  1. Lokale Konfigurationsdatei im aktuellen Verzeichnis (Priorität: 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. Globale Konfigurationsdatei (Priorität: 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

Kommandozeilenoptionen haben Vorrang vor Einstellungen in der Konfigurationsdatei.

Include-Muster

Repomix unterstützt die Angabe einzuschließender Dateien mittels Glob-Mustern. Dies ermöglicht eine flexiblere und leistungsfähigere Dateiauswahl:

  • Verwenden Sie **/*.js, um alle JavaScript-Dateien in jedem Verzeichnis einzuschließen
  • Verwenden Sie src/**/*, um alle Dateien innerhalb des src-Verzeichnisses und seiner Unterverzeichnisse einzuschließen
  • Kombinieren Sie mehrere Muster wie ["src/**/*.js", "**/*.md"], um JavaScript-Dateien in src und alle Markdown-Dateien einzuschließen

Sie können Include-Muster in Ihrer Konfigurationsdatei angeben:

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

Oder verwenden Sie die Kommandozeilenoption --include für einmaliges Filtern.

Ignorier-Muster

Repomix bietet mehrere Methoden zum Festlegen von Ignorier-Mustern, um bestimmte Dateien oder Verzeichnisse während des Packprozesses auszuschließen:

  • .gitignore: Standardmäßig werden die in den .gitignore-Dateien und .git/info/exclude Ihres Projekts aufgelisteten Muster verwendet. Dieses Verhalten kann über die Einstellung ignore.useGitignore oder die CLI-Option --no-gitignore gesteuert werden.
  • .ignore: Sie können eine .ignore-Datei im Stammverzeichnis Ihres Projekts verwenden, die dem gleichen Format wie .gitignore folgt. Diese Datei wird von Tools wie ripgrep und the silver searcher respektiert und reduziert die Notwendigkeit, mehrere Ignorier-Dateien zu pflegen. Dieses Verhalten kann über die Einstellung ignore.useDotIgnore oder die CLI-Option --no-dot-ignore gesteuert werden.
  • Standardmuster: Repomix enthält eine Standardliste häufig ausgeschlossener Dateien und Verzeichnisse (z.B. node_modules, .git, Binärdateien). Diese Funktion kann über die Einstellung ignore.useDefaultPatterns oder die CLI-Option --no-default-patterns gesteuert werden. Weitere Details finden Sie in defaultIgnore.ts.
  • .repomixignore: Sie können eine .repomixignore-Datei in Ihrem Projektstamm erstellen, um Repomix-spezifische Ignorier-Muster zu definieren. Diese Datei folgt dem gleichen Format wie .gitignore.
  • Benutzerdefinierte Muster: Zusätzliche Ignorier-Muster können über die Option ignore.customPatterns in der Konfigurationsdatei angegeben werden. Sie können diese Einstellung mit der Kommandozeilenoption -i, --ignore überschreiben.

Prioritätsreihenfolge (von höchster zu niedrigster):

  1. Benutzerdefinierte Muster (ignore.customPatterns)
  2. Ignorier-Dateien (.repomixignore, .ignore, .gitignore und .git/info/exclude):
    • Bei verschachtelten Verzeichnissen haben Dateien in tieferen Verzeichnissen höhere Priorität
    • Bei Dateien im selben Verzeichnis werden diese ohne bestimmte Reihenfolge zusammengeführt
  3. Standardmuster (wenn ignore.useDefaultPatterns true ist und --no-default-patterns nicht verwendet wird)

Dieser Ansatz ermöglicht eine flexible Konfi