Warp, das Agententerminal für Entwickler
Verfügbar für MacOS, Linux und Windows
📦 Repomix ist ein leistungsstarkes Tool, das Ihr gesamtes Repository in eine einzige, KI-freundliche Datei packt.
Es ist perfekt, wenn Sie Ihre Codebasis in Large Language Models (LLMs) oder andere KI-Tools wie Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok und mehr einspeisen müssen.
🎉 Neu: Repomix-Website und Discord-Community!
- Probieren Sie Repomix in Ihrem Browser unter repomix.com aus
- Treten Sie unserem Discord-Server für Support und Diskussionen bei
Wir freuen uns auf Ihren Besuch!
🌟 Funktionen
- KI-optimiert : Formatiert Ihre Codebasis so, dass sie für die KI leicht zu verstehen und zu verarbeiten ist.
- Token-Zählung : Bietet Token-Zählungen für jede Datei und das gesamte Repository, nützlich für LLM-Kontextgrenzen.
- Einfach zu verwenden : Sie benötigen nur einen Befehl, um Ihr gesamtes Repository zu packen.
- Anpassbar : Konfigurieren Sie einfach, was ein- oder ausgeschlossen werden soll.
- Git-Aware : Respektiert automatisch Ihre
.gitignore
Dateien und.git/info/exclude
. - Auf Sicherheit ausgerichtet : Enthält Secretlint für robuste Sicherheitsprüfungen, um die Aufnahme vertraulicher Informationen zu erkennen und zu verhindern.
- Codekomprimierung : Die Option
--compress
verwendet Tree-Sitter, um wichtige Codeelemente zu extrahieren und so die Tokenanzahl zu reduzieren, während die Struktur erhalten bleibt.
🚀 Schnellstart
Verwenden des CLI-Tools >_
Sie können Repomix sofort in Ihrem Projektverzeichnis ausprobieren, ohne es installieren zu müssen:
Oder global installieren für wiederholte Verwendung:
Das war's! Repomix generiert eine repomix-output.xml
Datei in Ihrem aktuellen Verzeichnis, die Ihr gesamtes Repository in einem AI-freundlichen Format enthält.
Sie können diese Datei dann mit einer Eingabeaufforderung wie der folgenden an einen KI-Assistenten senden:
Wenn Sie spezifische Änderungen vorschlagen, kann die KI möglicherweise entsprechenden Code generieren. Mit Funktionen wie Claude's Artifacts können Sie potenziell mehrere Dateien ausgeben und so mehrere voneinander abhängige Codeteile generieren.
Viel Spaß beim Programmieren! 🚀
Nutzung der Website 🌐
Möchten Sie es schnell ausprobieren? Besuchen Sie die offizielle Website unter repomix.com . Geben Sie einfach Ihren Repository-Namen und optionale Details ein und klicken Sie auf die Schaltfläche „Packen“ , um die generierte Ausgabe anzuzeigen.
Verfügbare Optionen
Die Website bietet mehrere praktische Funktionen:
- Anpassbares Ausgabeformat (XML, Markdown oder einfacher Text)
- Sofortige Schätzung der Tokenanzahl
- Viel mehr!
Verwenden der Browsererweiterung 🧩
Erhalten Sie sofortigen Zugriff auf Repomix direkt aus jedem GitHub-Repository! Unsere Chrome-Erweiterung fügt den GitHub-Repository-Seiten einen praktischen „Repomix“-Button hinzu.
Installieren
- Chrome-Erweiterung: Repomix – Chrome Web Store
- Firefox-Add-on: Demnächst verfügbar
Merkmale
- Ein-Klick-Zugriff auf Repomix für jedes GitHub-Repository
- Weitere spannende Funktionen folgen in Kürze!
Verwenden der VSCode-Erweiterung ⚡️
Mit der von der Community gepflegten VSCode-Erweiterung Repomix Runner (erstellt von massdo ) können Sie Repomix mit nur wenigen Klicks direkt in Ihrem Editor ausführen. Führen Sie es in jedem Ordner aus, verwalten Sie Ausgaben nahtlos und steuern Sie alles über die intuitive Benutzeroberfläche von VSCode.
Möchten Sie Ihre Ausgabe als Datei oder nur den Inhalt? Benötigen Sie eine automatische Bereinigung? Diese Erweiterung bietet Ihnen die Lösung. Außerdem funktioniert sie reibungslos mit Ihrer vorhandenen repomix.config.json.
Probieren Sie es jetzt im VSCode Marketplace aus! Der Quellcode ist auf GitHub verfügbar.
Alternative Werkzeuge 🛠️
Wenn Sie Python verwenden, sollten Sie sich Gitingest
ansehen, das besser für das Python-Ökosystem und Data-Science-Workflows geeignet ist: https://github.com/cyclotruc/gitingest
📊 Verwendung
So packen Sie Ihr gesamtes Repository:
So packen Sie ein bestimmtes Verzeichnis:
So packen Sie bestimmte Dateien oder Verzeichnisse mithilfe von Glob-Mustern :
So schließen Sie bestimmte Dateien oder Verzeichnisse aus:
So packen Sie ein Remote-Repository:
So komprimieren Sie die Ausgabe:
So initialisieren Sie eine neue Konfigurationsdatei ( repomix.config.json
):
Sobald Sie die gepackte Datei generiert haben, können Sie sie mit generativen KI-Tools wie ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok und mehr verwenden.
Docker-Nutzung 🐳
Sie können Repomix auch mit Docker ausführen.
Dies ist nützlich, wenn Sie Repomix in einer isolierten Umgebung ausführen möchten oder lieber Container verwenden.
Grundlegende Verwendung (aktuelles Verzeichnis):
So packen Sie ein bestimmtes Verzeichnis:
Verarbeiten Sie ein Remote-Repository und geben Sie es in ein output
aus:
Beispiele für Eingabeaufforderungen
Sobald Sie die gepackte Datei mit Repomix erstellt haben, können Sie sie mit KI-Tools wie ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok und anderen verwenden. Hier sind einige Beispieleingabeaufforderungen für den Einstieg:
Codeüberprüfung und Refactoring
Für eine umfassende Codeüberprüfung und Refactoring-Vorschläge:
Dokumentationserstellung
So erstellen Sie eine Projektdokumentation:
Testfallgenerierung
Zum Generieren von Testfällen:
Bewertung der Codequalität
Bewerten Sie die Codequalität und die Einhaltung bewährter Methoden:
Bibliotheksübersicht
Verschaffen Sie sich einen umfassenden Überblick über die Bibliothek
Sie können diese Eingabeaufforderungen gerne an Ihre spezifischen Anforderungen und die Funktionen des von Ihnen verwendeten KI-Tools anpassen.
Community-Diskussion
Schauen Sie sich unsere Community-Diskussion an, in der Benutzer Folgendes teilen:
- Welche KI-Tools sie mit Repomix verwenden
- Wirksame Aufforderungen, die sie entdeckt haben
- Wie Repomix ihnen geholfen hat
- Tipps und Tricks, um das Beste aus der KI-Codeanalyse herauszuholen
Beteiligen Sie sich gerne an der Diskussion und teilen Sie Ihre eigenen Erfahrungen! Ihre Erkenntnisse können anderen helfen, Repomix besser zu nutzen.
Ausgabedateiformat
Repomix generiert eine einzelne Datei mit klaren Trennzeichen zwischen den verschiedenen Teilen Ihrer Codebasis.
Um das Verständnis der KI zu verbessern, beginnt die Ausgabedatei mit einer KI-orientierten Erklärung, die es KI-Modellen erleichtert, den Kontext und die Struktur des gepackten Repositorys zu verstehen.
XML-Format (Standard)
Das XML-Format strukturiert den Inhalt hierarchisch:
Für alle, die sich für das Potenzial von XML-Tags im KI-Kontext interessieren:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags
Wenn Ihre Eingabeaufforderungen mehrere Komponenten wie Kontext, Anweisungen und Beispiele umfassen, können XML-Tags entscheidend sein. Sie helfen Claude, Ihre Eingabeaufforderungen genauer zu analysieren, was zu qualitativ hochwertigeren Ergebnissen führt.
Dies bedeutet, dass die XML-Ausgabe von Repomix nicht nur ein anderes Format ist, sondern möglicherweise eine effektivere Möglichkeit darstellt, Ihre Codebasis zur Analyse, Codeüberprüfung oder für andere Aufgaben in KI-Systeme einzuspeisen.
Markdown-Format
Um eine Ausgabe im Markdown-Format zu generieren, verwenden Sie die Option --style markdown
:
Das Markdown-Format strukturiert den Inhalt hierarchisch:
Dieses Format bietet eine saubere, lesbare Struktur, die sowohl benutzerfreundlich als auch für KI-Systeme leicht zu analysieren ist.
Nur-Text-Format
Um eine Ausgabe im Nur-Text-Format zu generieren, verwenden Sie die Option --style plain
:
Befehlszeilenoptionen
Grundlegende Optionen
-v, --version
: Tool-Version anzeigen
Ausgabeoptionen
-o, --output <file>
: Geben Sie den Namen der Ausgabedatei an--stdout
: Ausgabe an stdout statt in eine Datei zu schreiben (kann nicht mit der Option--output
verwendet werden)--style <style>
: Geben Sie den Ausgabestil an (xml
,markdown
,plain
)--parsable-style
: Aktiviert die analysierbare Ausgabe basierend auf dem gewählten Stilschema. Beachten Sie, dass dies die Tokenanzahl erhöhen kann.--compress
: Führen Sie eine intelligente Codeextraktion durch und konzentrieren Sie sich dabei auf wesentliche Funktions- und Klassensignaturen, um die Anzahl der Token zu reduzieren.--output-show-line-numbers
: Zeilennummern in der Ausgabe anzeigen--copy
: Kopiert die generierte Ausgabe zusätzlich in die Systemzwischenablage--no-file-summary
: Ausgabe des Abschnitts „Dateizusammenfassung“ deaktivieren--no-directory-structure
: Ausgabe des Abschnitts „Verzeichnisstruktur“ deaktivieren--remove-comments
: Entfernt Kommentare aus unterstützten Dateitypen--remove-empty-lines
: Entfernt leere Zeilen aus der Ausgabe--header-text <text>
: Benutzerdefinierter Text, der in den Dateikopf aufgenommen werden soll--instruction-file-path <path>
: Pfad zu einer Datei mit detaillierten benutzerdefinierten Anweisungen--include-empty-directories
: Leere Verzeichnisse in die Ausgabe einschließen--include-diffs
: Git-Diffs in die Ausgabe einschließen (schließt sowohl Arbeitsbaum als auch inszenierte Änderungen separat ein)--no-git-sort-by-changes
: Deaktivieren Sie das Sortieren von Dateien nach der Anzahl der Git-Änderungen (standardmäßig aktiviert).
Filteroptionen
--include <patterns>
: Liste der Include-Muster (durch Kommas getrennt)-i, --ignore <patterns>
: Zusätzliche Ignoriermuster (durch Kommas getrennt)--no-gitignore
: Deaktiviert die Verwendung von .gitignore-Dateien--no-default-patterns
: Standardmuster deaktivieren
Remote-Repository-Optionen
--remote <url>
: Verarbeitet ein Remote-Git-Repository--remote-branch <name>
: Geben Sie den Namen, das Tag oder den Commit-Hash des Remote-Zweigs an (standardmäßig der Standard-Zweig des Repositorys).
Konfigurationsoptionen
-c, --config <path>
: Pfad zu einer benutzerdefinierten Konfigurationsdatei--init
: Konfigurationsdatei erstellen--global
: Globale Konfiguration verwenden
Sicherheitsoptionen
--no-security-check
: Sicherheitsüberprüfung deaktivieren
Optionen zur Tokenanzahl
--token-count-encoding <encoding>
: Geben Sie die vom Tiktoken -Tokenizer von OpenAI verwendete Token-Zählkodierung an (z. B.o200k_base
für GPT-4o,cl100k_base
für GPT-4/3.5). Weitere Kodierungsdetails finden Sie in Tiktoken model.py .
MCP
--mcp
: Als MCP-Server (Model Context Protocol) ausführen
Weitere Optionen
--top-files-len <number>
: Anzahl der Top-Dateien, die in der Zusammenfassung angezeigt werden sollen--verbose
: Ausführliches Protokollieren aktivieren--quiet
: Deaktiviert die gesamte Ausgabe an stdout
Beispiele:
Aktualisieren von Repomix
So aktualisieren Sie einen global installierten Repomix:
Die Verwendung npx repomix
ist im Allgemeinen bequemer, da immer die neueste Version verwendet wird.
Remote-Repository-Verarbeitung
Repomix unterstützt die Verarbeitung von Remote-Git-Repositorys ohne manuelles Klonen. Mit dieser Funktion können Sie jedes öffentliche Git-Repository schnell mit einem einzigen Befehl analysieren.
Um ein Remote-Repository zu verarbeiten, verwenden Sie die Option --remote
, gefolgt von der Repository-URL:
Sie können auch das Kurzformat von GitHub verwenden:
Sie können den Branch-Namen, das Tag oder den Commit-Hash angeben:
Oder verwenden Sie einen bestimmten Commit-Hash:
Code-Komprimierung
Die Option --compress
nutzt Tree-sitter zur intelligenten Codeextraktion. Dabei wird der Fokus auf wesentliche Funktions- und Klassensignaturen gelegt, während Implementierungsdetails entfernt werden. Dies kann dazu beitragen, die Tokenanzahl zu reduzieren und gleichzeitig wichtige Strukturinformationen zu erhalten.
Beispielsweise dieser Code:
Wird komprimiert auf:
[!NOTE] Dies ist eine experimentelle Funktion, die wir basierend auf Benutzerfeedback und realer Nutzung aktiv verbessern werden.
MCP-Server-Integration
Repomix unterstützt das Model Context Protocol (MCP) und ermöglicht KI-Assistenten die direkte Interaktion mit Ihrem Code. Als MCP-Server bietet Repomix Tools, mit denen KI-Assistenten lokale oder Remote-Repositories für die Analyse packen können, ohne dass eine manuelle Dateivorbereitung erforderlich ist.
Konfigurieren von MCP-Servern
Um Repomix als MCP-Server mit KI-Assistenten wie Claude zu verwenden, müssen Sie die MCP-Einstellungen konfigurieren:
Für VS Code:
Sie können den Repomix MCP-Server in VS Code mit einer der folgenden Methoden installieren:
- Verwenden des Installationsabzeichens:
- Verwenden der Befehlszeile:
Für VS Code Insider:
Für Cline (VS Code-Erweiterung):
Bearbeiten Sie die Datei cline_mcp_settings.json
:
Für Cursor:
Fügen Sie in Cursor einen neuen MCP-Server über Cursor Settings
> MCP
> + Add new global MCP server
.
Für Claude Desktop:
Bearbeiten Sie die Datei claude_desktop_config.json
mit einer ähnlichen Konfiguration wie Clines Konfiguration.
Docker statt npx verwenden:
Sie können Docker als Alternative zu npx verwenden, um Repomix als MCP-Server auszuführen:
Nach der Konfiguration kann Ihr KI-Assistent die Funktionen von Repomix direkt nutzen, um Codebasen ohne manuelle Dateivorbereitung zu analysieren, wodurch die Arbeitsabläufe der Codeanalyse effizienter werden.
Verfügbare MCP-Tools
Beim Betrieb als MCP-Server stellt Repomix die folgenden Tools bereit:
- pack_codebase : Packen Sie ein lokales Codeverzeichnis in eine konsolidierte XML-Datei für die KI-Analyse
- Parameter:
directory
: Absoluter Pfad zum zu packenden Verzeichniscompress
: (Optional, Standard: false) Aktivieren Sie die Tree-Sitter-Komprimierung, um wichtige Code-Signaturen und Strukturen zu extrahieren und gleichzeitig Implementierungsdetails zu entfernen. Reduziert den Token-Verbrauch um ca. 70 %, während die semantische Bedeutung erhalten bleibt. Im Allgemeinen nicht erforderlich, da grep_repomix_output inkrementellen Inhaltsabruf ermöglicht. Verwenden Sie diese Option nur, wenn Sie den gesamten Codebasis-Inhalt für große Repositories benötigen.includePatterns
: (Optional) Geben Sie die einzubindenden Dateien mit Fast-Glob-Mustern an. Mehrere Muster können durch Kommas getrennt werden (z. B. " /*.{js,ts}", "src/ ,docs/**"). Nur übereinstimmende Dateien werden verarbeitet.ignorePatterns
: (Optional) Geben Sie zusätzliche auszuschließende Dateien mithilfe von Fast-Glob-Mustern an. Mehrere Muster können durch Kommas getrennt werden (z. B. „test/ ,*.spec.js“, „node_modules/ ,dist/**“). Diese Muster ergänzen .gitignore und integrierte Ausschlüsse.topFilesLength
: (Optional, Standard: 10) Anzahl der größten Dateien nach Größe, die in der Metrikübersicht für die Codebasisanalyse angezeigt werden sollen.
- pack_remote_repository : Abrufen, Klonen und Verpacken eines GitHub-Repositorys in eine konsolidierte XML-Datei für die KI-Analyse
- Parameter:
remote
: URL des GitHub-Repositorys oder Benutzer-/Repository-Format (z. B. „yamadashy/repomix“, „ https://github.com/user/repo “ oder „ https://github.com/user/repo/tree/branch “)compress
: (Optional, Standard: false) Aktivieren Sie die Tree-Sitter-Komprimierung, um wichtige Code-Signaturen und Strukturen zu extrahieren und gleichzeitig Implementierungsdetails zu entfernen. Reduziert den Token-Verbrauch um ca. 70 %, während die semantische Bedeutung erhalten bleibt. Im Allgemeinen nicht erforderlich, da grep_repomix_output inkrementellen Inhaltsabruf ermöglicht. Verwenden Sie diese Option nur, wenn Sie den gesamten Codebasis-Inhalt für große Repositories benötigen.includePatterns
: (Optional) Geben Sie die einzubindenden Dateien mit Fast-Glob-Mustern an. Mehrere Muster können durch Kommas getrennt werden (z. B. " /*.{js,ts}", "src/ ,docs/**"). Nur übereinstimmende Dateien werden verarbeitet.ignorePatterns
: (Optional) Geben Sie zusätzliche auszuschließende Dateien mithilfe von Fast-Glob-Mustern an. Mehrere Muster können durch Kommas getrennt werden (z. B. „test/ ,*.spec.js“, „node_modules/ ,dist/**“). Diese Muster ergänzen .gitignore und integrierte Ausschlüsse.topFilesLength
: (Optional, Standard: 10) Anzahl der größten Dateien nach Größe, die in der Metrikübersicht für die Codebasisanalyse angezeigt werden sollen.
- read_repomix_output : Liest den Inhalt einer von Repomix generierten Ausgabedatei. Unterstützt partielles Lesen mit Zeilenbereichsangabe für große Dateien.
- Parameter:
outputId
: ID der zu lesenden Repomix-AusgabedateistartLine
: (Optional) Startzeilennummer (basierend auf 1, einschließlich). Wenn nicht angegeben, wird vom Anfang an gelesen.endLine
: (Optional) Endzeilennummer (1-basiert, inklusive). Wenn nicht angegeben, wird bis zum Ende gelesen.
- Merkmale:
- Speziell für webbasierte Umgebungen oder Sandbox-Anwendungen entwickelt
- Ruft den Inhalt zuvor generierter Ausgaben anhand ihrer ID ab
- Bietet sicheren Zugriff auf gepackte Codebasis, ohne dass ein Zugriff auf das Dateisystem erforderlich ist
- Unterstützt das teilweise Lesen großer Dateien
- grep_repomix_output : Suche nach Mustern in einer Repomix-Ausgabedatei mithilfe einer grep-ähnlichen Funktionalität mit JavaScript-RegExp-Syntax
- Parameter:
outputId
: ID der zu durchsuchenden Repomix-Ausgabedateipattern
: Suchmuster (JavaScript RegExp-Syntax für reguläre Ausdrücke)contextLines
: (Optional, Standard: 0) Anzahl der Kontextzeilen, die vor und nach jeder Übereinstimmung angezeigt werden sollen. Wird durch beforeLines/afterLines überschrieben, falls angegeben.beforeLines
: (Optional) Anzahl der Kontextzeilen, die vor jedem Treffer angezeigt werden sollen (wie grep -B). Hat Vorrang vor contextLines.afterLines
: (Optional) Anzahl der Kontextzeilen, die nach jedem Treffer angezeigt werden sollen (wie grep -A). Hat Vorrang vor contextLines.ignoreCase
: (Optional, Standard: false) Führt einen Abgleich ohne Berücksichtigung der Groß- und Kleinschreibung durch
- Merkmale:
- Verwendet die JavaScript-RegExp-Syntax für leistungsstarke Mustererkennung
- Unterstützt Kontextzeilen zum besseren Verständnis von Übereinstimmungen
- Ermöglicht die separate Steuerung von Kontextzeilen vor/nach
- Groß- und Kleinschreibung beachtende Suchoptionen
- file_system_read_file : Liest eine Datei aus dem lokalen Dateisystem unter Angabe eines absoluten Pfads. Enthält eine integrierte Sicherheitsüberprüfung, um den Zugriff auf Dateien mit vertraulichen Informationen zu erkennen und zu verhindern.
- Parameter:
path
: Absoluter Pfad zur zu lesenden Datei
- Sicherheitsfunktionen:
- Implementiert die Sicherheitsvalidierung mit Secretlint
- Verhindert den Zugriff auf Dateien mit vertraulichen Informationen (API-Schlüssel, Passwörter, Geheimnisse)
- Validiert absolute Pfade, um Directory-Traversal-Angriffe zu verhindern
- file_system_read_directory : Listet den Inhalt eines Verzeichnisses mit einem absoluten Pfad auf. Gibt eine formatierte Liste mit Dateien und Unterverzeichnissen mit eindeutigen Indikatoren zurück.
- Parameter:
path
: Absoluter Pfad zum aufzulistenden Verzeichnis
- Merkmale:
- Zeigt Dateien und Verzeichnisse mit eindeutigen Indikatoren (
[FILE]
oder[DIR]
) - Bietet sichere Verzeichnisdurchquerung mit ordnungsgemäßer Fehlerbehandlung
- Validiert Pfade und stellt sicher, dass sie absolut sind
- Nützlich zum Erkunden der Projektstruktur und zum Verstehen der Codebasisorganisation
- Zeigt Dateien und Verzeichnisse mit eindeutigen Indikatoren (
⚙️ Konfiguration
Erstellen Sie für benutzerdefinierte Konfigurationen eine Datei repomix.config.json
in Ihrem Projektstamm.
Hier ist eine Erklärung der Konfigurationsoptionen:
Option | Beschreibung | Standard |
---|---|---|
input.maxFileSize | Maximale Dateigröße in Bytes. Größere Dateien werden übersprungen. | 50000000 |
output.filePath | Der Name der Ausgabedatei | "repomix-output.xml" |
output.style | Der Stil der Ausgabe ( xml , markdown , plain ) | "xml" |
output.parsableStyle | Gibt an, ob die Ausgabe basierend auf dem gewählten Stilschema maskiert werden soll. Beachten Sie, dass sich dadurch die Tokenanzahl erhöhen kann. | false |
output.compress | Ob eine intelligente Codeextraktion durchgeführt werden soll, um die Tokenanzahl zu reduzieren | false |
output.headerText | Benutzerdefinierter Text zum Einfügen in den Dateikopf | null |
output.instructionFilePath | Pfad zu einer Datei mit detaillierten benutzerdefinierten Anweisungen | null |
output.fileSummary | Ob am Anfang der Ausgabe ein Zusammenfassungsabschnitt eingefügt werden soll | true |
output.directoryStructure | Ob die Verzeichnisstruktur in die Ausgabe einbezogen werden soll | true |
output.files | Ob Dateiinhalte in die Ausgabe einbezogen werden sollen | true |
output.removeComments | Ob Kommentare aus unterstützten Dateitypen entfernt werden sollen | false |
output.removeEmptyLines | Ob leere Zeilen aus der Ausgabe entfernt werden sollen | false |
output.showLineNumbers | Ob jeder Zeile in der Ausgabe Zeilennummern hinzugefügt werden sollen | false |
output.copyToClipboard | Ob die Ausgabe zusätzlich zum Speichern der Datei in die Systemzwischenablage kopiert werden soll | false |
output.topFilesLength | Anzahl der Top-Dateien, die in der Zusammenfassung angezeigt werden sollen. Bei 0 wird keine Zusammenfassung angezeigt. | 5 |
output.includeEmptyDirectories | Ob leere Verzeichnisse in die Repository-Struktur aufgenommen werden sollen | false |
output.git.sortByChanges | Ob die Dateien nach der Anzahl der Git-Änderungen sortiert werden sollen (Dateien mit mehr Änderungen werden unten angezeigt) | true |
output.git.sortByChangesMaxCommits | Maximale Anzahl von Commits zur Analyse auf Git-Änderungen | 100 |
output.git.includeDiffs | Ob Git-Diffs in die Ausgabe einbezogen werden sollen (beinhaltet sowohl Arbeitsbaum- als auch inszenierte Änderungen separat) | false |
include | Muster der einzuschließenden Dateien (unter Verwendung von Glob-Mustern ) | [] |
ignore.useGitignore | Ob Muster aus der .gitignore Datei des Projekts verwendet werden sollen | true |
ignore.useDefaultPatterns | Ob Standard-Ignoriermuster verwendet werden sollen | true |
ignore.customPatterns | Zusätzliche zu ignorierende Muster (mithilfe von Glob-Mustern ) | [] |
security.enableSecurityCheck | Ob Sicherheitsüberprüfungen für Dateien durchgeführt werden sollen | true |
tokenCount.encoding | Die vom Tiktoken -Tokenizer von OpenAI verwendete Token-Anzahlkodierung (z. B. o200k_base für GPT-4o, cl100k_base für GPT-4/3.5). Weitere Kodierungsdetails finden Sie in Tiktoken model.py . | "o200k_base" |
Die Konfigurationsdatei unterstützt die JSON5- Syntax, die Folgendes ermöglicht:
- Kommentare (sowohl einzeilig als auch mehrzeilig)
- Nachfolgende Kommas in Objekten und Arrays
- Nicht in Anführungszeichen gesetzte Eigenschaftsnamen
- Entspanntere Zeichenfolgensyntax
Beispielkonfiguration:
Globale Konfiguration
So erstellen Sie eine globale Konfigurationsdatei:
Die globale Konfigurationsdatei wird erstellt in:
- Windows:
%LOCALAPPDATA%\Repomix\repomix.config.json
- macOS/Linux:
$XDG_CONFIG_HOME/repomix/repomix.config.json
oder~/.config/repomix/repomix.config.json
Hinweis: Die lokale Konfiguration (sofern vorhanden) hat Vorrang vor der globalen Konfiguration.
Einschließen und Ignorieren
Muster einschließen
Repomix unterstützt nun die Angabe von einzuschließenden Dateien mithilfe von Glob-Mustern . Dies ermöglicht eine flexiblere und leistungsfähigere Dateiauswahl:
- Verwenden Sie
**/*.js
um alle JavaScript-Dateien in einem beliebigen Verzeichnis einzuschließen - Verwenden Sie
src/**/*
um alle Dateien imsrc
-Verzeichnis und seinen Unterverzeichnissen einzuschließen - Kombinieren Sie mehrere Muster wie
["src/**/*.js", "**/*.md"]
um JavaScript-Dateien insrc
und alle Markdown-Dateien einzuschließen
Muster ignorieren
Repomix bietet mehrere Methoden zum Festlegen von Ignoriermustern zum Ausschließen bestimmter Dateien oder Verzeichnisse während des Packvorgangs:
- .gitignore : Standardmäßig werden die in den
.gitignore
Dateien Ihres Projekts und.git/info/exclude
aufgeführten Muster verwendet. Dieses Verhalten kann mit der Einstellungignore.useGitignore
oder der CLI-Option--no-gitignore
gesteuert werden. - Standardmuster : Repomix enthält eine Standardliste häufig ausgeschlossener Dateien und Verzeichnisse (z. B. node_modules, .git, Binärdateien). Diese Funktion kann mit der Einstellung
ignore.useDefaultPatterns
oder der CLI-Option--no-default-patterns
gesteuert werden. Weitere Informationen finden Sie in defaultIgnore.ts . - .repomixignore : Sie können eine
.repomixignore
-Datei im Stammverzeichnis Ihres Projekts erstellen, um Repomix-spezifische Ignoriermuster zu definieren. Diese Datei hat dasselbe Format wie.gitignore
. - Benutzerdefinierte Muster : Zusätzliche Ignoriermuster können mit der Option
ignore.customPatterns
in der Konfigurationsdatei angegeben werden. Sie können diese Einstellung mit der Kommandozeilenoption-i, --ignore
überschreiben.
Prioritätsreihenfolge (von der höchsten zur niedrigsten):
- Benutzerdefinierte Muster
ignore.customPatterns
.repomixignore
.gitignore
und.git/info/exclude
(wennignore.useGitignore
wahr ist und--no-gitignore
nicht verwendet wird)- Standardmuster (wenn
ignore.useDefaultPatterns
wahr ist und--no-default-patterns
nicht verwendet wird)
Dieser Ansatz ermöglicht eine flexible Konfiguration des Dateiausschlusses basierend auf den Anforderungen Ihres Projekts. Er trägt dazu bei, die Größe der generierten Packdatei zu optimieren, indem er den Ausschluss sicherheitsrelevanter Dateien und großer Binärdateien gewährleistet und gleichzeitig den Verlust vertraulicher Informationen verhindert.
Hinweis: Binärdateien sind standardmäßig nicht in der gepackten Ausgabe enthalten, ihre Pfade werden jedoch im Abschnitt „Repository-Struktur“ der Ausgabedatei aufgelistet. Dies bietet einen vollständigen Überblick über die Repository-Struktur und sorgt gleichzeitig dafür, dass die gepackte Datei effizient und textbasiert bleibt.
Benutzerdefinierte Anweisung
Mit der Option output.instructionFilePath
können Sie eine separate Datei mit detaillierten Anweisungen oder Kontextinformationen zu Ihrem Projekt angeben. Dadurch können KI-Systeme den spezifischen Kontext und die Anforderungen Ihres Projekts verstehen und möglicherweise relevantere und maßgeschneiderte Analysen oder Vorschläge erstellen.
Hier ist ein Beispiel, wie Sie diese Funktion verwenden können:
- Erstellen Sie in Ihrem Projektstamm eine Datei mit dem Namen
repomix-instruction.md
:
- Fügen Sie in Ihrer
repomix.config.json
die OptioninstructionFilePath
hinzu:
Wenn Repomix die Ausgabe generiert, wird der Inhalt von repomix-instruction.md
in einem dedizierten Abschnitt eingefügt.
Hinweis: Der Anweisungsinhalt wird am Ende der Ausgabedatei angehängt. Diese Platzierung kann insbesondere für KI-Systeme effektiv sein. Wer verstehen möchte, warum dies von Vorteil sein könnte, findet in der Dokumentation von Anthropic einige Einblicke:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips
Platzieren Sie lange Daten an den Anfang: Platzieren Sie Ihre langen Dokumente und Eingaben (ca. 20.000+ Token) oben in Ihrer Eingabeaufforderung, über Ihrer Abfrage, Ihren Anweisungen und Beispielen. Dies kann Claudes Leistung über alle Modelle hinweg deutlich verbessern. Abfragen am Ende können die Antwortqualität in Tests um bis zu 30 % verbessern, insbesondere bei komplexen Eingaben mit mehreren Dokumenten.
Kommentarentfernung
Wenn output.removeComments
auf true
gesetzt ist, versucht Repomix, Kommentare aus unterstützten Dateitypen zu entfernen. Diese Funktion kann dazu beitragen, die Größe der Ausgabedatei zu reduzieren und sich auf den wesentlichen Codeinhalt zu konzentrieren.
Zu den unterstützten Sprachen gehören:
HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell und YAML.
Hinweis: Der Kommentarentfernungsprozess ist konservativ, um das versehentliche Entfernen von Code zu vermeiden. In komplexen Fällen können einige Kommentare erhalten bleiben.
🔍 Sicherheitscheck
Repomix enthält eine Sicherheitsüberprüfungsfunktion, die Secretlint verwendet, um potenziell sensible Informationen in Ihren Dateien zu erkennen. Diese Funktion hilft Ihnen, mögliche Sicherheitsrisiken zu identifizieren, bevor Sie Ihr gepacktes Repository freigeben.
Die Ergebnisse der Sicherheitsüberprüfung werden nach Abschluss des Packvorgangs in der CLI-Ausgabe angezeigt. Sollten verdächtige Dateien erkannt werden, wird eine Liste dieser Dateien zusammen mit einer Warnmeldung angezeigt.
Beispielausgabe:
Standardmäßig ist die Sicherheitsüberprüfung von Repomix aktiviert. Sie können sie deaktivieren, indem Sie security.enableSecurityCheck
in Ihrer Konfigurationsdatei auf false
setzen:
Oder mit der Befehlszeilenoption --no-security-check
:
[!NOTE] Durch das Deaktivieren von Sicherheitsüberprüfungen können vertrauliche Informationen offengelegt werden. Verwenden Sie diese Option mit Vorsicht und nur, wenn es unbedingt erforderlich ist, z. B. beim Arbeiten mit Testdateien oder Dokumentationen, die Beispielanmeldeinformationen enthalten.
🤖 Verwenden von Repomix mit GitHub Actions
Sie können Repomix auch in Ihren GitHub Actions-Workflows verwenden. Dies ist nützlich, um das Packen Ihrer Codebasis für die KI-Analyse zu automatisieren.
Grundlegende Verwendung:
Verwenden Sie --style
, um Ausgaben in verschiedenen Formaten zu generieren:
Packen Sie bestimmte Verzeichnisse mit Komprimierung:
Laden Sie die Ausgabedatei als Artefakt hoch:
Vollständiges Workflow-Beispiel:
Das vollständige Workflow-Beispiel finden Sie hier .
Aktionseingaben
Name | Beschreibung | Standard |
---|---|---|
directories | Durch Leerzeichen getrennte Liste der zu verarbeitenden Verzeichnisse (z. B. src tests docs ) | . |
include | Durch Kommas getrennte Glob-Muster zum Einschließen von Dateien (z. B. **/*.ts,**/*.md ) | "" |
ignore | Durch Kommas getrennte Glob-Muster zum Ignorieren von Dateien (z. B. **/*.test.ts,**/node_modules/** ) | "" |
output | Relativer Pfad für die gepackte Datei (Erweiterung bestimmt das Format: .txt , .md , .xml ) | repomix-output.xml |
compress | Aktivieren Sie die intelligente Komprimierung, um die Ausgabegröße durch Beschneiden von Implementierungsdetails zu reduzieren | true |
style | Ausgabestil ( xml , markdown , plain ) | xml |
additional-args | Zusätzliche Rohargumente für die Repomix-CLI (z. B. --no-file-summary --no-security-check ) | "" |
repomix-version | Version des zu installierenden npm-Pakets (unterstützt Semver-Bereiche, Tags oder bestimmte Versionen wie 0.2.25 ) | latest |
Aktionsausgaben
Name | Beschreibung |
---|---|
output_file | Pfad zur generierten Ausgabedatei. Kann in nachfolgenden Schritten zum Hochladen von Artefakten, zur LLM-Verarbeitung oder für andere Vorgänge verwendet werden. Die Datei enthält eine formatierte Darstellung Ihrer Codebasis basierend auf den angegebenen Optionen. |
📚 Repomix als Bibliothek verwenden
Sie können Repomix nicht nur als CLI-Tool verwenden, sondern auch als Bibliothek in Ihren Node.js-Anwendungen.
Installation
Grundlegende Verwendung
Remote-Repository verarbeiten
Verwenden von Kernkomponenten
Wenn Sie mehr Kontrolle benötigen, können Sie die Low-Level-APIs verwenden:
Weitere Beispiele finden Sie im Quellcode unter website/server/src/remoteRepo.ts, der zeigt, wie repomix.com die Bibliothek verwendet.
🤝 Beitrag
Wir freuen uns über Beiträge aus der Community! Um zu beginnen, lesen Sie bitte unseren Leitfaden für Beiträge .
Mitwirkende
🔒 Datenschutzrichtlinie
Repomix CLI-Tool
- Datenerfassung : Das Repomix CLI-Tool erfasst, überträgt oder speichert keine Benutzerdaten, Telemetriedaten oder Repository-Informationen.
- Netzwerknutzung : Repomix CLI arbeitet nach der Installation vollständig offline. Eine Internetverbindung ist nur in folgenden Fällen erforderlich:
- Installation über npm/yarn.
- Verwenden des Flags
--remote
zum Verarbeiten von Remote-Repositorys. - Suche nach Updates (manuell ausgelöst).
- Sicherheitsüberlegungen : Da die gesamte Verarbeitung lokal erfolgt, kann Repomix CLI sicher mit privaten und internen Repositories verwendet werden.
Repomix-Website ( repomix.com )
- Datenerfassung : Die Repomix-Website verwendet Google Analytics, um Nutzungsdaten wie Seitenaufrufe und Benutzerinteraktionen zu erfassen. Dies hilft uns zu verstehen, wie die Website genutzt wird, und das Benutzererlebnis zu verbessern.
Haftungsausschluss
Repomix (sowohl das CLI-Tool als auch die Website) wird „wie besehen“ ohne jegliche Gewährleistungen oder Garantien bereitgestellt.
Wir übernehmen keine Verantwortung für die Verwendung der generierten Ausgabe, einschließlich, aber nicht beschränkt auf deren Richtigkeit, Rechtmäßigkeit oder mögliche Folgen, die sich aus ihrer Verwendung ergeben.
📜 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Der Repomix MCP Server ermöglicht KI-Modellen die effiziente Analyse von Codebasen durch die Verpackung lokaler oder Remote-Repositorys in optimierte Einzeldateien. Durch intelligente Komprimierung über Tree-Sitter wird die Token-Nutzung deutlich reduziert, während die Codestruktur und wichtige Signaturen erhalten bleiben.
- 🎉 Neu: Repomix-Website und Discord-Community!
- 🌟 Funktionen
- 🚀 Schnellstart
- 📊 Verwendung
- ⚙️ Konfiguration
- 🔍 Sicherheitscheck
- 🤖 Verwenden von Repomix mit GitHub Actions
- 📚 Repomix als Bibliothek verwenden
- 🤝 Beitrag
- 🔒 Datenschutzrichtlinie
- 📜 Lizenz
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityThe ArXiv MCP Server bridges the gap between AI models and academic research by providing a sophisticated interface to arXiv's extensive research repository. This server enables AI assistants to perform precise paper searches and access full paper content, enhancing their ability to engage with scientific literature.Last updated -41,218PythonApache 2.0
- -securityFlicense-quality🔍 Enable AI assistants to search and access medRxiv papers through a simple MCP interface. The medRxiv MCP Server provides a bridge between AI assistants and medRxiv's preprint repository through the Model Context Protocol (MCP). It allows AI models to search for health sciences preprints and acceLast updated -1Python
- AsecurityAlicenseAqualityAn open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.Last updated -1044PythonMIT License
- -securityAlicense-qualityA collection of custom MCP servers providing various AI-powered capabilities including web search, YouTube video analysis, GitHub repository analysis, reasoning, code generation/execution, and web crawling.Last updated -2PythonMIT License
Appeared in Searches
- A method or tool for converting code into a tree structure
- Techniques for Analyzing Typescript Code in a Project
- Tool or method for automating code refactoring and finding similar code in a codebase
- Information about Repomix Architect
- A server for indexing public GitHub repositories and answering questions using the data