Repomix ist ein leistungsstarkes Tool, das Ihr gesamtes Repository in eine einzelne, kI-freundliche Datei verpackt.
Es ist perfekt, wenn Sie Ihre Codebasis mit großsprachigen Modellen (LLMs) oder anderen KI -Tools wie Claude, Chatgpt und Gemini füttern müssen.
Notiz
Aufgrund rechtlicher Überlegungen wurde dieses Projekt in "Repopack" in "Repomix" umbenannt. Nur der Name ändert sich; Repomix All Functionality and Warding (@yamadashy) bleiben gleich. Wir sind bestrebt, einen reibungslosen Übergang für alle Benutzer zu gewährleisten.
Um das Tool fortzusetzen, installieren Sie einfach das neue Paket:
# Install new package
npm install -g repomix
# Or use directly with npx
npx repomixOptional können Sie auch das alte Paket deinstallieren:
npm uninstall -g repopack Ihre vorhandenen Konfigurationsdateien ( repopack.config.json und .repopackignore ) funktionieren während des Übergangszeitraums weiter.
repomix erkennt diese Dateien automatisch und bietet an, sie in das neue Format zu migrieren ( repomix.config.json und .repomixignore ).
Wir schätzen Ihr Verständnis und Ihre Zusammenarbeit während dieses Übergangs.
Sie können Repomix sofort in Ihrem Projektverzeichnis ohne Installation versuchen:
npx repomixOder global für den wiederholten Gebrauch installieren:
# Install using npm
npm install -g repomix
# Alternatively using yarn
yarn global add repomix
# Alternatively using Homebrew (macOS)
brew install repomix
# Then run in any project directory
repomix Das war's! Repomix generiert in Ihrem aktuellen Verzeichnis eine repomix-output.txt Datei, die Ihr gesamtes Repository in einem AI-freundlichen Format enthält.
So packen Sie Ihr gesamtes Repository:
repomixUm ein bestimmtes Verzeichnis zu packen:
repomix path/to/directoryUm bestimmte Dateien oder Verzeichnisse mit Glob -Mustern zu packen:
repomix --include " src/**/*.ts,**/*.md "Um bestimmte Dateien oder Verzeichnisse auszuschließen:
repomix --ignore " **/*.log,tmp/ "So packen ein Remote -Repository:
repomix --remote https://github.com/yamadashy/repomix
# You can also use GitHub shorthand:
repomix --remote yamadashy/repomix So initialisieren Sie eine neue Konfigurationsdatei ( repomix.config.json ):
repomix --initSobald Sie die verpackte Datei generiert haben, können Sie sie mit generativen KI -Tools wie Claude, Chatgpt und Gemini verwenden.
Sobald Sie die verpackte Datei mit Repomix generiert haben, können Sie sie mit KI -Tools wie Claude, Chatgpt und Gemini verwenden. Hier sind einige Beispielaufforderungen, um Ihnen den Einstieg zu erleichtern:
Für eine umfassende Code -Überprüfung und Refactoring -Vorschläge:
This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.
Projektdokumentation generieren:
Based on the codebase in this file, please generate a detailed README.md that includes an overview of the project, its main features, setup instructions, and usage examples.
Zum Erstellen von Testfällen:
Analyze the code in this file and suggest a comprehensive set of unit tests for the main functions and classes. Include edge cases and potential error scenarios.
Bewerten Sie die Codequalität und die Einhaltung von Best Practices:
Review the codebase for adherence to coding best practices and industry standards. Identify areas where the code could be improved in terms of readability, maintainability, and efficiency. Suggest specific changes to align the code with best practices.
Holen Sie sich ein hochrangiges Verständnis der Bibliothek
This file contains the entire codebase of library. Please provide a comprehensive overview of the library, including its main purpose, key features, and overall architecture.
Fühlen Sie sich frei, diese Eingaben basierend auf Ihren spezifischen Anforderungen und den Funktionen des von Ihnen verwendeten KI -Tools zu ändern.
Schauen Sie sich unsere Community -Diskussion an, bei der Benutzer teilen:
Fühlen Sie sich frei, sich der Diskussion anzuschließen und Ihre eigenen Erfahrungen zu teilen! Ihre Erkenntnisse könnten anderen helfen, Repomix besser zu nutzen.
Repomix generiert eine einzelne Datei mit klaren Separatoren zwischen verschiedenen Teilen Ihrer Codebasis.
Um das KI-Verständnis zu verbessern, beginnt die Ausgabedatei mit einer AI-orientierten Erklärung und erleichtert AI-Modellen, den Kontext und die Struktur des gepackten Repositorys zu verstehen.
This file is a merged representation of the entire codebase, combining all repository files into a single document.
================================================================
File Summary
================================================================
(Metadata and usage AI instructions)
================================================================
Repository Structure
================================================================
src/
cli/
cliOutput.ts
index.ts
config/
configLoader.ts
(...remaining directories)
================================================================
Repository Files
================================================================
================
File: src/index.js
================
// File contents here
================
File: src/utils.js
================
// File contents here
(...remaining files)
================================================================
Instruction
================================================================
(Custom instructions from `output.instructionFilePath`)
Verwenden Sie die Option --style xml : Um die Ausgabe im XML -Format zu generieren:
repomix --style xmlDas XML -Format strukturiert den Inhalt hierarchisch:
This file is a merged representation of the entire codebase, combining all repository files into a single document.
< file_summary >
(Metadata and usage AI instructions)
</ file_summary >
< repository_structure >
src/
cli/
cliOutput.ts
index.ts
(...remaining directories)
</ repository_structure >
< repository_files >
< file path = " src/index.js " >
// File contents here
</ file >
(...remaining files)
</ repository_files >
< instruction >
(Custom instructions from `output.instructionFilePath`)
</ instruction > Für diejenigen, die sich für das Potenzial von XML -Tags in AI -Kontexten 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 beinhalten, können XML-Tags ein Game-Changer sein. Sie helfen Claude, Ihre Eingabeaufforderungen genauer zu analysieren und zu höherwertigen Ausgaben zu führen.
Dies bedeutet, dass die XML -Ausgabe von Repomix nicht nur ein anderes Format ist, sondern möglicherweise eine effektivere Möglichkeit, Ihre Codebasis für Analyse, Codeüberprüfung oder andere Aufgaben in KI -Systeme zu versetzen.
Verwenden Sie die Option --style markdown : Um die Ausgabe im Markdown -Format zu generieren:
repomix --style markdownDas Markdown -Format strukturiert den Inhalt hierarchisch:
This file is a merged representation of the entire codebase, combining all repository files into a single document.
# File Summary
(Metadata and usage AI instructions)
# Repository Structure
```
src/
cli/
cliOutput.ts
index.ts
```
(...remaining directories)
# Repository Files
## File: src/index.js
```
// File contents here
```
(...remaining files)
# Instruction
(Custom instructions from ` output.instructionFilePath ` )Dieses Format bietet eine saubere, lesbare Struktur, die sowohl von Menschenfreundlichkeit als auch von AI-Systemen leicht analysiert werden kann.
-v, --version : Toolversion anzeigen-o, --output <file> : Geben Sie den Namen Ausgabedatei an--include <patterns> : Liste der Include-Muster (Comma-getrennte)-i, --ignore <patterns> : Zusätzliche Ignoriermuster (Comma-getrennte)-c, --config <path> : Pfad zu einer benutzerdefinierten Konfigurationsdatei--style <style> : Geben Sie den Ausgangsstil an ( plain , xml , markdown )--top-files-len <number> : Anzahl der in der Zusammenfassung angezeigten Top-Dateien, die angezeigt werden sollen--output-show-line-numbers : Zeilenzahlen in der Ausgabe anzeigen--copy : Kopieren Sie zusätzlich die generierte Ausgabe in System-Zwischenablage--remote <url> : Verarbeiten Sie ein Remote-Git-Repository--verbose : Aktivieren Sie die ausführliche ProtokollierungBeispiele:
repomix -o custom-output.txt
repomix -i " *.log,tmp " -v
repomix -c ./custom-config.json
repomix --style xml
repomix --remote https://github.com/user/repo.git
npx repomix srcSo aktualisieren Sie einen global installierten Repomix:
# Using npm
npm update -g repomix
# Using yarn
yarn global upgrade repomix Die Verwendung npx repomix ist im Allgemeinen bequemer, da die neueste Version immer verwendet wird.
Repomix unterstützt die Verarbeitung von Remote -Git -Repositories ohne manuelles Klonen. Mit dieser Funktion können Sie jedes öffentliche Git -Repository mit einem einzigen Befehl schnell analysieren.
Verwenden Sie zur Verarbeitung eines Remote -Repositorys die Option --remote , gefolgt von der Repository -URL:
repomix --remote https://github.com/user/repo.gitSie können auch Githubs Kurzformat verwenden:
repomix --remote user/repo Erstellen Sie eine repomix.config.json -Datei in Ihrem Projektroot für benutzerdefinierte Konfigurationen.
repomix --initHier finden Sie eine Erläuterung der Konfigurationsoptionen:
| Option | Beschreibung | Standard |
|---|---|---|
output.filePath | Der Name der Ausgabedatei | "repomix-output.txt" |
output.style | Der Stil der Ausgabe ( plain , xml , markdown ) | "plain" |
output.headerText | Benutzerdefinierte Text, der in den Dateikopf einbezogen wird | null |
output.instructionFilePath | Pfad zu einer Datei mit detaillierten benutzerdefinierten Anweisungen | null |
output.removeComments | Ob Sie Kommentare aus unterstützten Dateitypen entfernen sollen | false |
output.removeEmptyLines | Ob Sie leere Linien aus der Ausgabe entfernen sollen | false |
output.showLineNumbers | Ob Sie jeder Zeile in der Ausgabe Zeilennummern hinzufügen sollen | false |
output.copyToClipboard | Ob Sie die Ausgabe in System -Zwischenablage kopieren möchten, zusätzlich zum Speichern der Datei | false |
output.topFilesLength | Anzahl der Top -Dateien, die in der Zusammenfassung angezeigt werden sollen. Wenn auf 0 gesetzt, wird keine Zusammenfassung angezeigt | 5 |
output.includeEmptyDirectories | Ob leere Verzeichnisse in die Repository -Struktur aufgenommen werden sollen | false |
include | Muster von Dateien, die enthalten sind (mit Glob -Mustern) | [] |
ignore.useGitignore | Ob Sie Muster aus der .gitignore -Datei des Projekts verwenden möchten | true |
ignore.useDefaultPatterns | Ob Sie die Standard -Ignorier -Muster verwenden möchten | true |
ignore.customPatterns | Zusätzliche Muster zu ignorieren (unter Verwendung von Glob -Mustern) | [] |
security.enableSecurityCheck | Unabhängig davon, ob Sie Sicherheitsprüfungen für Dateien durchführen möchten | true |
Beispielkonfiguration:
{
"output" : {
"filePath" : " repomix-output.xml " ,
"style" : " xml " ,
"headerText" : " Custom header information for the packed file. " ,
"removeComments" : false ,
"removeEmptyLines" : false ,
"showLineNumbers" : false ,
"copyToClipboard" : true ,
"topFilesLength" : 5 ,
"includeEmptyDirectories" : false
},
"include" : [ " **/* " ],
"ignore" : {
"useGitignore" : true ,
"useDefaultPatterns" : true ,
"customPatterns" : [ " additional-folder " , " **/*.log " ]
},
"security" : {
"enableSecurityCheck" : true
}
}So erstellen Sie eine globale Konfigurationsdatei:
repomix --init --globalDie globale Konfigurationsdatei wird erstellt in:
%LOCALAPPDATA%Repomixrepomix.config.json$XDG_CONFIG_HOME/repomix/repomix.config.json oder ~/.config/repomix/repomix.config.jsonHINWEIS: Lokale Konfiguration (falls vorhanden) hat Vorrang vor der globalen Konfiguration.
Repomix unterstützt jetzt die Angabe von Dateien für die Verwendung von Glob -Mustern. Dies ermöglicht eine flexiblere und leistungsfähigere Dateiauswahl:
**/*.js um alle JavaScript -Dateien in ein beliebiges Verzeichnis aufzunehmensrc/**/* um alle Dateien in das src -Verzeichnis und seine Unterverzeichnisse einzubeziehen["src/**/*.js", "**/*.md"] um Javascript -Dateien in src und alle Markdown -Dateien aufzunehmen Repomix bietet mehrere Methoden zum Festlegen von Ignorieren von Mustern, um bestimmte Dateien oder Verzeichnisse während des Packungsprozesses auszuschließen:
.gitignore -Datei Ihres Projekts aufgeführt sind. Dieses Verhalten kann mit der Einstellung ignore.useGitignore gesteuert werden.ignore.useDefaultPatterns gesteuert werden. Weitere Informationen finden Sie unter Defaultignore.ts..repomixignore Datei in Ihrem Projektroot erstellen, um repomix-spezifische Ignoriermuster zu definieren. Diese Datei folgt dem gleichen Format wie .gitignore .ignore.customPatterns in der Konfigurationsdatei angegeben werden. Sie können diese Einstellung mit der Befehlszeilenoption -i, --ignore überschreiben.Prioritätsreihenfolge (vom höchsten bis niedrigsten):
ignore.customPatterns.repomixignore.gitignore (wenn ignore.useGitignore ist wahr)ignore.useDefaultPatterns ist wahr)Dieser Ansatz ermöglicht eine flexible Konfiguration von Dateiausschluss basierend auf den Anforderungen Ihres Projekts. Es hilft, die Größe der generierten Packdatei zu optimieren, indem sichergestellt wird, dass sicherheitsrelevante Dateien und große Binärdateien ausgeschlossen sind und gleichzeitig die Lecks vertraulicher Informationen verhindern.
Hinweis: Binärdateien sind standardmäßig nicht in der verpackten Ausgabe enthalten, ihre Pfade sind jedoch im Abschnitt "Repository Struktur" der Ausgabedatei aufgeführt. Dies bietet einen vollständigen Überblick über die Repository-Struktur, während die verpackte Datei effizient und textbasiert bleibt.
Mit der Option output.instructionFilePath können Sie eine separate Datei mit detaillierten Anweisungen oder Kontext zu Ihrem Projekt angeben. Auf diese Weise können KI -Systeme den spezifischen Kontext und die Anforderungen Ihres Projekts verstehen und möglicherweise zu relevanteren und maßgeschneiderten Analysen oder Vorschlägen führen.
Hier ist ein Beispiel dafür, wie Sie diese Funktion verwenden können:
repomix-instruction.md in Ihrem Projektstamm: # Coding Guidelines
- Follow the Airbnb JavaScript Style Guide
- Suggest splitting files into smaller, focused units when appropriate
- Add comments for non-obvious logic. Keep all text in English
- All new features should have corresponding unit tests
# Generate Comprehensive Output
- Include all content without abbreviation, unless specified otherwise
- Optimize for handling large codebases while maintaining output qualityrepomix.config.json die Option instructionFilePath hinzu: {
"output" : {
"instructionFilePath" : "repomix-instruction.md" ,
// other options...
}
} Wenn Repomix die Ausgabe erzeugt, enthält er den Inhalt der repomix-instruction.md in einem dedizierten Abschnitt.
Hinweis: Der Anweisungsinhalt wird am Ende der Ausgabedatei angehängt. Diese Platzierung kann für KI -Systeme besonders effektiv sein. Für diejenigen, die daran interessiert sind, zu verstehen, warum dies vorteilhaft sein könnte, bietet Anthropic einige Einblicke in ihre Dokumentation:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips
Legen Sie Langformdaten oben ein: Platzieren Sie Ihre langen Dokumente und Eingaben (~ 20 K+ Token) in der Nähe der Oberseite Ihrer Eingabeaufforderung, über Ihren Anweisungen, Anweisungen und Beispielen. Dies kann die Leistung von Claude in allen Modellen erheblich verbessern. Abfragen am Ende können die Reaktionsqualität um bis zu 30% in Tests verbessern, insbesondere bei komplexen Multi-Dokument-Eingaben.
Bei output.removeComments wird auf true eingestellt, versucht Repomix, Kommentare aus unterstützten Dateitypen zu entfernen. Diese Funktion kann dazu beitragen, die Größe der Ausgabedatei zu verringern und sich auf den essentiellen Codeinhalt zu konzentrieren.
Unterstützte Sprachen umfassen:
HTML, CSS, JavaScript, Typscript, Vue, Svelte, Python, Php, Ruby, C, C#, Java, Go, Rost, Swift, Kotlin, Dart, Shell und Yaml.
HINWEIS: Der Kommentarentfernungsprozess ist konservativ, um die Verhandlungskodex versehentlich zu entfernen. In komplexen Fällen können einige Kommentare erhalten bleiben.
Repomix enthält eine Sicherheitskontrollfunktion, die SecretLint verwendet, um potenziell vertrauliche Informationen in Ihren Dateien zu erkennen. Diese Funktion hilft Ihnen, mögliche Sicherheitsrisiken zu identifizieren, bevor Sie Ihr gepacktes Repository teilen.
Die Ergebnisse der Sicherheitsprüfung werden in der CLI -Ausgabe nach Abschluss des Packungsprozesses angezeigt. Wenn verdächtige Dateien erkannt werden, werden Sie eine Liste dieser Dateien zusammen mit einer Warnmeldung angezeigt.
Beispielausgabe:
? Security Check:
──────────────────
2 suspicious file(s) detected:
1. src/utils/test.txt
2. tests/utils/secretLintUtils.test.ts
Please review these files for potentially sensitive information.
Standardmäßig ist die Funktionsprüfung von Repomix aktiviert. Sie können es deaktivieren false indem Sie in Ihrer Konfigurationsdatei security.enableSecurityCheck einstellen.
{
"security" : {
"enableSecurityCheck" : false
}
}Wir begrüßen Beiträge aus der Community! Um loszulegen, lesen Sie bitte unseren Beitragsführer.
Dieses Projekt ist unter der MIT -Lizenz lizenziert.
Zurück nach oben