MIT License
10,685
15,483
  • Linux
  • Apple

Integrations

  • Enables interaction with Git repositories, supporting sorting files by Git change count and respecting .gitignore configuration

  • Provides tools to fetch, clone and package GitHub repositories for AI analysis, supporting repository URLs or user/repo format

  • Supports token counting using OpenAI's tiktoken tokenizer with configurable encodings (e.g., o200k_base for GPT-4o, cl100k_base for GPT-4/3.5)

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:

npx repomix

Oder global installieren für wiederholte Verwendung:

# Install using npm npm install -g repomix # Alternatively using yarn yarn global add repomix # Alternatively using Homebrew (macOS/Linux) brew install repomix # Then run in any project directory repomix

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:

This file contains all the files in the repository combined into one. I want to refactor the code, so please review it first.

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

repomix

So packen Sie ein bestimmtes Verzeichnis:

repomix path/to/directory

So packen Sie bestimmte Dateien oder Verzeichnisse mithilfe von Glob-Mustern :

repomix --include "src/**/*.ts,**/*.md"

So schließen Sie bestimmte Dateien oder Verzeichnisse aus:

repomix --ignore "**/*.log,tmp/"

So packen Sie ein Remote-Repository:

repomix --remote https://github.com/yamadashy/repomix # You can also use GitHub shorthand: repomix --remote yamadashy/repomix # You can specify the branch name, tag, or commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Or use a specific commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Another convenient way is specifying the branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main # Commit's URL is also supported repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

So komprimieren Sie die Ausgabe:

repomix --compress # You can also use it with remote repositories: repomix --remote yamadashy/repomix --compress

So initialisieren Sie eine neue Konfigurationsdatei ( repomix.config.json ):

repomix --init

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):

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix

So packen Sie ein bestimmtes Verzeichnis:

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory

Verarbeiten Sie ein Remote-Repository und geben Sie es in ein output aus:

docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix

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:

This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.
Dokumentationserstellung

So erstellen Sie eine Projektdokumentation:

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.
Testfallgenerierung

Zum Generieren 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.
Bewertung der Codequalität

Bewerten Sie die Codequalität und die Einhaltung bewährter Methoden:

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.
Bibliotheksübersicht

Verschaffen Sie sich einen umfassenden Überblick über die 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.

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:

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> <directory_structure> src/ cli/ cliOutput.ts index.ts (...remaining directories) </directory_structure> <files> <file path="src/index.js"> // File contents here </file> (...remaining files) </files> <instruction> (Custom instructions from `output.instructionFilePath`) </instruction>

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 :

repomix --style markdown

Das 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 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 :

repomix --style plain
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) ================================================================ Directory Structure ================================================================ src/ cli/ cliOutput.ts index.ts config/ configLoader.ts (...remaining directories) ================================================================ Files ================================================================ ================ File: src/index.js ================ // File contents here ================ File: src/utils.js ================ // File contents here (...remaining files) ================================================================ Instruction ================================================================ (Custom instructions from `output.instructionFilePath`)

Befehlszeilenoptionen

Grundlegende Optionen
  • -v, --version : Tool-Version anzeigen
Ausgabeoptionen
  • -o, --output <file> : Geben Sie den Namen der Ausgabedatei an
  • --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 Tokenanzahl 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
  • --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
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:

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 npx repomix src

Aktualisieren von Repomix

So 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 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:

repomix --remote https://github.com/yamadashy/repomix

Sie können auch das Kurzformat von GitHub verwenden:

repomix --remote yamadashy/repomix

Sie können den Branch-Namen, das Tag oder den Commit-Hash angeben:

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Using branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main

Oder verwenden Sie einen bestimmten Commit-Hash:

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Using commit's URL repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

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.

repomix --compress

Beispielsweise dieser Code:

import { ShoppingItem } from './shopping-item'; /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { let total = 0; for (const item of items) { total += item.price * item.quantity; } return total; } // Shopping item interface interface Item { name: string; price: number; quantity: number; }

