Repomix

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

📦 Repomix es una herramienta poderosa que empaqueta todo su repositorio en un solo archivo compatible con IA.
Es perfecto para cuando necesitas alimentar tu base de código a modelos de lenguaje grandes (LLM) u otras herramientas de IA como Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más.

🎉 ¡Nuevo: sitio web de Repomix y comunidad de Discord!

¡Esperamos verte allí!

🌟 Características

  • Optimizado para IA : formatea su base de código de una manera que sea fácil de entender y procesar para la IA.
  • Recuento de tokens : proporciona recuentos de tokens para cada archivo y todo el repositorio, lo cual es útil para los límites de contexto de LLM.
  • Fácil de usar : solo necesita un comando para comprimir todo su repositorio.
  • Personalizable : configure fácilmente qué incluir o excluir.
  • Git-Aware : respeta automáticamente sus archivos .gitignore y .git/info/exclude .
  • Centrado en la seguridad : incorpora Secretlint para realizar comprobaciones de seguridad sólidas para detectar y prevenir la inclusión de información confidencial.
  • Compresión de código : la opción --compress utiliza Tree-sitter para extraer elementos de código clave, lo que reduce el recuento de tokens y preserva la estructura.

🚀 Inicio rápido

Uso de la herramienta CLI >_

Puedes probar Repomix instantáneamente en el directorio de tu proyecto sin necesidad de instalación:

npx repomix

O instalar globalmente para uso repetido:

# 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

¡Listo! Repomix generará un archivo repomix-output.xml en tu directorio actual, que contiene todo tu repositorio en un formato compatible con IA.

Luego puedes enviar este archivo a un asistente de IA con un mensaje como el siguiente:

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

Al proponer cambios específicos, la IA podría generar el código correspondiente. Con funciones como los Artefactos de Claude, se podrían generar múltiples archivos, lo que permite generar múltiples fragmentos de código interdependientes.

¡Feliz codificación! 🚀

Usando el sitio web 🌐

¿Quieres probarlo rápidamente? Visita el sitio web oficial: repomix.com . Simplemente introduce el nombre de tu repositorio, completa los datos opcionales y haz clic en el botón "Empaquetar" para ver el resultado generado.

Opciones disponibles

El sitio web ofrece varias funciones convenientes:

  • Formato de salida personalizable (XML, Markdown o texto sin formato)
  • Estimación instantánea del recuento de tokens
  • ¡Mucho más!

Usando la extensión VSCode ⚡️

Repomix Runner (creada por massdo ), una extensión de VSCode mantenida por la comunidad, te permite ejecutar Repomix directamente en tu editor con solo unos clics. Ejecútalo en cualquier carpeta, gestiona las salidas sin problemas y controla todo a través de la intuitiva interfaz de VSCode.

¿Quieres tu salida como archivo o solo el contenido? ¿Necesitas limpieza automática? Esta extensión te ayuda. Además, funciona a la perfección con tu archivo repomix.config.json.

Pruébalo ahora en VSCode Marketplace . El código fuente está disponible en GitHub .

Herramientas alternativas 🛠️

Si usa Python, es posible que desee consultar Gitingest , que es más adecuado para el ecosistema de Python y los flujos de trabajo de ciencia de datos: https://github.com/cyclotruc/gitingest

📊 Uso

Para empacar todo su repositorio:

repomix

Para empaquetar un directorio específico:

repomix path/to/directory

Para empaquetar archivos o directorios específicos usando patrones glob :

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

Para excluir archivos o directorios específicos:

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

Para empaquetar un repositorio remoto:

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

Para comprimir la salida:

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

Para inicializar un nuevo archivo de configuración ( repomix.config.json ):

repomix --init

Una vez que haya generado el archivo empaquetado, puede usarlo con herramientas de IA generativa como ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más.

Uso de Docker 🐳

También puedes ejecutar Repomix usando Docker.
Esto es útil si desea ejecutar Repomix en un entorno aislado o prefiere utilizar contenedores.

Uso básico (directorio actual):

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

Para empaquetar un directorio específico:

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

Procesar un repositorio remoto y enviarlo a un directorio output :

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

Ejemplos de indicaciones

