Skip to main content
Glama
MIT License
14,323
16,906
  • Linux
  • Apple

Warp, la terminal de agente para desarrolladores

Disponible para MacOS, Linux y Windows

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

Uso del archivo Repomix 1

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.

Uso del archivo Repomix 2

¡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 del navegador 🧩

¡Accede al instante a Repomix directamente desde cualquier repositorio de GitHub! Nuestra extensión para Chrome añade un práctico botón "Repomix" a las páginas del repositorio de GitHub.

Extensión del navegador Repomix

Instalar
Características
  • Acceso con un clic a Repomix para cualquier repositorio de GitHub
  • ¡Pronto habrá más funciones interesantes!

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/es/docs/construir-con-claude/ingeniería-pronta/usar-etiquetas-xml

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
  • --stdout : Salida a stdout en lugar de escribir en un archivo (no se puede utilizar con la opción --output )
  • --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 : Copia adicionalmente 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
  • --include-diffs : incluye diferencias de git en la salida (incluye el árbol de trabajo y los cambios preparados por separado)
  • --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:

# Basic usage repomix # Custom output repomix -o output.xml --style xml # Output to stdout repomix --stdout > custom-output.txt # Send output to stdout, then pipe into another command (for example, simonw/llm) repomix --stdout | llm "Please explain what this code does." # Custom output with compression repomix --compress # Process specific files repomix --include "src/**/*.ts" --ignore "**/*.test.ts" # Remote repository with branch repomix --remote https://github.com/user/repo/tree/main # Remote repository with commit repomix --remote https://github.com/user/repo/commit/836abcd7335137228ad77feb28655d85712680f1 # Remote repository with shorthand repomix --remote user/repo

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:

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

Usando Docker en lugar de npx:

Puede utilizar Docker como alternativa a npx para ejecutar Repomix como servidor MCP:

{ "mcpServers": { "repomix-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/yamadashy/repomix", "--mcp" ] } } }

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 XML consolidado para el análisis de IA
  • Parámetros:
    • directory : Ruta absoluta al directorio a empaquetar
    • compress : (Opcional, valor predeterminado: false) Habilita la compresión de Tree-sitter para extraer firmas y estructura de código esenciales, eliminando detalles de implementación. Reduce el uso de tokens en aproximadamente un 70 % y preservando el significado semántico. Generalmente no es necesario, ya que grep_repomix_output permite la recuperación incremental de contenido. Úselo solo cuando necesite específicamente todo el contenido del código base para repositorios grandes.
    • includePatterns : (Opcional) Especifique los archivos que se incluirán mediante patrones de glob rápido. Se pueden separar varios patrones por comas (p. ej., " /*.{js,ts}", "src/ ,docs/**"). Solo se procesarán los archivos coincidentes.
    • ignorePatterns : (Opcional) Especifique archivos adicionales para excluir mediante patrones de glob rápido. Se pueden separar varios patrones por comas (p. ej., "test/ ,*.spec.js", "node_modules/ ,dist/**"). Estos patrones complementan .gitignore y las exclusiones integradas.
    • topFilesLength : (opcional, predeterminado: 10) Número de archivos más grandes por tamaño para mostrar en el resumen de métricas para el análisis de la base de código.
  1. pack_remote_repository : recupera, clona y empaqueta un repositorio de GitHub en un archivo XML consolidado para análisis de IA
  • Parámetros:
    • remote : URL del repositorio de GitHub o formato de usuario/repositorio (por ejemplo, "yamadashy/repomix", " https://github.com/user/repo " o " https://github.com/user/repo/tree/branch ")
    • compress : (Opcional, valor predeterminado: false) Habilita la compresión de Tree-sitter para extraer firmas y estructura de código esenciales, eliminando detalles de implementación. Reduce el uso de tokens en aproximadamente un 70 % y preservando el significado semántico. Generalmente no es necesario, ya que grep_repomix_output permite la recuperación incremental de contenido. Úselo solo cuando necesite específicamente todo el contenido del código base para repositorios grandes.
    • includePatterns : (Opcional) Especifique los archivos que se incluirán mediante patrones de glob rápido. Se pueden separar varios patrones por comas (p. ej., " /*.{js,ts}", "src/ ,docs/**"). Solo se procesarán los archivos coincidentes.
    • ignorePatterns : (Opcional) Especifique archivos adicionales para excluir mediante patrones de glob rápido. Se pueden separar varios patrones por comas (p. ej., "test/ ,*.spec.js", "node_modules/ ,dist/**"). Estos patrones complementan .gitignore y las exclusiones integradas.
    • topFilesLength : (opcional, predeterminado: 10) Número de archivos más grandes por tamaño para mostrar en el resumen de métricas para el análisis de la base de código.
  1. read_repomix_output : Lee el contenido de un archivo de salida generado por Repomix. Admite lectura parcial con especificación de rango de línea para archivos grandes.
  • Parámetros:
    • outputId : ID del archivo de salida de Repomix para leer
    • startLine : (Opcional) Número de línea inicial (basado en 1, inclusive). Si no se especifica, se lee desde el principio.
    • endLine : (Opcional) Número de línea final (basado en 1, inclusive). Si no se especifica, se lee hasta el final.
  • 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
    • Admite lectura parcial de archivos grandes
  1. grep_repomix_output : busca patrones en un archivo de salida de Repomix usando una funcionalidad similar a grep con sintaxis RegExp de JavaScript
  • Parámetros:
    • outputId : ID del archivo de salida de Repomix para buscar
    • pattern : Patrón de búsqueda (sintaxis de expresión regular RegExp de JavaScript)
    • contextLines : (Opcional, valor predeterminado: 0) Número de líneas de contexto que se mostrarán antes y después de cada coincidencia. Se reemplaza por beforeLines/afterLines si se especifica.
    • beforeLines : (Opcional) Número de líneas de contexto que se mostrarán antes de cada coincidencia (como grep -B). Tiene prioridad sobre contextLines.
    • afterLines : (Opcional) Número de líneas de contexto que se mostrarán después de cada coincidencia (como grep -A). Tiene prioridad sobre contextLines.
    • ignoreCase : (opcional, valor predeterminado: falso) Realizar coincidencias sin distinguir entre mayúsculas y minúsculas
  • Características:
    • Utiliza la sintaxis RegExp de JavaScript para una potente coincidencia de patrones
    • Admite líneas de contexto para una mejor comprensión de las coincidencias.
    • Permite el control separado de las líneas de contexto anteriores/posteriores
    • Opciones de búsqueda que distinguen entre mayúsculas y minúsculas y que no distinguen entre mayúsculas y minúsculas
  1. file_system_read_file : Lee un archivo del sistema de archivos local usando una ruta absoluta. Incluye validación de seguridad integrada para detectar y prevenir el acceso a archivos con información confidencial.
  • 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 (claves API, contraseñas, secretos)
    • Valida rutas absolutas para evitar ataques de recorrido de directorio
  1. file_system_read_directory : Lista el contenido de un directorio mediante una ruta absoluta. Devuelve una lista formateada que muestra archivos y subdirectorios con indicadores claros.
  • 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
    • Útil para explorar la estructura del proyecto y comprender la organización de la base de código.

⚙️ Configuración

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

repomix --init

A continuación se ofrece una explicación de las opciones de configuración:

OpciónDescripciónPor defecto
input.maxFileSizeTamaño máximo de archivo en bytes a procesar. Los archivos de mayor tamaño se omitirán.50000000
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.filesSi se debe incluir el contenido del archivo 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
output.git.includeDiffsSi se deben incluir las diferencias de Git en la salida (incluye el árbol de trabajo y los cambios preparados por separado)false
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:

{ "input": { "maxFileSize": 50000000 }, "output": { "filePath": "repomix-output.xml", "style": "xml", "parsableStyle": false, "compress": false, "headerText": "Custom header information for the packed file.", "fileSummary": true, "directoryStructure": true, "files": true, "removeComments": false, "removeEmptyLines": false, "topFilesLength": 5, "showLineNumbers": false, "copyToClipboard": false, "includeEmptyDirectories": false, "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100, "includeDiffs": false } }, "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/es/docs/construir-con-claude/ingeniería-rápida/consejos-de-contexto-largos

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.

🤖 Uso de Repomix con GitHub Actions

También puedes usar Repomix en tus flujos de trabajo de GitHub Actions. Esto es útil para automatizar el proceso de empaquetado de tu código base para el análisis de IA.

Uso básico:

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

Utilice --style para generar salida en diferentes formatos:

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

Empaquetar directorios específicos con compresión:

- 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

Sube el archivo de salida como un artefacto:

- 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

Ejemplo de flujo de trabajo completo:

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

Vea el ejemplo de flujo de trabajo completo aquí .

Entradas de acción

NombreDescripciónPor defecto
directoriesLista separada por espacios de directorios para procesar (por ejemplo, src tests docs ).
includePatrones glob separados por comas para incluir archivos (por ejemplo, **/*.ts,**/*.md )""
ignorePatrones glob separados por comas para ignorar archivos (por ejemplo, **/*.test.ts,**/node_modules/** )""
outputRuta relativa del archivo empaquetado (la extensión determina el formato: .txt , .md , .xml )repomix-output.xml
compressHabilite la compresión inteligente para reducir el tamaño de salida podando los detalles de implementacióntrue
styleEstilo de salida ( xml , markdown , plain )xml
additional-argsArgumentos sin procesar adicionales para la CLI de repomix (por ejemplo, --no-file-summary --no-security-check )""
repomix-versionVersión del paquete npm a instalar (admite rangos semver, etiquetas o versiones específicas como 0.2.25 )latest

Resultados de la acción

NombreDescripción
output_fileRuta al archivo de salida generado. Puede usarse en pasos posteriores para la carga de artefactos, el procesamiento LLM u otras operaciones. El archivo contiene una representación formateada del código fuente según las opciones especificadas.

📚 Usando Repomix como biblioteca

Además de utilizar Repomix como una herramienta CLI, también puedes usarlo como una biblioteca en tus aplicaciones Node.js.

Instalación

npm install repomix

Uso básico

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

Repositorio remoto de procesos

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

Uso de componentes principales

Si necesita más control, puede utilizar las API de bajo nivel:

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

Para obtener más ejemplos, consulte el código fuente en website/server/src/remoteRepo.ts que demuestra cómo repomix.com utiliza la biblioteca.

🤝 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

hybrid server

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

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. 🎉 ¡Nuevo: sitio web de Repomix y comunidad de Discord!
    1. 🌟 Características
      1. 🚀 Inicio rápido
        1. Uso de la herramienta CLI >_
        2. Usando el sitio web 🌐
        3. Usando la extensión del navegador 🧩
        4. Usando la extensión VSCode ⚡️
        5. Herramientas alternativas 🛠️
      2. 📊 Uso
        1. Uso de Docker 🐳
        2. Ejemplos de indicaciones
        3. Discusión comunitaria
        4. Formato de archivo de salida
        5. Opciones de línea de comandos
        6. Actualización de Repomix
        7. Procesamiento de repositorio remoto
        8. Compresión de código
        9. Integración del servidor MCP
      3. ⚙️ Configuración
        1. Configuración global
        2. Incluir e ignorar
        3. Instrucciones personalizadas
        4. Eliminación de comentarios
      4. 🔍 Control de seguridad
        1. 🤖 Uso de Repomix con GitHub Actions
          1. Entradas de acción
          2. Resultados de la acción
        2. 📚 Usando Repomix como biblioteca
          1. Instalación
          2. Uso básico
          3. Repositorio remoto de procesos
          4. Uso de componentes principales
        3. 🤝 Contribución
          1. Colaboradores
        4. 🔒 Política de privacidad
          1. Herramienta CLI de Repomix
          2. Sitio web de Repomix ( repomix.com )
          3. Descargo de responsabilidad
        5. 📜 Licencia

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            The ArXiv MCP Server bridges the gap between AI models and academic research by providing a sophisticated interface to arXiv's extensive research repository. This server enables AI assistants to perform precise paper searches and access full paper content, enhancing their ability to engage with scientific literature.
            Last updated -
            4
            1,218
            Python
            Apache 2.0
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            🔍 Enable AI assistants to search and access bioRxiv papers through a simple MCP interface. The bioRxiv MCP Server provides a bridge between AI assistants and bioRxiv's preprint repository through the Model Context Protocol (MCP). It allows AI models to search for biology preprints and access their
            Last updated -
            4
            Python
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            🔍 Enable AI assistants to search and access medRxiv papers through a simple MCP interface. The medRxiv MCP Server provides a bridge between AI assistants and medRxiv's preprint repository through the Model Context Protocol (MCP). It allows AI models to search for health sciences preprints and acce
            Last updated -
            1
            Python
            • Linux
            • Apple
          • A
            security
            A
            license
            A
            quality
            An open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.
            Last updated -
            10
            35
            Python
            MIT License
            • Linux
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/yamadashy/repomix'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server