Wird komprimiert auf:

import { ShoppingItem } from './shopping-item'; ⋮---- /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { ⋮---- // Shopping item interface interface Item { name: string; price: number; quantity: number; }

[!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.

repomix --mcp
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:

  1. Verwenden des Installationsabzeichens:

  1. Verwenden der Befehlszeile:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Für VS Code Insider:

code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Für Cline (VS Code-Erweiterung):

Bearbeiten Sie die Datei cline_mcp_settings.json :

{ "mcpServers": { "repomix": { "command": "npx", "args": [ "-y", "repomix", "--mcp" ] } } }

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.

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:

  1. pack_codebase : Packen Sie ein lokales Codeverzeichnis in eine konsolidierte Datei für die KI-Analyse
  • Parameter:
    • directory : Absoluter Pfad zum zu packenden Verzeichnis
    • compress : (Optional, Standard: true) Ob eine intelligente Codeextraktion durchgeführt werden soll
    • includePatterns : (Optional) Komma-getrennte Liste von Include-Mustern
    • ignorePatterns : (Optional) Komma-getrennte Liste von Ignoriermustern
  1. pack_remote_repository : Ein GitHub-Repository abrufen, klonen und verpacken
  • Parameter:
    • remote : GitHub-Repository-URL oder Benutzer-/Repository-Format (z. B. yamadashy/repomix)
    • compress : (Optional, Standard: true) Ob eine intelligente Codeextraktion durchgeführt werden soll
    • includePatterns : (Optional) Komma-getrennte Liste von Include-Mustern
    • ignorePatterns : (Optional) Komma-getrennte Liste von Ignoriermustern
  1. read_repomix_output : Lesen Sie den Inhalt einer Repomix-Ausgabedatei in Umgebungen, in denen kein direkter Dateizugriff möglich ist
  • Parameter:
    • outputId : ID der zu lesenden Repomix-Ausgabedatei
  • 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
  1. file_system_read_file : Lesen Sie eine Datei mit einem absoluten Pfad und Sicherheitsüberprüfung
  • Parameter:
    • path : Absoluter Pfad zur zu lesenden Datei
  • Sicherheitsfunktionen:
    • Implementiert die Sicherheitsvalidierung mit Secretlint
    • Verhindert den Zugriff auf Dateien mit vertraulichen Informationen
    • Validiert absolute Pfade, um Directory-Traversal-Angriffe zu verhindern
  1. file_system_read_directory : Listet den Inhalt eines Verzeichnisses unter Verwendung eines absoluten Pfads auf
  • 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

⚙️ Konfiguration

Erstellen Sie für benutzerdefinierte Konfigurationen eine Datei repomix.config.json in Ihrem Projektstamm.

repomix --init

Hier ist eine Erklärung der Konfigurationsoptionen:

OptionBeschreibungStandard
output.filePathDer Name der Ausgabedatei"repomix-output.xml"
output.styleDer Stil der Ausgabe ( xml , markdown , plain )"xml"
output.parsableStyleGibt 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.compressOb eine intelligente Codeextraktion durchgeführt werden soll, um die Tokenanzahl zu reduzierenfalse
output.headerTextBenutzerdefinierter Text zum Einfügen in den Dateikopfnull
output.instructionFilePathPfad zu einer Datei mit detaillierten benutzerdefinierten Anweisungennull
output.fileSummaryOb am Anfang der Ausgabe ein Zusammenfassungsabschnitt eingefügt werden solltrue
output.directoryStructureOb die Verzeichnisstruktur in die Ausgabe einbezogen werden solltrue
output.removeCommentsOb Kommentare aus unterstützten Dateitypen entfernt werden sollenfalse
output.removeEmptyLinesOb leere Zeilen aus der Ausgabe entfernt werden sollenfalse
output.showLineNumbersOb jeder Zeile in der Ausgabe Zeilennummern hinzugefügt werden sollenfalse
output.copyToClipboardOb die Ausgabe zusätzlich zum Speichern der Datei in die Systemzwischenablage kopiert werden sollfalse
output.topFilesLengthAnzahl der Top-Dateien, die in der Zusammenfassung angezeigt werden sollen. Bei 0 wird keine Zusammenfassung angezeigt.5
output.includeEmptyDirectoriesOb leere Verzeichnisse in die Repository-Struktur aufgenommen werden sollenfalse
output.git.sortByChangesOb die Dateien nach der Anzahl der Git-Änderungen sortiert werden sollen (Dateien mit mehr Änderungen werden unten angezeigt)true
output.git.sortByChangesMaxCommitsMaximale Anzahl von Commits zur Analyse auf Git-Änderungen100
includeMuster der einzuschließenden Dateien (unter Verwendung von Glob-Mustern )[]
ignore.useGitignoreOb Muster aus der .gitignore Datei des Projekts verwendet werden sollentrue
ignore.useDefaultPatternsOb Standard-Ignoriermuster verwendet werden sollentrue
ignore.customPatternsZusätzliche zu ignorierende Muster (mithilfe von Glob-Mustern )[]
security.enableSecurityCheckOb Sicherheitsüberprüfungen für Dateien durchgeführt werden sollentrue
tokenCount.encodingDie 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:

{ "output": { "filePath": "repomix-output.xml", "style": "xml", "parsableStyle": true, "compress": false, "headerText": "Custom header information for the packed file.", "fileSummary": true, "directoryStructure": true, "removeComments": false, "removeEmptyLines": false, "showLineNumbers": false, "copyToClipboard": true, "topFilesLength": 5, "includeEmptyDirectories": false, "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100 } }, "include": [ "**/*" ], "ignore": { "useGitignore": true, "useDefaultPatterns": true, // Patterns can also be specified in .repomixignore "customPatterns": [ "additional-folder", "**/*.log" ], }, "security": { "enableSecurityCheck": true }, "tokenCount": { "encoding": "o200k_base" }, }

Globale Konfiguration

So erstellen Sie eine globale Konfigurationsdatei:

repomix --init --global

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 im src -Verzeichnis und seinen Unterverzeichnissen einzuschließen
  • Kombinieren Sie mehrere Muster wie ["src/**/*.js", "**/*.md"] um JavaScript-Dateien in src 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 Einstellung ignore.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):

  1. Benutzerdefinierte Muster ignore.customPatterns
  2. .repomixignore
  3. .gitignore und .git/info/exclude (wenn ignore.useGitignore wahr ist und --no-gitignore nicht verwendet wird)
  4. 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:

  1. Erstellen Sie in Ihrem Projektstamm eine Datei mit dem Namen repomix-instruction.md :
# 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 quality
  1. Fügen Sie in Ihrer repomix.config.json die Option instructionFilePath hinzu:
{ "output": { "instructionFilePath": "repomix-instruction.md", // other options... } }

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:

🔍 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 Sicherheitsüberprüfung von Repomix aktiviert. Sie können sie deaktivieren, indem Sie security.enableSecurityCheck in Ihrer Konfigurationsdatei auf false setzen:

{ "security": { "enableSecurityCheck": false } }

Oder mit der Befehlszeilenoption --no-security-check :

repomix --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 notwendig 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:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.xml style: xml

Verwenden Sie --style , um Ausgaben in verschiedenen Formaten zu generieren:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.md style: markdown

Packen Sie bestimmte Verzeichnisse mit Komprimierung:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: directories: src tests include: "**/*.ts,**/*.md" ignore: "**/*.test.ts" output: repomix-output.txt compress: true

Laden Sie die Ausgabedatei als Artefakt hoch:

- name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: directories: src output: repomix-output.txt compress: true - name: Upload Repomix output uses: actions/upload-artifact@v4 with: name: repomix-output path: repomix-output.txt

Vollständiges Workflow-Beispiel:

name: Pack repository with Repomix on: workflow_dispatch: push: branches: [ main ] pull_request: branches: [ main ] jobs: pack-repo: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Pack repository with Repomix uses: yamadashy/repomix/.github/actions/repomix@main with: output: repomix-output.xml - name: Upload Repomix output uses: actions/upload-artifact@v4 with: name: repomix-output.xml path: repomix-output.xml retention-days: 30

Das vollständige Workflow-Beispiel finden Sie hier .

Aktionseingaben

NameBeschreibungStandard
directoriesDurch Leerzeichen getrennte Liste der zu verarbeitenden Verzeichnisse (z. B. src tests docs ).
includeDurch Kommas getrennte Glob-Muster zum Einschließen von Dateien (z. B. **/*.ts,**/*.md )""
ignoreDurch Kommas getrennte Glob-Muster zum Ignorieren von Dateien (z. B. **/*.test.ts,**/node_modules/** )""
outputRelativer Pfad für die gepackte Datei (Erweiterung bestimmt das Format: .txt , .md , .xml )repomix-output.xml
compressAktivieren Sie die intelligente Komprimierung, um die Ausgabegröße durch Beschneiden von Implementierungsdetails zu reduzierentrue
styleAusgabestil ( xml , markdown , plain )xml
additional-argsZusätzliche Rohargumente für die Repomix-CLI (z. B. --no-file-summary --no-security-check )""
repomix-versionVersion des zu installierenden npm-Pakets (unterstützt Semver-Bereiche, Tags oder bestimmte Versionen wie 0.2.25 )latest

Aktionsausgaben

NameBeschreibung
output_filePfad 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

npm install repomix

Grundlegende Verwendung

import { runCli, type CliOptions } from 'repomix'; // Process current directory with custom options async function packProject() { const options = { output: 'output.xml', style: 'xml', compress: true, quiet: true } as CliOptions; const result = await runCli(['.'], process.cwd(), options); return result.packResult; }

Remote-Repository verarbeiten

import { runCli, type CliOptions } from 'repomix'; // Clone and process a GitHub repo async function processRemoteRepo(repoUrl) { const options = { remote: repoUrl, output: 'output.xml', compress: true } as CliOptions; return await runCli(['.'], process.cwd(), options); }

Verwenden von Kernkomponenten

Wenn Sie mehr Kontrolle benötigen, können Sie die Low-Level-APIs verwenden:

import { searchFiles, collectFiles, processFiles, TokenCounter } from 'repomix'; async function analyzeFiles(directory) { // Find and collect files const { filePaths } = await searchFiles(directory, { /* config */ }); const rawFiles = await collectFiles(filePaths, directory); const processedFiles = await processFiles(rawFiles, { /* config */ }); // Count tokens const tokenCounter = new TokenCounter('o200k_base'); // Return analysis results return processedFiles.map(file => ({ path: file.path, tokens: tokenCounter.countTokens(file.content) })); }

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.

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    AiDD MCP Server provides a secure interface for AI agents to perform file system operations and code analysis, enhancing AI-assisted development workflows across multiple programming languages.
    Last updated -
    29
    54
    Python
    Apache 2.0
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    An MCP server that implements Claude Code-like functionality, allowing the AI to analyze codebases, modify files, execute commands, and manage projects through direct file system interactions.
    Last updated -
    132
    Python
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A MCP server that transforms code repositories from GitHub, GitLab, or local directories into LLM-friendly formats, preserving context and structure for better AI processing.
    Last updated -
    1
    Python
    Apache 2.0
  • -
    security
    -
    license
    -
    quality
    An MCP server that automatically generates documentation, test plans, and code reviews for code repositories by analyzing directory structures and code files using AI models via OpenRouter API.
    Last updated -
    3
    TypeScript
    Creative Commons Zero v1.0 Universal

View all related MCP servers

ID: lczqcx54uv