Una vez generado el archivo comprimido con Repomix, puede usarlo con herramientas de IA como ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más. Aquí tiene algunos ejemplos de instrucciones para empezar:

Revisión y refactorización de código

Para una revisión completa del 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.

Generación de documentación

Para generar la 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.

Generación de casos de prueba

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.

Evaluación de la calidad del código

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.

Descripción general de la biblioteca

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 según sus necesidades específicas y las capacidades de la herramienta de IA que esté utilizando.

Discusión comunitaria

Consulta nuestra discusión comunitaria donde los usuarios comparten:

  • ¿Qué herramientas de IA están utilizando con Repomix?
  • Indicaciones efectivas que han descubierto
  • Cómo les ha ayudado Repomix
  • Consejos y trucos para aprovechar al máximo el análisis de código de IA

¡Únete a la conversación y comparte tus experiencias! Tus ideas podrían ayudar a otros a usar Repomix mejor.

Formato de archivo de salida

Repomix genera un único archivo con separadores claros entre las diferentes partes de su base de código.
Para mejorar la comprensión de la IA, el archivo de salida comienza con una explicación orientada a la IA, lo que facilita que los modelos de IA comprendan el contexto y la estructura del repositorio empaquetado.

Formato XML (predeterminado)

El formato XML estructura el contenido de forma 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> <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>

Para aquellos interesados en el potencial de las etiquetas XML en contextos de IA:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags

Cuando sus indicaciones incluyen múltiples componentes, como contexto, instrucciones y ejemplos, las etiquetas XML pueden ser un punto de inflexión. Ayudan a Claude a analizar sus indicaciones con mayor precisión, lo que resulta en 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 los sistemas de IA para análisis, revisión de código u otras tareas.

Formato Markdown

Para generar salida en formato Markdown, utilice la opción --style markdown :

repomix --style markdown

El formato Markdown estructura el contenido de forma 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 analizable por los sistemas de IA.

Formato de texto simple

