Repomix es una herramienta poderosa que incluye todo su repositorio en un solo archivo amigable con AI.
Es perfecto para cuando necesita alimentar su base de código a modelos de idiomas grandes (LLM) u otras herramientas de IA como Claude, ChatGPT y Gemini.
Nota
Debido a consideraciones legales, este proyecto ha sido renombrado de "Repopack" a "Repomix". Solo el nombre está cambiando; Repomix Todas las funcionalidades y el mantenedor (@yamadashy) siguen siendo los mismos. Estamos comprometidos a garantizar una transición sin problemas para todos los usuarios.
Para continuar usando la herramienta, simplemente instale el nuevo paquete:
# Install new package
npm install -g repomix
# Or use directly with npx
npx repomixOpcionalmente, también puede desinstalar el paquete anterior:
npm uninstall -g repopack Sus archivos de configuración existentes ( repopack.config.json y .repopackignore ) continuarán funcionando durante el período de transición.
repomix detectará automáticamente estos archivos y ofrecerá migrarlos al nuevo formato ( repomix.config.json y .repomixignore ).
Apreciamos su comprensión y cooperación durante esta transición.
Puede probar Repomix instantáneamente en el directorio de su proyecto sin instalación:
npx repomixO instalar globalmente para uso repetido:
# 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 ¡Eso es todo! Repomix generará un archivo repomix-output.txt en su directorio actual, que contiene todo su repositorio en un formato amigable con AI.
Para empacar todo su repositorio:
repomixPara empacar un directorio específico:
repomix path/to/directoryPara empacar archivos o directorios específicos utilizando patrones de globas:
repomix --include " src/**/*.ts,**/*.md "Para excluir archivos o directorios específicos:
repomix --ignore " **/*.log,tmp/ "Para empacar un repositorio remoto:
repomix --remote https://github.com/yamadashy/repomix
# You can also use GitHub shorthand:
repomix --remote yamadashy/repomix Para inicializar un nuevo archivo de configuración ( repomix.config.json ):
repomix --initUna vez que haya generado el archivo lleno, puede usarlo con herramientas de IA generativas como Claude, ChatGPT y Gemini.
Una vez que haya generado el archivo lleno con Repomix, puede usarlo con herramientas de IA como Claude, ChatGPT y Gemini. Aquí hay algunas indicaciones de ejemplo para comenzar:
Para una revisión integral de código y sugerencias de refactorización:
This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.
Para generar documentación del proyecto:
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.
Para generar casos de prueba:
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.
Evaluar la calidad del código y el cumplimiento de las mejores prácticas:
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.
Obtenga una comprensión de alto nivel de la biblioteca
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.
Siéntase libre de modificar estas indicaciones en función de sus necesidades específicas y las capacidades de la herramienta AI que está utilizando.
Consulte nuestra discusión comunitaria donde comparten los usuarios:
¡No dude en unirse a la discusión y compartir sus propias experiencias! Sus ideas podrían ayudar a otros a hacer un mejor uso de Repomix.
Repomix genera un solo archivo con separadores claros entre diferentes partes de su base de base.
Para mejorar la comprensión de la IA, el archivo de salida comienza con una explicación orientada a AI, lo que facilita que los modelos de IA comprendan el contexto y la estructura del repositorio empaquetado.
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`)
Para generar salida en formato XML, use la opción --style xml :
repomix --style xmlEl formato XML estructura el contenido de manera jerárquica:
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 > Para aquellos interesados en el potencial de las etiquetas XML en contextos de IA:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-ingineering/use-xml-tags
Cuando sus indicaciones involucran múltiples componentes como contexto, instrucciones y ejemplos, las etiquetas XML pueden ser un cambio de juego. Ayudan a Claude a analizar sus indicaciones con mayor precisión, lo que lleva a resultados de mayor calidad.
Esto significa que la salida XML de Repomix no es solo un formato diferente, sino potencialmente una forma más efectiva de alimentar su base de código a sistemas de IA para análisis, revisión de código u otras tareas.
Para generar salida en formato de Markdown, use la opción --style markdown :
repomix --style markdownEl formato de Markdown estructura el contenido de manera jerárquica:
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 ` )Este formato proporciona una estructura limpia y legible que es amigable para los humanos y fácilmente aplicable por los sistemas de IA.
-v, --version : Show Tool Version-o, --output <file> : especifique el nombre del archivo de salida--include <patterns> : lista de patrones de incluido (separados por comas)-i, --ignore <patterns> : Patrones de ignoración adicionales (separados por comas)-c, --config <path> : ruta a un archivo de configuración personalizado--style <style> : especifique el estilo de salida ( plain , xml , markdown )--top-files-len <number> : Número de archivos principales para mostrar en el resumen--output-show-line-numbers : Mostrar números de línea en la salida--copy : Copiar adicionalmente la salida generada al portapapeles del sistema--remote <url> : procese un repositorio de git remoto--verbose : habilitar el registro verbosoEjemplos:
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 srcPara actualizar un Repomix instalado a nivel mundial:
# Using npm
npm update -g repomix
# Using yarn
yarn global upgrade repomix El uso de npx repomix es generalmente más conveniente, ya que siempre usa la última versión.
Repomix admite el procesamiento de repositorios de git remotos sin la necesidad de clonación manual. Esta característica le permite analizar rápidamente cualquier repositorio de Git público con un solo comando.
Para procesar un repositorio remoto, use la opción --remote seguida de la URL del repositorio:
repomix --remote https://github.com/user/repo.gitTambién puede usar el formato de taquigrafía de GitHub:
repomix --remote user/repo Cree un archivo repomix.config.json en su proyecto Root para configuraciones personalizadas.
repomix --initAquí hay una explicación de las opciones de configuración:
| Opción | Descripción | Por defecto |
|---|---|---|
output.filePath | El nombre del archivo de salida | "repomix-output.txt" |
output.style | El estilo de la salida ( plain , xml , markdown ) | "plain" |
output.headerText | Texto personalizado para incluir en el encabezado del archivo | null |
output.instructionFilePath | Ruta a un archivo que contiene instrucciones personalizadas detalladas | null |
output.removeComments | Si debe eliminar los comentarios de los tipos de archivos compatibles | false |
output.removeEmptyLines | Si eliminar las líneas vacías de la salida | false |
output.showLineNumbers | Si agregar números de línea a cada línea en la salida | false |
output.copyToClipboard | Si se debe copiar la salida al portapapeles del sistema además de guardar el archivo | false |
output.topFilesLength | Número de archivos principales para mostrar en el resumen. Si se establece en 0, no se mostrará ningún resumen | 5 |
output.includeEmptyDirectories | Si incluir directorios vacíos en la estructura del repositorio | false |
include | Patrones de archivos para incluir (usando patrones de globas) | [] |
ignore.useGitignore | Si usar patrones del archivo .gitignore del proyecto | true |
ignore.useDefaultPatterns | Si usar patrones de ignoración predeterminados | true |
ignore.customPatterns | Patrones adicionales para ignorar (usando patrones de globo) | [] |
security.enableSecurityCheck | Si realizar comprobaciones de seguridad en los archivos | true |
Configuración de ejemplo:
{
"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
}
}Para crear un archivo de configuración global:
repomix --init --globalEl archivo de configuración global se creará en:
%LOCALAPPDATA%Repomixrepomix.config.json$XDG_CONFIG_HOME/repomix/repomix.config.json o ~/.config/repomix/repomix.config.jsonNota: La configuración local (si está presente) tiene prioridad sobre la configuración global.
Repomix ahora admite especificar archivos para incluir el uso de patrones de globas. Esto permite una selección de archivos más flexible y potente:
**/*.js para incluir todos los archivos JavaScript en cualquier directoriosrc/**/* para incluir todos los archivos dentro del directorio src y sus subdirectorios["src/**/*.js", "**/*.md"] para incluir archivos JavaScript en src y todos los archivos de Markdown Repomix ofrece múltiples métodos para establecer patrones ignorados para excluir archivos o directorios específicos durante el proceso de embalaje:
.gitignore de su proyecto. Este comportamiento se puede controlar con la configuración ignore.useGitignore .ignore.useDefaultPatterns . Consulte DefaultEignore.ts para obtener más detalles..repomixignore file in your project root to define Repomix-specific ignore patterns. Este archivo sigue el mismo formato que .gitignore .ignore.customPatterns en el archivo de configuración. Puede sobrescribir esta configuración con la opción de línea de comandos -i, --ignore .Orden de prioridad (de más alto a más bajo):
ignore.customPatterns.repomixignore.gitignore (si ignore.useGitignore es verdadero)ignore.useDefaultPatterns es verdadero)Este enfoque permite una configuración de exclusión de archivos flexible basada en las necesidades de su proyecto. Ayuda a optimizar el tamaño del archivo de paquete generado asegurando la exclusión de archivos sensibles a la seguridad y grandes archivos binarios, al tiempo que evita la fuga de información confidencial.
Nota: Los archivos binarios no se incluyen en la salida empaquetada de forma predeterminada, pero sus rutas se enumeran en la sección "Estructura del repositorio" del archivo de salida. Esto proporciona una descripción completa de la estructura del repositorio mientras mantiene el archivo empaquetado eficiente y basado en texto.
La opción output.instructionFilePath le permite especificar un archivo separado que contiene instrucciones o contexto detallados sobre su proyecto. Esto permite que los sistemas de IA comprendan el contexto y los requisitos específicos de su proyecto, lo que puede conducir a un análisis o sugerencias más relevantes y personalizadas.
Aquí hay un ejemplo de cómo podría usar esta función:
repomix-instruction.md en la raíz de su proyecto: # 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 , agregue la opción instructionFilePath : {
"output" : {
"instructionFilePath" : "repomix-instruction.md" ,
// other options...
}
} Cuando Repomix genera la salida, incluirá el contenido de repomix-instruction.md en una sección dedicada.
Nota: El contenido de instrucción se adjunta al final del archivo de salida. Esta colocación puede ser particularmente efectiva para los sistemas de IA. Para aquellos interesados en comprender por qué esto podría ser beneficioso, Anthrope proporciona algunas ideas en su documentación:
https://docs.anthrópico.com/en/docs/build-with-claude/prompt-ingineering/long-context-tips
Coloque los datos de forma larga en la parte superior: coloque sus documentos y entradas largos (~ 20k+ tokens) cerca de la parte superior de su aviso, por encima de su consulta, instrucciones y ejemplos. Esto puede mejorar significativamente el rendimiento de Claude en todos los modelos. Las consultas al final pueden mejorar la calidad de la respuesta hasta en un 30% en las pruebas, especialmente con entradas complejas de múltiples documentos.
Cuando output.removeComments true Esta característica puede ayudar a reducir el tamaño del archivo de salida y centrarse en el contenido del código esencial.
Los idiomas compatibles incluyen:
HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell y Yaml.
Nota: El proceso de eliminación de comentarios es conservador para evitar eliminar accidentalmente el código. En casos complejos, algunos comentarios pueden ser retenidos.
Repomix incluye una función de verificación de seguridad que usa SecretLint para detectar información potencialmente confidencial en sus archivos. Esta característica le ayuda a identificar posibles riesgos de seguridad antes de compartir su repositorio empaquetado.
Los resultados de la verificación de seguridad se mostrarán en la salida CLI después de que se complete el proceso de empaque. Si se detectan archivos sospechosos, verá una lista de estos archivos junto con un mensaje de advertencia.
Salida de ejemplo:
? 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.
Por defecto, la función de verificación de seguridad de Repomix está habilitada. Puede deshabilitarlo configurando security.enableSecurityCheck en false en su archivo de configuración:
{
"security" : {
"enableSecurityCheck" : false
}
}¡Agradecemos las contribuciones de la comunidad! Para comenzar, consulte nuestra guía contribuyente.
Este proyecto tiene licencia bajo la licencia MIT.
Volver arriba