Para generar salida en formato de texto simple, utilice la opción --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`)

Opciones de línea de comandos

Opciones básicas

  • -v, --version : Mostrar la versión de la herramienta

Opciones de salida

  • -o, --output <file> : especifica el nombre del archivo de salida
  • --style <style> : especifica el estilo de salida ( xml , markdown , plain )
  • --parsable-style : Habilita la salida analizable según el esquema de estilo seleccionado. Tenga en cuenta que esto puede aumentar el número de tokens.
  • --compress : realiza una extracción de código inteligente, centrándose en las funciones esenciales y las firmas de clase para reducir el recuento de tokens
  • --output-show-line-numbers : Mostrar números de línea en la salida
  • --copy : Además, copia la salida generada al portapapeles del sistema
  • --no-file-summary : Deshabilitar la salida de la sección de resumen de archivos
  • --no-directory-structure : Deshabilitar la salida de la sección de estructura de directorio
  • --remove-comments : elimina comentarios de los tipos de archivos admitidos
  • --remove-empty-lines : Elimina líneas vacías de la salida
  • --header-text <text> : Texto personalizado para incluir en el encabezado del archivo
  • --instruction-file-path <path> : Ruta a un archivo que contiene instrucciones personalizadas detalladas
  • --include-empty-directories : incluye directorios vacíos en la salida
  • --no-git-sort-by-changes : deshabilita la clasificación de archivos por recuento de cambios de Git (habilitado de forma predeterminada)

Opciones de filtro

  • --include <patterns> : Lista de patrones de inclusión (separados por comas)
  • -i, --ignore <patterns> : Patrones de ignorar adicionales (separados por comas)
  • --no-gitignore : deshabilitar el uso del archivo .gitignore
  • --no-default-patterns : Deshabilitar patrones predeterminados

Opciones de repositorio remoto

  • --remote <url> : Procesar un repositorio Git remoto
  • --remote-branch <name> : especifica el nombre de la rama remota, la etiqueta o el hash de confirmación (el valor predeterminado es la rama predeterminada del repositorio)

Opciones de configuración

  • -c, --config <path> : Ruta a un archivo de configuración personalizado
  • --init : Crear archivo de configuración
  • --global : Utilizar configuración global

Opciones de seguridad

  • --no-security-check : Deshabilitar la comprobación de seguridad

Opciones de conteo de tokens

  • --token-count-encoding <encoding> : Especifica la codificación del conteo de tokens utilizada por el tokenizador de tiktokens de OpenAI (p. ej., o200k_base para GPT-4o, cl100k_base para GPT-4/3.5). Consulta tiktoken model.py para obtener más información sobre la codificación.

MCP

Otras opciones

  • --top-files-len <number> : Número de archivos principales que se mostrarán en el resumen
  • --verbose : Habilitar el registro detallado
  • --quiet : Deshabilitar toda salida a stdout

Ejemplos:

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

Actualización de Repomix

Para actualizar un Repomix instalado globalmente:

# Using npm npm update -g repomix # Using yarn yarn global upgrade repomix

Generalmente, usar npx repomix es más conveniente ya que siempre usa la última versión.

Procesamiento de repositorio remoto

Repomix permite procesar repositorios Git remotos sin necesidad de clonarlos manualmente. Esta función permite analizar rápidamente cualquier repositorio Git público con un solo comando.

Para procesar un repositorio remoto, utilice la opción --remote seguida de la URL del repositorio:

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

También puedes utilizar el formato abreviado de GitHub:

repomix --remote yamadashy/repomix

Puede especificar el nombre de la rama, la etiqueta o el hash de confirmación:

# 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

O utilice un hash de confirmación específico:

# 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

Compresión de código

La opción --compress utiliza Tree-sitter para realizar una extracción inteligente de código, centrándose en las firmas esenciales de funciones y clases, y eliminando los detalles de implementación. Esto puede ayudar a reducir el número de tokens, conservando al mismo tiempo información estructural importante.

repomix --compress

Por ejemplo, este código:

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; }

Se comprimirá a:

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; }

[!NOTA] Esta es una función experimental que mejoraremos activamente en función de los comentarios de los usuarios y el uso en el mundo real.

Integración del servidor MCP

Repomix es compatible con el Protocolo de Contexto de Modelo (MCP) , lo que permite que los asistentes de IA interactúen directamente con el código base. Al ejecutarse como servidor MCP, Repomix proporciona herramientas que permiten a los asistentes de IA empaquetar repositorios locales o remotos para su análisis sin necesidad de preparar manualmente los archivos.

repomix --mcp

Configuración de servidores MCP

Para utilizar Repomix como un servidor MCP con asistentes de IA como Claude, debes configurar los ajustes de MCP:

Para VS Code:

Puede instalar el servidor Repomix MCP en VS Code utilizando uno de estos métodos:

  1. Uso de la insignia de instalación:
  2. Usando la línea de comandos:
    code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
    Para miembros de VS Code Insiders:
    code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Para Cline (extensión VS Code):

Edite el archivo cline_mcp_settings.json :

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

Para el cursor:

En Cursor, agregue un nuevo servidor MCP desde Cursor Settings > MCP > + Add new global MCP server con una configuración similar a Cline.

Para Claude Desktop:

Edite el archivo claude_desktop_config.json con una configuración similar a la configuración de Cline.

Una vez configurado, su asistente de IA puede usar directamente las capacidades de Repomix para analizar bases de código sin preparación manual de archivos, lo que hace que los flujos de trabajo de análisis de código sean más eficientes.

Herramientas MCP disponibles

Cuando se ejecuta como servidor MCP, Repomix proporciona las siguientes herramientas:

  1. pack_codebase : Empaqueta un directorio de código local en un archivo consolidado para el análisis de IA
  • Parámetros:
    • directory : Ruta absoluta al directorio a empaquetar
    • compress : (opcional, valor predeterminado: verdadero) Si se debe realizar una extracción de código inteligente
    • includePatterns : (opcional) Lista separada por comas de patrones de inclusión
    • ignorePatterns : (opcional) Lista separada por comas de patrones a ignorar
  1. pack_remote_repository : Obtener, clonar y empaquetar un repositorio de GitHub
  • Parámetros:
    • remote : URL del repositorio de GitHub o formato de usuario/repositorio (por ejemplo, yamadashy/repomix)
    • compress : (opcional, valor predeterminado: verdadero) Si se debe realizar una extracción de código inteligente
    • includePatterns : (opcional) Lista separada por comas de patrones de inclusión
    • ignorePatterns : (opcional) Lista separada por comas de patrones a ignorar
  1. read_repomix_output : lee el contenido de un archivo de salida de Repomix en entornos donde no es posible el acceso directo al archivo
  • Parámetros:
    • outputId : ID del archivo de salida de Repomix para leer
  • Características:
    • Diseñado específicamente para entornos web o aplicaciones sandbox
    • Recupera el contenido de salidas generadas previamente utilizando su ID
    • Proporciona acceso seguro a una base de código empaquetada sin necesidad de acceder al sistema de archivos
  1. file_system_read_file : lee un archivo usando una ruta absoluta con validación de seguridad
  • Parámetros:
    • path : Ruta absoluta al archivo a leer
  • Características de seguridad:
    • Implementa la validación de seguridad utilizando Secretlint
    • Impide el acceso a archivos que contienen información confidencial
    • Valida rutas absolutas para evitar ataques de recorrido de directorio
  1. file_system_read_directory : enumera el contenido de un directorio utilizando una ruta absoluta
  • Parámetros:
    • path : Ruta absoluta al directorio a listar
  • Características:
    • Muestra archivos y directorios con indicadores claros ( [FILE] o [DIR] )
    • Proporciona una navegación segura por directorios con un manejo adecuado de errores
    • Valida rutas y garantiza que sean absolutas

⚙️ Configuración

Cree un archivo repomix.config.json en la raíz de su proyecto para configuraciones personalizadas.

repomix --init

Aquí hay una explicación de las opciones de configuración:

OpciónDescripciónPor defecto
output.filePathEl nombre del archivo de salida"repomix-output.xml"
output.styleEl estilo de la salida ( xml , markdown , plain )"xml"
output.parsableStyleSi se debe escapar la salida según el esquema de estilo seleccionado. Tenga en cuenta que esto puede aumentar el número de tokens.false
output.compressSi se debe realizar una extracción de código inteligente para reducir el recuento de tokensfalse
output.headerTextTexto personalizado para incluir en el encabezado del archivonull
output.instructionFilePathRuta a un archivo que contiene instrucciones personalizadas detalladasnull
output.fileSummarySi se debe incluir una sección de resumen al comienzo de la salidatrue
output.directoryStructureSi se debe incluir la estructura del directorio en la salidatrue
output.removeCommentsSi se deben eliminar los comentarios de los tipos de archivos admitidosfalse
output.removeEmptyLinesSi se deben eliminar líneas vacías de la salidafalse
output.showLineNumbersSi se deben agregar números de línea a cada línea en la salidafalse
output.copyToClipboardSi desea copiar la salida al portapapeles del sistema además de guardar el archivofalse
output.topFilesLengthNúmero de archivos principales que se mostrarán en el resumen. Si se establece en 0, no se mostrará ningún resumen.5
output.includeEmptyDirectoriesSi se deben incluir directorios vacíos en la estructura del repositoriofalse
output.git.sortByChangesSi ordenar los archivos por recuento de cambios de Git (los archivos con más cambios aparecen en la parte inferior)true
output.git.sortByChangesMaxCommitsNúmero máximo de confirmaciones para analizar en busca de cambios en Git100
includePatrones de archivos a incluir (usando patrones glob )[]
ignore.useGitignoreSi se deben utilizar patrones del archivo .gitignore del proyectotrue
ignore.useDefaultPatternsSi se deben utilizar patrones de ignoración predeterminadostrue
ignore.customPatternsPatrones adicionales a ignorar (usando patrones glob )[]
security.enableSecurityCheckSi se deben realizar comprobaciones de seguridad en los archivostrue
tokenCount.encodingCodificación de conteo de tokens utilizada por el tokenizador de tiktokens de OpenAI (p. ej., o200k_base para GPT-4o, cl100k_base para GPT-4/3.5). Consulte tiktoken model.py para obtener más información sobre la codificación."o200k_base"

El archivo de configuración admite la sintaxis JSON5 , lo que permite:

  • Comentarios (tanto de una sola línea como de varias líneas)
  • Comas finales en objetos y matrices
  • Nombres de propiedades sin comillas
  • Sintaxis de cadena más relajada

Ejemplo de configuración:

{ "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" }, }

Configuración global

Para crear un archivo de configuración global:

repomix --init --global

El archivo de configuración global se creará en:

  • Ventanas: %LOCALAPPDATA%\Repomix\repomix.config.json
  • macOS/Linux: $XDG_CONFIG_HOME/repomix/repomix.config.json o ~/.config/repomix/repomix.config.json

Nota: La configuración local (si está presente) tiene prioridad sobre la configuración global.

Incluir e ignorar

Incluir patrones

Repomix ahora permite especificar los archivos que se incluirán mediante patrones glob . Esto permite una selección de archivos más flexible y eficaz:

  • Utilice **/*.js para incluir todos los archivos JavaScript en cualquier directorio
  • Utilice src/**/* para incluir todos los archivos dentro del directorio src y sus subdirectorios
  • Combine múltiples patrones como ["src/**/*.js", "**/*.md"] para incluir archivos JavaScript en src y todos los archivos Markdown

Ignorar patrones

Repomix ofrece múltiples métodos para establecer patrones de ignoración para excluir archivos o directorios específicos durante el proceso de empaquetado:

  • .gitignore : Por defecto, se usan los patrones de los archivos .gitignore y .git/info/exclude del proyecto. Este comportamiento se puede controlar con la configuración ignore.useGitignore o la opción --no-gitignore de la CLI.
  • Patrones predeterminados : Repomix incluye una lista predeterminada de archivos y directorios comúnmente excluidos (p. ej., node_modules, .git, archivos binarios). Esta función se puede controlar con la opción ignore.useDefaultPatterns o la opción de CLI --no-default-patterns . Consulte defaultIgnore.ts para obtener más información.
  • .repomixignore : Puedes crear un archivo .repomixignore en la raíz de tu proyecto para definir patrones de ignorado específicos de Repomix. Este archivo tiene el mismo formato que .gitignore .
  • Patrones personalizados : Se pueden especificar patrones de omisión adicionales mediante la opción ignore.customPatterns del archivo de configuración. Puede sobrescribir esta configuración con la opción de línea de comandos -i, --ignore .

Orden de prioridad (de mayor a menor):

  1. Patrones personalizados ignore.customPatterns
  2. .repomixignore
  3. .gitignore y .git/info/exclude (si ignore.useGitignore es verdadero y no se utiliza --no-gitignore )
  4. Patrones predeterminados (si ignore.useDefaultPatterns es verdadero y no se utiliza --no-default-patterns )

Este enfoque permite una configuración flexible de exclusión de archivos según las necesidades de su proyecto. Ayuda a optimizar el tamaño del archivo del paquete generado, garantizando la exclusión de archivos sensibles a la seguridad y archivos binarios grandes, a la vez que evita la filtración de información confidencial.

Nota: Los archivos binarios no se incluyen en la salida comprimida por defecto, pero sus rutas aparecen en la sección "Estructura del repositorio" del archivo de salida. Esto proporciona una visión general completa de la estructura del repositorio, manteniendo el archivo comprimida eficiente y basado en texto.

Instrucciones personalizadas

La opción output.instructionFilePath permite especificar un archivo independiente con instrucciones detalladas o contexto sobre el proyecto. Esto permite que los sistemas de IA comprendan el contexto y los requisitos específicos del proyecto, lo que podría generar análisis o sugerencias más relevantes y personalizados.

A continuación se muestra un ejemplo de cómo podría utilizar esta función:

  1. Cree un archivo llamado 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 quality
  1. En su repomix.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 las instrucciones se añade al final del archivo de salida. Esta ubicación puede ser especialmente eficaz para sistemas de IA. Para quienes estén interesados en comprender por qué esto podría ser beneficioso, Anthropic ofrece información en su documentación:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips

Coloque los datos extensos al principio: Coloque sus documentos y entradas extensos (más de 20 000 tokens) cerca de la parte superior de la solicitud, encima de la consulta, las instrucciones y los 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 con múltiples documentos.

Eliminación de comentarios

Cuando output.removeComments se establece en true , Repomix intentará eliminar los comentarios de los tipos de archivo compatibles. Esta función puede ayudar a reducir el tamaño del archivo de salida y a centrarse en el contenido esencial del código.

Los idiomas admitidos 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 la eliminación accidental de código. En casos complejos, es posible que se conserven algunos comentarios.

🔍 Control de seguridad

Repomix incluye una función de verificación de seguridad que utiliza Secretlint para detectar información potencialmente confidencial en sus archivos. Esta función le ayuda a identificar posibles riesgos de seguridad antes de compartir su repositorio.

Los resultados de la comprobación de seguridad se mostrarán en la salida de la CLI una vez finalizado el proceso de empaquetado. Si se detectan archivos sospechosos, verá una lista de ellos junto con un mensaje de advertencia.

Ejemplo de salida:

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

La función de comprobación de seguridad de Repomix está habilitada de forma predeterminada. Puede deshabilitarla configurando security.enableSecurityCheck como false en su archivo de configuración:

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

O utilizando la opción de línea de comando --no-security-check :

repomix --no-security-check

[!NOTA] Deshabilitar las comprobaciones de seguridad puede exponer información confidencial. Use esta opción con precaución y solo cuando sea necesario, por ejemplo, al trabajar con archivos de prueba o documentación que contenga credenciales de ejemplo.

🤝 Contribución

¡Agradecemos las contribuciones de la comunidad! Para empezar, consulta nuestra Guía de Contribución .

Colaboradores

🔒 Política de privacidad

Herramienta CLI de Repomix

  • Recopilación de datos : la herramienta CLI de Repomix no recopila, transmite ni almacena ningún dato de usuario, telemetría o información del repositorio.
  • Uso de la red : Repomix CLI funciona completamente sin conexión tras la instalación. Solo se requiere conexión a internet en los siguientes casos:
    • Instalación mediante npm/yarn.
    • Usando el indicador --remote para procesar repositorios remotos.
    • Buscando actualizaciones (activado manualmente)
  • Consideraciones de seguridad : dado que todo el procesamiento es local, es seguro utilizar Repomix CLI con repositorios privados e internos.

Sitio web de Repomix ( repomix.com )

  • Recopilación de datos : El sitio web de Repomix utiliza Google Analytics para recopilar datos de uso, como las visitas a la página y las interacciones de los usuarios. Esto nos ayuda a comprender cómo se utiliza el sitio web y a mejorar la experiencia del usuario.

Descargo de responsabilidad

Repomix (tanto la herramienta CLI como el sitio web) se proporciona "tal cual", sin garantías de ningún tipo.
No asumimos ninguna responsabilidad por el uso que se haga de los resultados generados, incluida, entre otras cosas, su precisión, legalidad o cualquier posible consecuencia derivada de su uso.

📜 Licencia

Este proyecto está licenciado bajo la licencia MIT .

-
security - not tested
A
license - permissive license
-
quality - not tested

Repomix MCP Server permite que los modelos de IA analicen bases de código de manera eficiente al empaquetar repositorios locales o remotos en archivos individuales optimizados, con compresión inteligente a través de Tree-sitter para reducir significativamente el uso de tokens y, al mismo tiempo, preservar la estructura del código y las firmas esenciales.

  1. 🌟 Features
    1. 🚀 Quick Start
      1. Using the CLI Tool >_
      2. Using The Website 🌐
      3. Using The VSCode Extension ⚡️
      4. Alternative Tools 🛠️
    2. 📊 Usage
      1. Docker Usage 🐳
      2. Prompt Examples
      3. Community Discussion
      4. Output File Format
      5. Command Line Options
      6. Updating Repomix
      7. Remote Repository Processing
      8. Code Compression
      9. MCP Server Integration
    3. ⚙️ Configuration
      1. Global Configuration
      2. Include and Ignore
      3. Custom Instruction
      4. Comment Removal
    4. 🔍 Security Check
      1. 🤝 Contribution
        1. Contributors
      2. 🔒 Privacy Policy
        1. Repomix CLI Tool
        2. Repomix Website (repomix.com)
        3. Liability Disclaimer
      3. 📜 License
        ID: lczqcx54uv