Repomix

Empaqueta el contenido del repositorio en un solo archivo para consumo de IA.

Documentación


Repomix

Empaqueta tu base de código en formatos compatibles con IA

¡Usa Repomix en línea! 👉 repomix.com

¿Necesitas discutir algo? ¡Únete a nuestro Discord!
Comparte tu experiencia y consejos
Mantente al día con las nuevas funciones
Obtén ayuda con la configuración y el uso


npm npm Actions Status codecov CodeRabbit Pull Request Reviews Sponsors Discord

DeepWiki

📦 Repomix es una herramienta potente que empaqueta todo tu repositorio en un único archivo compatible con IA.
Es perfecta para cuando necesitas alimentar tu base de código a Modelos de Lenguaje Grande (LLMs) u otras herramientas de IA como Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más.

Por favor, considera patrocinarme.

Sponsor

Sponsors

🏆 Nominación a los Premios de Código Abierto

¡Estamos honrados! Repomix ha sido nominado en la categoría Impulsado por IA en los Premios de Código Abierto JSNation 2025.

Esto no habría sido posible sin todos ustedes que usan y apoyan Repomix. ¡Gracias!

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

¡Esperamos verte allí!

🌟 Características

  • Optimizado para IA: Formatea tu base de código de una manera que sea fácil de entender y procesar para la IA.
  • Conteo de tokens: Proporciona recuentos de tokens para cada archivo y para todo el repositorio, útil para los límites de contexto de los LLM.
  • Fácil de usar: Solo necesitas un comando para empaquetar todo tu repositorio.
  • Personalizable: Configura fácilmente qué incluir o excluir.
  • Consciente de Git: Respeta automáticamente tus archivos .gitignore, .ignore y .repomixignore.
  • Enfocado en la seguridad: Incorpora Secretlint para detectar archivos que coinciden con formatos de credenciales conocidos y dejarlos fuera de la salida.
  • Compresión de código: La opción --compress utiliza Tree-sitter para extraer elementos clave del código, reduciendo el recuento de tokens mientras preserva la estructura.

🚀 Inicio rápido

Usando la herramienta CLI >_

Puedes probar Repomix al instante en el directorio de tu proyecto sin instalación:

npx repomix@latest

O instálalo globalmente para uso repetido:

# Install using npm
npm install -g repomix

# Alternatively using yarn
yarn global add repomix

# Alternatively using bun
bun add -g repomix

# Alternatively using Homebrew (macOS/Linux)
brew install repomix

# Then run in any project directory
repomix

¡Eso es todo! 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:

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

Repomix File Usage 1

Cuando propones cambios específicos, la IA podría ser capaz de generar código en consecuencia. Con funciones como los Artifacts de Claude, podrías potencialmente generar múltiples archivos, permitiendo la generación de múltiples piezas de código interdependientes.

Repomix File Usage 2

¡Feliz programación! 🚀

Usando el sitio web 🌐

¿Quieres probarlo rápidamente? Visita el sitio web oficial en repomix.com. Simplemente ingresa el nombre de tu repositorio, completa cualquier detalle opcional y haz clic en el botón Empaquetar para ver tu salida generada.

Opciones disponibles

El sitio web ofrece varias funciones convenientes:

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

Usando la extensión del navegador 🧩

¡Obtén acceso instantáneo a Repomix directamente desde cualquier repositorio de GitHub! Nuestra extensión de Chrome agrega un botón conveniente de "Repomix" a las páginas de repositorios de GitHub.

Repomix Browser Extension

Instalación

Características

  • Acceso con un clic a Repomix para cualquier repositorio de GitHub
  • ¡Más funciones emocionantes próximamente!

Usando la extensión de VSCode ⚡️

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

¿Quieres tu salida como archivo o solo el contenido? ¿Necesitas limpieza automática? Esta extensión te cubre. Además, funciona sin problemas con tu archivo repomix.config.json existente.

¡Pruébala ahora en el Mercado de VSCode! El código fuente está disponible en GitHub.

Herramientas alternativas 🛠️

Si usas Python, quizás quieras revisar 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 empaquetar todo tu 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 empaquetar archivos desde una lista de archivos (canalizar a través de stdin):

# Using find command
find src -name "*.ts" -type f | repomix --stdin

# Using git to get tracked files
git ls-files "*.ts" | repomix --stdin

# Using grep to find files containing specific content
grep -l "TODO" **/*.ts | repomix --stdin

# Using ripgrep to find files with specific content
rg -l "TODO|FIXME" --type ts | repomix --stdin

# Using ripgrep (rg) to find files
rg --files --type ts | repomix --stdin

# Using sharkdp/fd to find files
fd -e ts | repomix --stdin

# Using fzf to select from all files
fzf -m | repomix --stdin

# Interactive file selection with fzf
find . -name "*.ts" -type f | fzf -m | repomix --stdin

# Using ls with glob patterns
ls src/**/*.ts | repomix --stdin

# From a file containing file paths
cat file-list.txt | repomix --stdin

# Direct input with echo
echo -e "src/index.ts\nsrc/utils.ts" | repomix --stdin

La opción --stdin te permite canalizar una lista de rutas de archivos a Repomix, dándote la máxima flexibilidad para seleccionar qué archivos empaquetar.

Cuando se usa --stdin, los archivos especificados se agregan efectivamente a los patrones de inclusión. Esto significa que el comportamiento normal de inclusión e ignoración sigue aplicándose: los archivos especificados a través de stdin aún se excluirán si coinciden con patrones de ignoración.

[!NOTA] Cuando se usa --stdin, las rutas de archivos pueden ser relativas o absolutas, y Repomix manejará automáticamente la resolución de rutas y la deduplicación.

Para incluir registros de git en la salida:

# Include git logs with default count (50 commits)
repomix --include-logs

# Include git logs with specific commit count
repomix --include-logs --include-logs-count 10

# Combine with diffs for comprehensive git context
repomix --include-logs --include-diffs

Los registros de git incluyen fechas de confirmación, mensajes y rutas de archivos para cada confirmación, proporcionando un contexto valioso para el análisis de IA de la evolución del código y los patrones de desarrollo.

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 hayas generado el archivo empaquetado, puedes usarlo con herramientas de IA generativa como ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más.

Uso con Docker 🐳

También puedes ejecutar Repomix usando Docker.
Esto es útil si quieres ejecutar Repomix en un entorno aislado o prefieres usar 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

Procesa un repositorio remoto y genera la salida en un directorio output:

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

Ejemplos de mensajes

Una vez que hayas generado el archivo empaquetado con Repomix, puedes usarlo con herramientas de IA como ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok y más. Aquí tienes algunos ejemplos de mensajes para comenzar:

Revisión y refactorización de código

Para una revisión integral 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 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 calidad del código

Evalúa la calidad del código y la adherencia a 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.

Resumen de la biblioteca

Obtén 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éntete libre de modificar estos mensajes según tus necesidades específicas y las capacidades de la herramienta de IA que estés usando.

Discusión comunitaria

Consulta nuestra discusión comunitaria donde los usuarios comparten:

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

¡Siéntete libre de unirte a la discusión y compartir tus propias experiencias! Tus ideas podrían ayudar a otros a hacer un mejor uso de Repomix.

Formato del archivo de salida

Repomix genera un único archivo con separadores claros entre las diferentes partes de tu 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 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>

<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 tus mensajes involucran múltiples componentes como contexto, instrucciones y ejemplos, las etiquetas XML pueden ser un cambio de juego. Ayudan a Claude a analizar tus mensajes con mayor precisión, lo que lleva a salidas 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 tu base de código a sistemas de IA para análisis, revisión de código u otras tareas.

Formato Markdown

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

repomix --style markdown

El formato 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 tanto amigable para humanos como fácilmente analizable por sistemas de IA.

Formato JSON

Para generar la salida en formato JSON, usa la opción --style json:

repomix --style json

El formato JSON estructura el contenido como un objeto JSON jerárquico con nombres de propiedades en camelCase:

{
  "fileSummary": {
    "generationHeader": "This file is a merged representation of the entire codebase, combined into a single document by Repomix.",
    "purpose": "This file contains a packed representation of the entire repository's contents...",
    "fileFormat": "The content is organized as follows...",
    "usageGuidelines": "- This file should be treated as read-only...",
    "notes": "- Some files may have been excluded based on .gitignore, .ignore, and .repomixignore rules..."
  },
  "userProvidedHeader": "Custom header text if specified",
  "directoryStructure": "src/\n  cli/\n    cliOutput.ts\n    index.ts\n  config/\n    configLoader.ts",
  "files": {
    "src/index.js": "// File contents here",
    "src/utils.js": "// File contents here"
  },
  "instruction": "Custom instructions from instructionFilePath"
}

Este formato es ideal para:

  • Procesamiento programático: Fácil de analizar y manipular con bibliotecas JSON
  • Integración de API: Consumo directo por servicios web y aplicaciones
  • Compatibilidad con herramientas de IA: Formato estructurado para sistemas de aprendizaje automático e IA
  • Análisis de datos: Extracción directa de información específica usando herramientas como jq
Trabajando con salida JSON usando jq

El formato JSON facilita la extracción de información específica programáticamente:

# List all file paths
cat repomix-output.json | jq -r '.files | keys[]'

# Count total number of files
cat repomix-output.json | jq '.files | keys | length'

# Extract specific file content
cat repomix-output.json | jq -r '.files["README.md"]'
cat repomix-output.json | jq -r '.files["src/index.js"]'

# Find files by extension
cat repomix-output.json | jq -r '.files | keys[] | select(endswith(".ts"))'

# Get files containing specific text
cat repomix-output.json | jq -r '.files | to_entries[] | select(.value | contains("function")) | .key'

# Extract directory structure
cat repomix-output.json | jq -r '.directoryStructure'

# Get file summary information
cat repomix-output.json | jq '.fileSummary.purpose'
cat repomix-output.json | jq -r '.fileSummary.generationHeader'

# Extract user-provided header (if exists)
cat repomix-output.json | jq -r '.userProvidedHeader // "No header provided"'

# Create a file list with sizes
cat repomix-output.json | jq -r '.files | to_entries[] | "\(.key): \(.value | length) characters"'

Formato de texto plano

Para generar la salida en formato de texto plano, usa 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: Muestra información de versión y sale

Opciones de entrada/salida de CLI

OpciónDescripción
--verboseHabilita el registro de depuración detallado (muestra el procesamiento de archivos, recuentos de tokens y detalles de configuración)
--quietSuprime toda la salida de consola excepto los errores (útil para scripts)
--stdoutEscribe la salida empaquetada directamente en stdout en lugar de un archivo (suprime todo el registro)
--stdinLee rutas de archivos desde stdin, una por línea (los archivos especificados se procesan directamente)
--copyCopia la salida generada al portapapeles del sistema después del procesamiento
--token-count-tree [threshold]Muestra el árbol de archivos con recuentos de tokens; umbral opcional para mostrar solo archivos con ≥N tokens (por ejemplo, --token-count-tree 100)
--top-files-len <number>Número de archivos más grandes para mostrar en el resumen (predeterminado: 5)

Opciones de salida de Repomix

OpciónDescripción
-o, --output <file>Ruta del archivo de salida (predeterminado: repomix-output.xml, use "-" para stdout)
--style <style>Formato de salida: xml, markdown, json o plain (predeterminado: xml)
--output-file-path-style <style>Cómo se muestran las rutas de archivo en la salida: target-relative o cwd-relative (predeterminado: target-relative)
--parsable-styleEscapar caracteres especiales para garantizar XML/Markdown válido (necesario cuando la salida contiene código que rompe el formato)
--compressExtraer la estructura esencial del código (clases, funciones, interfaces) usando análisis Tree-sitter
--output-show-line-numbersPrefijar cada línea con su número de línea en la salida
--no-file-summaryOmitir la sección de resumen de archivos de la salida
--no-directory-structureOmitir la visualización del árbol de directorios de la salida
--no-filesGenerar solo metadatos sin contenido de archivos (útil para análisis de repositorios)
--remove-commentsEliminar todos los comentarios de código antes de empaquetar
--remove-empty-linesEliminar líneas en blanco de todos los archivos
--truncate-base64Truncar cadenas de datos base64 largas para reducir el tamaño de la salida
--header-text <text>Texto personalizado para incluir al comienzo de la salida
--instruction-file-path <path>Ruta al archivo que contiene instrucciones personalizadas para incluir en la salida
--split-output <size>Dividir la salida en múltiples archivos numerados (p. ej., repomix-output.1.xml); tamaño como 500kb, 2mb o 1.5mb
--include-empty-directoriesIncluir carpetas sin archivos en la estructura de directorios
--include-full-directory-structureMostrar el árbol de directorios completo en la salida, incluidos los archivos que no coinciden con los patrones --include
--no-git-sort-by-changesNo ordenar archivos por frecuencia de cambios de git (predeterminado: archivos más modificados primero)
--include-diffsAgregar sección de diff de git que muestre los cambios del árbol de trabajo y los preparados
--include-logsAgregar historial de commits de git con mensajes y archivos modificados
--include-logs-count <count>Número de commits recientes para incluir con --include-logs (predeterminado: 50)

Opciones de Selección de Archivos

OpciónDescripción
--include <patterns>Incluir solo archivos que coincidan con estos patrones glob (separados por comas, p. ej., "src/**/*.js,*.md")
-i, --ignore <patterns>Patrones adicionales para excluir (separados por comas, p. ej., "*.test.js,docs/**")
--no-gitignoreNo usar reglas de .gitignore para filtrar archivos
--no-dot-ignoreNo usar reglas de .ignore para filtrar archivos
--no-default-patternsNo aplicar patrones de ignorado integrados (node_modules, .git, directorios de compilación, etc.)

Opciones de Repositorio Remoto

OpciónDescripción
--remote <url>Clonar y empaquetar un repositorio remoto (URL de GitHub o formato user/repo)
--remote-branch <name>Rama, etiqueta o commit específico a usar (predeterminado: rama predeterminada del repositorio)
--remote-trust-configConfiar y cargar archivos de configuración de repositorios remotos (deshabilitado por defecto por seguridad). En una terminal interactiva, se muestra la configuración y se le pide confirmación

Opciones de Configuración

OpciónDescripción
-c, --config <path>Usar archivo de configuración personalizado en lugar de repomix.config.json
--initCrear un nuevo archivo repomix.config.json con valores predeterminados
--globalCon --init, crear la configuración en el directorio de inicio en lugar del directorio actual

Opciones de Seguridad

  • --no-security-check: Omitir el escaneo de datos sensibles como claves API y contraseñas

Opciones de Conteo de Tokens

  • --token-count-encoding <encoding>: Modelo de tokenizador para contar: o200k_base (GPT-4o), cl100k_base (GPT-3.5/4), etc. (predeterminado: o200k_base)
  • --token-budget <number>: Fallar con un código de salida distinto de cero cuando la salida empaquetada excede N tokens. Útil como protección en pipelines de CI y flujos de trabajo de agentes para mantener la salida dentro de la ventana de contexto del modelo objetivo. La salida aún se genera; solo el código de salida señala el desbordamiento.

MCP

  • --mcp: Ejecutar como servidor de Protocolo de Contexto de Modelo para integración con herramientas de IA
  • --sandbox [dir]: (con --mcp) confinar las herramientas de archivos del servidor MCP a un directorio de trabajo (predeterminado: el directorio de trabajo; p. ej., --sandbox path/to/project) — cada ruta es relativa a esa raíz, las rutas absolutas/de host se rechazan, y el empaquetado remoto, la generación de habilidades y el adjuntado de salidas externas están deshabilitados.

Generación de Habilidades de Agente

OpciónDescripción
--skill-generate [name]Generar salida en formato de Habilidades de Agente de Claude en el directorio .claude/skills/<name>/ (nombre generado automáticamente si se omite)
--skill-project-name <name>Sobrescribir el nombre del proyecto usado en las descripciones de Habilidades generadas
--skill-output <path>Especificar la ruta del directorio de salida de habilidades directamente (omite el aviso de ubicación)
-f, --forceOmitir todos los avisos de confirmación (sobrescritura del directorio de habilidades, confianza en configuración remota)

Modo de Vigilancia

  • -w, --watch: Vigilar cambios de archivos y re-empaquetar automáticamente. Amortigua cambios rápidos (300 ms) y registra una marca de tiempo en cada reconstrucción. Detener con Ctrl+C.

    El modo de vigilancia solo funciona con directorios locales, por lo que no se puede combinar con --remote, una URL de repositorio remoto posicional, --stdout, --stdin, --split-output, --skill-generate o --copy (ya sea establecido en la línea de comandos o en su archivo de configuración).

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"

# Split output into multiple files (max size per part)
repomix --split-output 20mb

# 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

# Watch mode — automatically re-pack on file changes
repomix --watch
repomix -w --include "src/**/*.ts"

Actualizar Repomix

Para actualizar un Repomix instalado globalmente:

# Using npm
npm update -g repomix

# Using yarn
yarn global upgrade repomix

# Using bun
bun update -g repomix

Usar npx repomix es generalmente más conveniente ya que siempre usa la versión más reciente.

Procesamiento de Repositorios Remotos

Repomix admite el procesamiento de repositorios Git remotos sin necesidad de clonación manual. Esta característica le permite analizar rápidamente cualquier repositorio 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/yamadashy/repomix

También puede usar el formato abreviado de GitHub:

repomix --remote yamadashy/repomix

Puede especificar el nombre de la rama, la etiqueta o el hash del commit:

# 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 usar un hash de commit 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

[!NOTA] Por seguridad, los archivos de configuración (repomix.config.*) en repositorios remotos no se cargan por defecto. Esto evita que repositorios no confiables ejecuten código a través de archivos de configuración. Su configuración global y las opciones de CLI aún se aplican. Para confiar en la configuración de un repositorio remoto, use --remote-trust-config o establezca REPOMIX_REMOTE_TRUST_CONFIG=true — en una terminal interactiva, Repomix muestra esa configuración y le pide confirmación antes de cargarla. Consulte Confianza en Configuración de Repositorio Remoto.

Al usar --config con --remote, se requiere una ruta absoluta (p. ej., --config /home/user/repomix.config.json).

Compresión de Código

La opción --compress utiliza Tree-sitter para realizar extracción inteligente de código, centrándose en firmas esenciales de funciones y clases mientras elimina detalles de implementación. Esto puede ayudar a reducir el conteo de tokens mientras se retiene 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 característica experimental que mejoraremos activamente según los comentarios de los usuarios y el uso en el mundo real

Niveles de Inclusión por Archivo (output.patterns)

Mientras que --compress aplica un nivel a cada archivo, output.patterns le permite controlar el nivel de detalle por glob desde su archivo de configuración. Cada entrada apunta a archivos por glob (coincide de la misma manera que include/ignore) y sobrescribe la configuración global de output.compress para los archivos coincidentes:

{
  "output": {
    "compress": false, // global default acts as the catch-all
    "patterns": [
      { "pattern": "docs/**/*", "compress": true },
      { "pattern": "website/**/*", "directoryStructureOnly": true }
    ]
  }
}

Hay tres niveles:

  • Contenido completo (predeterminado) — se incluye el contenido completo del archivo.
  • Comprimido (compress: true) — el contenido pasa por el mismo pipeline de Tree-sitter que --compress.
  • Solo estructura de directorio (directoryStructureOnly: true) — el archivo se lista en la estructura de directorios, pero su bloque de contenido se omite por completo de la salida.

Semántica:

  • Los patrones se evalúan en orden de matriz y el primer patrón que coincide gana para un archivo dado.
  • Las banderas de un patrón coincidente sobrescriben la configuración global de output.compress. Un patrón que coincide sin establecer ninguna bandera fuerza contenido completo para ese archivo (útil para incluir archivos en la lista blanca fuera de un compress global).
  • directoryStructureOnly tiene prioridad sobre compress cuando ambos están establecidos.
  • Si ningún patrón coincide, se aplica el comportamiento global (contenido completo, o comprimido cuando output.compress es true).

Esta es una opción solo de archivo de configuración; no hay bandera de CLI para niveles por patrón.

Optimización del Conteo de Tokens

Comprender la distribución de tokens de su código base es crucial para optimizar las interacciones con IA. Use la opción --token-count-tree para visualizar el uso de tokens en su proyecto:

repomix --token-count-tree

Esto muestra una vista jerárquica de su código base con conteos de tokens:

🔢 Token Count Tree:
────────────────────
└── src/ (70,925 tokens)
    ├── cli/ (12,714 tokens)
    │   ├── actions/ (7,546 tokens)
    │   └── reporters/ (990 tokens)
    └── core/ (41,600 tokens)
        ├── file/ (10,098 tokens)
        └── output/ (5,808 tokens)

También puede establecer un umbral mínimo de tokens para enfocarse en archivos más grandes:

repomix --token-count-tree 1000  # Only show files/directories with 1000+ tokens

Esto le ayuda a:

  • Identificar archivos con muchos tokens que podrían exceder los límites de contexto de IA
  • Optimizar la selección de archivos usando patrones --include y --ignore
  • Planificar estrategias de compresión apuntando a los mayores contribuyentes
  • Equilibrar contenido vs. contexto al preparar código para análisis de IA

División de Salida para Códigos Base Grandes

Al trabajar con códigos base grandes, la salida empaquetada puede exceder los límites de tamaño de archivo impuestos por algunas herramientas de IA (p. ej., el límite de 1 MB de Google AI Studio). Use --split-output para dividir automáticamente la salida en múltiples archivos:

repomix --split-output 1mb

Esto genera archivos numerados como:

  • repomix-output.1.xml
  • repomix-output.2.xml
  • repomix-output.3.xml

El tamaño se puede especificar con unidades: 500kb, 1mb, 2mb, 1.5mb, etc. Se admiten valores decimales.

[!NOTA] Los archivos se agrupan por directorio de nivel superior para mantener el contexto. Un solo archivo o directorio nunca se dividirá en múltiples archivos de salida.

Integración con Servidor MCP

Repomix admite el Protocolo de Contexto de Modelo (MCP), lo que permite a los asistentes de IA interactuar directamente con su código base. Cuando se ejecuta como servidor MCP, Repomix proporciona herramientas que permiten a los asistentes de IA empaquetar repositorios locales o remotos para análisis sin requerir preparación manual de archivos.

repomix --mcp

Modo Sandbox

Por defecto, el servidor MCP puede leer cualquier ruta que el usuario anfitrión pueda. Eso es conveniente para un asistente local confiable, pero demasiado amplio cuando el servidor está expuesto a un cliente o agente no confiable. La bandera --sandbox confina las herramientas de archivos del servidor a un único directorio de trabajo:

# Confine to the current working directory
repomix --mcp --sandbox

# Confine to a specific directory
repomix --mcp --sandbox path/to/project

Cuando el modo sandbox está activado, cada ruta es relativa a la raíz del espacio de trabajo (las rutas absolutas, ~, .. y las rutas de unidad/UNC de Windows se rechazan, al igual que las rutas que se resuelven fuera de la raíz a través de enlaces simbólicos), y solo se registran las herramientas de solo lectura confinadas a la raíz; el empaquetado remoto, la generación de habilidades y el adjuntado de salidas externas están deshabilitados. Las herramientas de archivos sin procesar (file_system_read_file, file_system_read_directory) solo están disponibles en modo sandbox, donde la raíz del espacio de trabajo limita lo que pueden alcanzar. Este es un confinamiento a nivel de aplicación de la superficie de herramientas, no un sandbox a nivel de sistema operativo. Consulte la guía del Servidor MCP para más detalles.

Configuración de Servidores MCP

Para usar Repomix como servidor MCP con asistentes de IA como Claude, debe configurar los ajustes de MCP:

Para VS Code:

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

  1. Usando la Insignia de Instalación:

Install in VS Code Install in VS Code Insiders

  1. Usando la Línea de Comandos:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Para VS Code Insiders:

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

Para Cline (extensión de VS Code):

Edite el archivo cline_mcp_settings.json:

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

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

Para Claude Desktop:

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

Para Claude Code:

Para configurar Repomix como servidor MCP en Claude Code, usa el siguiente comando:

claude mcp add repomix -- npx -y repomix --mcp

Alternativamente, puedes usar los plugins oficiales de Repomix (consulta la sección Claude Code Plugins más abajo).

Usar Docker en lugar de npx:

Puedes usar 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, tu asistente de IA puede usar directamente las capacidades de Repomix para analizar bases de código sin preparación manual de archivos, haciendo 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 análisis de IA
  • Parámetros:
    • directory: Ruta absoluta al directorio a empaquetar
    • compress: (Opcional, predeterminado: false) Habilita la compresión Tree-sitter para extraer firmas y estructura esenciales del código eliminando detalles de implementación. Reduce el uso de tokens en ~70% preservando el significado semántico. Generalmente no es necesario ya que grep_repomix_output permite la recuperación incremental de contenido. Úsalo solo cuando necesites específicamente el contenido completo de la base de código para repositorios grandes.
    • includePatterns: (Opcional) Especifica archivos a incluir usando patrones fast-glob. Múltiples patrones pueden separarse por comas (p. ej., "/*.{js,ts}", "src/,docs/**"). Solo se procesarán los archivos que coincidan.
    • ignorePatterns: (Opcional) Especifica archivos adicionales a excluir usando patrones fast-glob. Múltiples patrones pueden separarse por comas (p. ej., "test/,*.spec.js", "node_modules/,dist/**"). Estos patrones complementan .gitignore, .ignore y las exclusiones integradas.
    • outputPatterns: (Opcional) Niveles de inclusión por archivo, reflejando la opción output.patterns del archivo de configuración. Un array de entradas { pattern, compress?, directoryStructureOnly? }; el primer patrón que coincida gana, directoryStructureOnly tiene prioridad sobre compress, y una coincidencia sin ninguna bandera fuerza el contenido completo (útil para eximir archivos de un compress global). Anula cualquier output.patterns del repomix.config.json del repositorio de destino.
    • topFilesLength: (Opcional, predeterminado: 10) Número de archivos más grandes por tamaño a mostrar en el resumen de métricas para el análisis de la base de código.
  1. attach_packed_output: Adjunta un archivo de salida empaquetado existente de Repomix para análisis de IA
  • Parámetros:
    • path: Ruta a un directorio que contenga repomix-output.xml o ruta directa a un archivo XML de repositorio empaquetado
    • topFilesLength: (Opcional, predeterminado: 10) Número de archivos más grandes por tamaño a mostrar en el resumen de métricas
  • Características:
    • Acepta un directorio que contenga un archivo repomix-output.xml o una ruta directa a un archivo XML
    • Registra el archivo con el servidor MCP y devuelve la misma estructura que la herramienta pack_codebase
    • Proporciona acceso a salidas empaquetadas existentes sin requerir reprocesamiento
    • Útil para trabajar con repositorios empaquetados generados previamente
  1. pack_remote_repository: Obtiene, 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 usuario/repo (p. ej., "yamadashy/repomix", "https://github.com/user/repo" o "https://github.com/user/repo/tree/branch")
    • compress: (Opcional, predeterminado: false) Habilita la compresión Tree-sitter para extraer firmas y estructura esenciales del código eliminando detalles de implementación. Reduce el uso de tokens en ~70% preservando el significado semántico. Generalmente no es necesario ya que grep_repomix_output permite la recuperación incremental de contenido. Úsalo solo cuando necesites específicamente el contenido completo de la base de código para repositorios grandes.
    • includePatterns: (Opcional) Especifica archivos a incluir usando patrones fast-glob. Múltiples patrones pueden separarse por comas (p. ej., "/*.{js,ts}", "src/,docs/**"). Solo se procesarán los archivos que coincidan.
    • ignorePatterns: (Opcional) Especifica archivos adicionales a excluir usando patrones fast-glob. Múltiples patrones pueden separarse por comas (p. ej., "test/,*.spec.js", "node_modules/,dist/**"). Estos patrones complementan .gitignore, .ignore y las exclusiones integradas.
    • outputPatterns: (Opcional) Niveles de inclusión por archivo, reflejando la opción output.patterns del archivo de configuración. Un array de entradas { pattern, compress?, directoryStructureOnly? }; el primer patrón que coincida gana, directoryStructureOnly tiene prioridad sobre compress, y una coincidencia sin ninguna bandera fuerza el contenido completo (útil para eximir archivos de un compress global).
    • topFilesLength: (Opcional, predeterminado: 10) Número de archivos más grandes por tamaño a 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íneas para archivos grandes.
  • Parámetros:
    • outputId: ID del archivo de salida de Repomix a leer
    • startLine: (Opcional) Número de línea inicial (basado en 1, inclusivo). Si no se especifica, lee desde el principio.
    • endLine: (Opcional) Número de línea final (basado en 1, inclusivo). Si no se especifica, lee hasta el final.
  • Características:
    • Diseñado específicamente para entornos basados en web o aplicaciones en sandbox
    • Recupera el contenido de salidas generadas previamente usando su ID
    • Proporciona acceso a la base de código empaquetada sin requerir acceso al sistema de archivos
    • Admite lectura parcial para archivos grandes
  1. grep_repomix_output: Busca patrones en un archivo de salida de Repomix usando funcionalidad similar a grep con sintaxis de expresiones regulares de JavaScript
  • Parámetros:
    • outputId: ID del archivo de salida de Repomix a buscar
    • pattern: Patrón de búsqueda (sintaxis de expresión regular de JavaScript RegExp)
    • contextLines: (Opcional, predeterminado: 0) Número de líneas de contexto a mostrar antes y después de cada coincidencia. Anulado por beforeLines/afterLines si se especifican.
    • beforeLines: (Opcional) Número de líneas de contexto a mostrar antes de cada coincidencia (como grep -B). Tiene prioridad sobre contextLines.
    • afterLines: (Opcional) Número de líneas de contexto a mostrar después de cada coincidencia (como grep -A). Tiene prioridad sobre contextLines.
    • ignoreCase: (Opcional, predeterminado: false) Realiza coincidencia sin distinguir mayúsculas y minúsculas
  • Características:
    • Usa sintaxis de expresiones regulares de JavaScript para coincidencia de patrones potente
    • Admite líneas de contexto para una mejor comprensión de las coincidencias
    • Permite control separado de líneas de contexto antes/después
    • Opciones de búsqueda sensibles e insensibles a mayúsculas y minúsculas
  1. file_system_read_file: Lee un archivo dentro del espacio de trabajo del sandbox. Solo disponible en modo sandbox (--sandbox), donde la raíz del espacio de trabajo limita lo que puede alcanzar.
  • Parámetros:
    • path: Ruta al archivo a leer, relativa a la raíz del espacio de trabajo (p. ej., src/index.ts)
  • Notas:
    • No se registra sin --sandbox
    • El contenido que coincida con formatos de secretos conocidos (Secretlint) se rechaza como salvaguarda heurística adicional: el límite de acceso es la raíz del espacio de trabajo, no el escaneo
  1. file_system_read_directory: Lista el contenido de un directorio dentro del espacio de trabajo del sandbox. Solo disponible en modo sandbox (--sandbox).
  • Parámetros:
    • path: Ruta al directorio a listar, relativa a la raíz del espacio de trabajo (p. ej., . o src)
  • Características:
    • Muestra archivos y directorios con indicadores claros ([FILE] o [DIR])
    • Útil para explorar la estructura del proyecto y comprender la organización de la base de código

Plugins de Claude Code

Repomix proporciona plugins oficiales para Claude Code que se integran perfectamente con el entorno de desarrollo impulsado por IA.

Instalación

1. Añade el marketplace de plugins de Repomix:

/plugin marketplace add yamadashy/repomix

2. Instala los plugins:

# Install MCP server plugin (recommended foundation)
/plugin install repomix-mcp@repomix

# Install commands plugin (extends functionality)
/plugin install repomix-commands@repomix

# Install repository explorer plugin (AI-powered analysis)
/plugin install repomix-explorer@repomix

Nota: El plugin repomix-mcp se recomienda como base. El plugin repomix-commands proporciona comandos de barra convenientes, mientras que repomix-explorer añade capacidades de análisis impulsadas por IA. Aunque puedes instalarlos de forma independiente, usar los tres proporciona la experiencia más completa.

Alternativamente, usa el instalador interactivo de plugins:

/plugin

Esto abrirá una interfaz interactiva donde puedes explorar e instalar los plugins disponibles.

Plugins disponibles

1. repomix-mcp (Plugin de servidor MCP)

Plugin base que proporciona análisis de bases de código impulsado por IA mediante integración con servidor MCP.

Características:

  • Empaqueta repositorios locales y remotos
  • Lee y busca salidas empaquetadas
  • Compresión automática Tree-sitter (~70% de reducción de tokens)

2. repomix-commands (Plugin de comandos de barra)

Proporciona comandos de barra convenientes para operaciones rápidas con soporte de lenguaje natural.

Comandos disponibles:

  • /repomix-commands:pack-local - Empaqueta la base de código local con varias opciones
  • /repomix-commands:pack-remote - Empaqueta y analiza repositorios remotos de GitHub

Ejemplo de uso:

/repomix-commands:pack-local
Pack this project as markdown with compression

/repomix-commands:pack-remote yamadashy/repomix
Pack only TypeScript files from the yamadashy/repomix repository

3. repomix-explorer (Plugin de agente de análisis de IA)

Agente de análisis de repositorios impulsado por IA que explora inteligentemente bases de código usando la CLI de Repomix.

Características:

  • Exploración y análisis de bases de código en lenguaje natural
  • Descubrimiento inteligente de patrones y comprensión de la estructura del código
  • Análisis incremental usando grep y lectura dirigida de archivos
  • Gestión automática de contexto para repositorios grandes

Comandos disponibles:

  • /repomix-explorer:explore-local - Analiza la base de código local con asistencia de IA
  • /repomix-explorer:explore-remote - Analiza repositorios remotos de GitHub con asistencia de IA

Ejemplo de uso:

/repomix-explorer:explore-local ./src
Find all authentication-related code

/repomix-explorer:explore-remote facebook/react
Show me the main component architecture

El agente automáticamente:

  1. Ejecuta npx repomix@latest para empaquetar el repositorio
  2. Usa las herramientas Grep y Read para buscar eficientemente en la salida
  3. Proporciona un análisis completo sin consumir contexto excesivo

Beneficios

  • Integración perfecta: Claude puede analizar directamente bases de código sin preparación manual
  • Lenguaje natural: Usa comandos conversacionales en lugar de recordar la sintaxis de la CLI
  • Siempre actualizado: Usa automáticamente npx repomix@latest para funciones actualizadas
  • Escaneo de secretos: Secretlint marca archivos que coinciden con formatos de credenciales conocidos para que se excluyan de la salida
  • Optimización de tokens: Compresión Tree-sitter para bases de código grandes

Para más detalles, consulta la documentación del plugin en el directorio .claude/plugins/.

Generación de habilidades de agente

Repomix puede generar salida en formato Claude Agent Skills, creando un directorio estructurado de Skills que puede usarse como referencia reutilizable de la base de código para asistentes de IA. Esta característica es particularmente potente cuando quieres hacer referencia a implementaciones de repositorios remotos.

Uso básico

# Generate Skills from local directory
repomix --skill-generate

# Generate with custom Skills name
repomix --skill-generate my-project-reference

# Generate with a custom project name in Skills descriptions
repomix --skill-generate --skill-project-name "My Project"

# Generate from remote repository
repomix --remote https://github.com/user/repo --skill-generate

Cuando ejecutas el comando, Repomix te pide que elijas dónde guardar los Skills:

  1. Skills personales (~/.claude/skills/) - Disponibles en todos los proyectos de tu máquina
  2. Skills de proyecto (.claude/skills/) - Compartidos con tu equipo mediante git

Uso no interactivo

Para canalizaciones de CI y scripts de automatización, puedes omitir todos los avisos interactivos usando --skill-output y --force:

# Specify output directory directly
repomix --skill-generate --skill-output ./my-skills

# Skip overwrite confirmation with --force
repomix --skill-generate --skill-output ./my-skills --force

# Full non-interactive example
repomix --remote user/repo --skill-generate my-skill --skill-output ./output --force

Estructura generada

Los Skills se generan con la siguiente estructura:

.claude/skills/<skill-name>/
├── SKILL.md                 # Main Skills metadata & documentation
└── references/
    ├── summary.md           # Purpose, format, and statistics
    ├── project-structure.md # Directory tree with line counts
    ├── files.md             # All file contents (grep-friendly)
    └── tech-stacks.md       # Languages, frameworks, dependencies

Qué se incluye

  • SKILL.md: Contiene metadatos de Skills, recuentos de archivos/líneas/tokens, descripción general e instrucciones de uso
  • summary.md: Explica el propósito de los Skills, pautas de uso y proporciona un desglose de estadísticas por tipo de archivo e idioma
  • project-structure.md: Árbol de directorios con recuentos de líneas por archivo para facilitar el descubrimiento de archivos
  • files.md: Todo el contenido de los archivos con encabezados de resaltado de sintaxis, optimizado para búsquedas compatibles con grep
  • tech-stacks.md: Stack tecnológico auto-detectado por paquete a partir de archivos de dependencias (package.json, requirements.txt, Cargo.toml, etc.)

Nombres de Skills Auto-generados

Si no se proporciona un nombre, Repomix genera uno automáticamente:

repomix src/ --skill-generate                # → repomix-reference-src
repomix --remote user/repo --skill-generate  # → repomix-reference-repo
repomix --skill-generate CustomName          # → custom-name (normalized to kebab-case)

Integración con Funciones de Repomix

La generación de Skills respeta todas las opciones estándar de Repomix:

# Generate Skills with file filtering
repomix --skill-generate --include "src/**/*.ts" --ignore "**/*.test.ts"

# Generate Skills with compression
repomix --skill-generate --compress

# Generate Skills from remote repository
repomix --remote yamadashy/repomix --skill-generate

Skill Repomix Explorer (Agent Skills)

Repomix proporciona un skill Repomix Explorer listo para usar que permite a los asistentes de codificación con IA analizar y explorar bases de código utilizando la CLI de Repomix. Este skill está diseñado para funcionar con diversas herramientas de IA, incluyendo Claude Code, Cursor, Codex, GitHub Copilot y más.

Instalación Rápida

Para Claude Code, instala el plugin oficial de Repomix Explorer:

/plugin marketplace add yamadashy/repomix
/plugin install repomix-explorer@repomix

Para Codex, Cursor, OpenClaw y otros asistentes compatibles con Agent Skills, instala el skill independiente con la CLI de Skills:

npx skills add yamadashy/repomix --skill repomix-explorer

Para apuntar a un asistente específico, pasa --agent:

npx skills add yamadashy/repomix --skill repomix-explorer --agent codex
npx skills add yamadashy/repomix --skill repomix-explorer --agent openclaw

Para Hermes Agent, instala el skill de archivo único con el comando nativo de skills de Hermes Agent:

hermes skills install https://raw.githubusercontent.com/yamadashy/repomix/main/skills/repomix-explorer/SKILL.md

Qué Hace

Una vez instalado, puedes analizar bases de código con instrucciones en lenguaje natural.

Analizar repositorios remotos:

"What's the structure of this repo?
https://github.com/facebook/react"

Explorar bases de código locales:

"What's in this project?
~/projects/my-app"

Esto es útil no solo para comprender bases de código, sino también cuando deseas implementar funciones haciendo referencia a tus otros repositorios.

⚙️ Configuración

Repomix admite múltiples formatos de archivos de configuración para ofrecer flexibilidad y facilidad de uso.

Formatos de Archivos de Configuración

Repomix buscará automáticamente archivos de configuración en el siguiente orden de prioridad:

  1. TypeScript (repomix.config.ts, repomix.config.mts, repomix.config.cts)
  2. JavaScript/Módulo ES (repomix.config.js, repomix.config.mjs, repomix.config.cjs)
  3. JSON (repomix.config.json5, repomix.config.jsonc, repomix.config.json)

Configuración JSON

Crea un archivo repomix.config.json en la raíz de tu proyecto:

repomix --init

Esto creará un archivo repomix.config.json con la configuración predeterminada.

Configuración TypeScript

Los archivos de configuración TypeScript ofrecen la mejor experiencia de desarrollo con verificación de tipos completa y soporte de IDE.

Instalación:

Para usar la configuración TypeScript o JavaScript con defineConfig, necesitas instalar Repomix como dependencia de desarrollo:

npm install -D repomix

Ejemplo:

// repomix.config.ts
import { defineConfig } from 'repomix';

export default defineConfig({
  output: {
    filePath: 'output.xml',
    style: 'xml',
    removeComments: true,
  },
  ignore: {
    customPatterns: ['**/node_modules/**', '**/dist/**'],
  },
});

Beneficios:

  • ✅ Verificación de tipos TypeScript completa en tu IDE
  • ✅ Autocompletado e IntelliSense excelentes del IDE
  • ✅ Uso de valores dinámicos (marcas de tiempo, variables de entorno, etc.)

Ejemplo de Valores Dinámicos:

// repomix.config.ts
import { defineConfig } from 'repomix';

// Generate timestamp-based filename
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

export default defineConfig({
  output: {
    filePath: `output-${timestamp}.xml`,
    style: 'xml',
  },
});

Configuración JavaScript

Los archivos de configuración JavaScript funcionan igual que TypeScript, admitiendo defineConfig y valores dinámicos.

Opciones de Configuración

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

OpciónDescripciónPredeterminado
input.maxFileSizeTamaño máximo de archivo en bytes a procesar. Los archivos más grandes que esto se omitirán50000000
input.processorsMatriz ordenada de entradas { pattern, command, timeout?, onError? } que ejecutan un comando externo para transformar archivos coincidentes antes de empaquetar (p. ej., JSON→TOON). Gana la primera coincidencia de glob. Ejecuta comandos arbitrarios, por lo que solo se ejecuta para ejecuciones CLI locales (y repositorios remotos con --remote-trust-config). Consulta Procesadores de ArchivosNo establecido
output.filePathEl nombre del archivo de salida"repomix-output.xml"
output.styleEl estilo de la salida (xml, markdown, json, plain)"xml"
output.filePathStyleCómo se muestran las rutas de archivo en la salida (target-relative mantiene las rutas relativas a cada raíz de destino, cwd-relative mantiene las rutas relativas al directorio de trabajo actual)"target-relative"
output.parsableStyleSi escapar la salida según el esquema de estilo elegido. Ten en cuenta que esto puede aumentar el recuento de tokens.false
output.compressSi realizar una extracción de código inteligente para reducir el recuento de tokensfalse
output.patternsNiveles de inclusión por archivo. Una matriz ordenada de entradas { pattern, compress?, directoryStructureOnly? }; gana la primera coincidencia de glob y anula el output.compress global para ese archivo. Consulta Niveles de Inclusión por ArchivoNo establecido
output.headerTextTexto personalizado para incluir en el encabezado del archivonull
output.instructionFilePathRuta a un archivo que contiene instrucciones personalizadas detalladasnull
output.fileSummarySi incluir una sección de resumen al principio de la salidatrue
output.directoryStructureSi incluir la estructura de directorios en la salidatrue
output.filesSi incluir el contenido de los archivos en la salidatrue
output.removeCommentsSi eliminar comentarios de los tipos de archivo admitidosfalse
output.removeEmptyLinesSi eliminar líneas vacías de la salidafalse
output.showLineNumbersSi agregar números de línea a cada línea de la salidafalse
output.truncateBase64Si truncar cadenas de datos base64 largas (p. ej., imágenes) para reducir el recuento de tokensfalse
output.copyToClipboardSi copiar la salida al portapapeles del sistema además de guardar el archivofalse
output.splitOutputDividir la salida en varios archivos numerados por tamaño máximo por parte (p. ej., 1000000 para ~1MB). Mantiene cada archivo bajo el límite y evita dividir archivos entre partesNo establecido
output.topFilesLengthNúmero de archivos principales para mostrar en el resumen. Si se establece en 0, no se mostrará ningún resumen5
output.tokenCountTreeSi mostrar el árbol de archivos con resúmenes de recuento de tokens. Puede ser booleano o número (umbral mínimo de recuento de tokens)false
output.tokenBudgetFallar con un código de salida distinto de cero cuando la salida empaquetada supere esta cantidad de tokens. Actúa como protección para los límites de contexto de CI/agente; la salida aún se generaNo establecido
output.includeEmptyDirectoriesSi incluir directorios vacíos en la estructura del repositoriofalse
output.includeFullDirectoryStructureAl usar patrones include, si mostrar el árbol de directorios completo (respetando los patrones de ignorar) mientras se procesan solo los archivos incluidos. Proporciona contexto completo del repositorio para el análisis de IAfalse
output.git.sortByChangesSi ordenar archivos por recuento de cambios de git (los archivos con más cambios aparecen al final)true
output.git.sortByChangesMaxCommitsNúmero máximo de confirmaciones para analizar cambios de git100
output.git.includeDiffsSi incluir diffs de git en la salida (incluye cambios del árbol de trabajo y del área de preparación por separado)false
output.git.includeLogsSi incluir registros de git en la salida (incluye historial de confirmaciones con fechas, mensajes y rutas de archivo)false
output.git.includeLogsCountNúmero de confirmaciones de registro de git a incluir50
includePatrones de archivos a incluir (usando patrones glob)[]
ignore.useGitignoreSi usar patrones del archivo .gitignore del proyectotrue
ignore.useDotIgnoreSi usar patrones del archivo .ignore del proyectotrue
ignore.useDefaultPatternsSi usar patrones de ignorar predeterminadostrue
ignore.customPatternsPatrones adicionales para ignorar (usando patrones glob)[]
security.enableSecurityCheckSi realizar comprobaciones de seguridad en los archivostrue
tokenCount.encodingCodificación de recuento de tokens para tokenización compatible con OpenAI (p. ej., o200k_base para GPT-4o, cl100k_base para GPT-4/3.5). Impulsado por gpt-tokenizer."o200k_base"

El archivo de configuración admite sintaxis JSON5, 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 cadenas más relajada

Validación de Esquema

Puedes habilitar la validación de esquema para tu archivo de configuración agregando la propiedad $schema:

{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml"
  }
}

Esto proporciona autocompletado y validación en editores que admiten esquemas JSON.

Ejemplo de Configuración

Ejemplo de configuración:

{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "input": {
    "maxFileSize": 50000000,
    // Optional: transform matching files with an external command before packing (local CLI only)
    // "processors": [
    //   { "pattern": "**/*.json", "command": "npx @toon-format/cli {file}" }
    // ]
  },
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml",
    "filePathStyle": "target-relative",
    "parsableStyle": false,
    "compress": false,
    // Optional: override the inclusion level per glob (first match wins)
    // "patterns": [
    //   { "pattern": "docs/**/*", "compress": true },
    //   { "pattern": "website/**/*", "directoryStructureOnly": true }
    // ],
    "headerText": "Custom header information for the packed file.",
    "fileSummary": true,
    "directoryStructure": true,
    "files": true,
    "removeComments": false,
    "removeEmptyLines": false,
    "topFilesLength": 5,
    "tokenCountTree": false, // or true, or a number like 10 for minimum token threshold
    // "tokenBudget": 180000, // optional: fail when the packed output exceeds this many tokens
    "showLineNumbers": false,
    "truncateBase64": false,
    "copyToClipboard": false,
    // "splitOutput": 1000000, // optional: split output into multiple ~1MB files
    "includeEmptyDirectories": false,
    "git": {
      "sortByChanges": true,
      "sortByChangesMaxCommits": 100,
      "includeDiffs": false,
      "includeLogs": false,
      "includeLogsCount": 50
    }
  },
  "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:

  • Windows: %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

Patrones de Inclusión

Repomix ahora admite especificar archivos a incluir usando patrones glob. Esto permite una selección de archivos más flexible y potente:

  • Use **/*.js para incluir todos los archivos JavaScript en cualquier directorio
  • Use 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

Patrones de Ignorar

Repomix ofrece múltiples métodos para establecer patrones de ignorar con el fin de excluir archivos o directorios específicos durante el proceso de empaquetado:

  • .gitignore: De forma predeterminada, se utilizan los patrones listados en los archivos .gitignore de tu proyecto y .git/info/exclude. Este comportamiento se puede controlar con la configuración ignore.useGitignore o la opción de CLI --no-gitignore.
  • .ignore: Puedes usar un archivo .ignore en la raíz de tu proyecto, siguiendo el mismo formato que .gitignore. Este archivo es respetado por herramientas como ripgrep y silver searcher, reduciendo la necesidad de mantener múltiples archivos de ignorar. Este comportamiento se puede controlar con la configuración ignore.useDotIgnore o la opción de CLI --no-dot-ignore.
  • Patrones predeterminados: Repomix incluye una lista predeterminada de archivos y directorios comúnmente excluidos (por ejemplo, node_modules, .git, archivos binarios). Esta característica se puede controlar con la configuración ignore.useDefaultPatterns o la opción de CLI --no-default-patterns. Consulta defaultIgnore.ts para más detalles.
  • .repomixignore: Puedes crear un archivo .repomixignore en la raíz de tu proyecto para definir patrones de ignorar específicos de Repomix. Este archivo sigue el mismo formato que .gitignore.
  • Patrones personalizados: Se pueden especificar patrones de ignorar adicionales usando la opción ignore.customPatterns en el archivo de configuración. Puedes 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. Archivos de ignorar (.repomixignore, .ignore, .gitignore y .git/info/exclude):
    • Cuando están en directorios anidados, los archivos en directorios más profundos tienen mayor prioridad
    • Cuando están en el mismo directorio, estos archivos se fusionan sin un orden particular
  3. Patrones predeterminados (si ignore.useDefaultPatterns es verdadero y --no-default-patterns no se usa)

Este enfoque permite una configuración flexible de exclusión de archivos según las necesidades de tu proyecto. Ayuda a optimizar el tamaño del archivo de empaquetado generado al garantizar la exclusión de archivos sensibles a la seguridad y archivos binarios grandes, mientras previene la fuga de información confidencial.

Nota: Los archivos binarios no se incluyen en la salida empaquetada de forma predeterminada, pero sus rutas se listan en la sección "Estructura del Repositorio" del archivo de salida. Esto proporciona una visión general completa de la estructura del repositorio mientras mantiene el archivo empaquetado eficiente y basado en texto.

Instrucción Personalizada

La opción output.instructionFilePath te permite especificar un archivo separado que contenga instrucciones detalladas o contexto sobre tu proyecto. Esto permite que los sistemas de IA comprendan el contexto y los requisitos específicos de tu proyecto, lo que potencialmente conduce a análisis o sugerencias más relevantes y adaptadas.

Aquí hay un ejemplo de cómo podrías usar esta característica:

  1. Crea un archivo llamado repomix-instruction.md en la raíz de tu 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 tu repomix.config.json, agrega 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 la instrucción se agrega al final del archivo de salida. Esta ubicación puede ser particularmente efectiva para sistemas de IA. Para aquellos interesados en entender por qué esto podría ser beneficioso, Anthropic proporciona algunas ideas en su documentación:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips

Coloca datos de formato largo al principio: Coloca tus documentos y entradas largos (~20K+ tokens) cerca de la parte superior de tu prompt, por encima de tu 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.

Eliminación de Comentarios

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

Los lenguajes 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 código accidentalmente. En casos complejos, algunos comentarios podrían conservarse.

Procesadores de Archivos

input.processors ejecuta un comando externo para transformar el contenido de un archivo antes de que se empaquete. Cada entrada apunta a archivos mediante glob (coincididos como include/ignore) y reemplaza el contenido de los archivos coincidentes con la salida estándar del comando — útil para transformaciones de reducción de tokens o conversión de formato como JSON→TOON, minificación de SVG o conversión de notebook→script.

{
  "input": {
    "processors": [
      { "pattern": "**/*.json", "command": "npx @toon-format/cli {file}" }
    ]
  }
}

El marcador de posición {file} (obligatorio) se reemplaza con un archivo temporal que contiene el contenido del archivo, y la salida estándar del comando se convierte en el nuevo contenido. Los patrones se evalúan en orden y la primera coincidencia gana (un procesador por archivo). Cada entrada también acepta timeout (ms, predeterminado 60000) y onError ("fail" para abortar el empaquetado, predeterminado; "skip" para advertir y mantener el contenido original).

Ejemplos de comandos (cada uno es un valor de command emparejado con un pattern adecuado):

PatróncommandQué hace
**/*.jsonjq -c . {file}Compacta JSON eliminando espacios en blanco
**/*.jsonnpx @toon-format/cli {file}Convierte JSON a TOON, un formato compacto eficiente en tokens
**/*.svgnpx svgo -i {file} -o -Minifica SVG
**/*.ipynbjupyter nbconvert --to script --stdout {file}Convierte un notebook de Jupyter a un script de Python simple

Aplica solo un procesador por archivo (la primera coincidencia gana) y asegúrate de que la herramienta que invoca esté en tu PATH (los comandos basados en npx lo descargan en el primer uso).

[!ADVERTENCIA] Los procesadores de archivos ejecutan comandos arbitrarios desde tu archivo de configuración, por lo que la ejecución está denegada por defecto:

  • Habilitado solo para ejecuciones de CLI locales, donde Repomix asume que la configuración en tu directorio de trabajo es tuya — el mismo límite de confianza que un script npm o un Makefile. Como con esos, si ejecutas repomix dentro de un repositorio que obtuviste de otra persona sin revisar su repomix.config.json primero, sus comandos de procesador se ejecutarán en tu máquina. Revisa la configuración de repositorios no confiables antes de empaquetarlos.
  • Deshabilitado para la API de biblioteca (pack() / runCli()), el servidor MCP y el repomix.com alojado.
  • Para repositorios remotos (--remote), la configuración clonada — y sus procesadores — se confía solo cuando pasas explícitamente --remote-trust-config; sin él, la configuración remota ni siquiera se carga.

Los procesadores activos se imprimen al inicio y en los mensajes de error, por lo que las credenciales de referencia se pasan a través de variables de entorno (por ejemplo, $TOKEN), que se registran sin expandir, en lugar de insertarlas directamente. En caso de tiempo de espera, Repomix mata el shell del comando, pero un comando que genera sus propios procesos en segundo plano de larga duración puede dejarlos ejecutándose. Consulta la guía de configuración para más detalles.

🔍 Verificación de Seguridad

Repomix incluye una característica de verificación de seguridad que usa Secretlint para detectar información potencialmente sensible en tus archivos. Esta característica te ayuda a identificar posibles riesgos de seguridad antes de compartir tu repositorio empaquetado.

Los resultados de la verificación de seguridad se mostrarán en la salida de CLI después de que se complete el proceso de empaquetado. Si se detectan archivos sospechosos, verás una lista de estos archivos 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.

De forma predeterminada, la característica de verificación de seguridad de Repomix está habilitada. Puedes deshabilitarla estableciendo security.enableSecurityCheck en false en tu archivo de configuración:

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

O usando la opción de línea de comandos --no-security-check:

repomix --no-security-check

[!NOTA] Deshabilitar las verificaciones de seguridad puede exponer información sensible. Usa esta opción con precaución y solo cuando sea necesario, como cuando trabajas con archivos de prueba o documentación que contiene credenciales de ejemplo.

Confianza de Configuración de Repositorio Remoto

Un repomix.config.* es código, no solo datos: una configuración .ts / .js se ejecuta cuando se carga, input.processors ejecuta comandos externos y las opciones de ruta pueden leer archivos fuera del repositorio. Cargar uno de un repositorio desconocido es comparable a ejecutar su Makefile.

Por esa razón, la configuración de un repositorio clonado nunca se carga de forma predeterminada. Tu configuración global y las opciones de CLI aún se aplican.

Cuando optas por participar con --remote-trust-config (o REPOMIX_REMOTE_TRUST_CONFIG=true) en una terminal interactiva, Repomix muestra la configuración que está a punto de ejecutarse y pregunta antes de cargarla:

  • Sí, una vez — confía solo en esta ejecución.
  • Sí, y no preguntes de nuevo para este repositorio — la decisión está fijada por contenido: registra un hash de la configuración que aprobaste, por lo que se te pregunta de nuevo si ese repositorio luego envía una diferente (el modelo direnv allow).
  • No (la selección predeterminada) — aborta sin cargar la configuración.

La configuración mostrada está escrita por el autor del repositorio, por lo que los caracteres de control, ANSI y bidireccionales se escapan, la salida está limitada, cada línea de configuración tiene un prefijo y las configuraciones con enlaces simbólicos que apuntan fuera del clon se rechazan — lo que revisas es lo que se ejecuta.

El aviso se omite con --force, en shells no interactivos como CI (la automatización existente sigue funcionando) y una vez que has elegido confiar siempre en ese repositorio.

[!IMPORTANTE] La fijación de contenido cubre solo el archivo de configuración de entrada. Una configuración .ts / .js puede import otros archivos y input.processors puede invocar scripts externos; ninguno está hasheado. Trata "no preguntar de nuevo" como confianza en el repositorio, no solo en el archivo que leíste.

Consulta la guía de seguridad para el modelo de confianza completo.

🤖 Usando 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 empaquetar tu base de código para 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

Usa --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
- name: Pack repository with Repomix (JSON format)
  uses: yamadashy/repomix/.github/actions/repomix@main
  with:
    output: repomix-output.json
    style: json

Empaqueta 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@v7
  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@v7

      - 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@v7
        with:
          name: repomix-output.xml
          path: repomix-output.xml
          retention-days: 30

Consulta el ejemplo de flujo de trabajo completo aquí.

Entradas de Acción

NombreDescripciónPredeterminado
directoriesLista separada por espacios de directorios a procesar (p. ej., src tests docs).
includePatrones glob separados por comas para incluir archivos (p. ej., **/*.ts,**/*.md)""
ignorePatrones glob separados por comas para ignorar archivos (p. ej., **/*.test.ts,**/node_modules/**)""
outputRuta relativa para el archivo empaquetado (la extensión determina el formato: .txt, .md, .xml)repomix-output.xml
compressHabilita la compresión inteligente para reducir el tamaño de salida eliminando detalles de implementacióntrue
styleEstilo de salida (xml, markdown, json, plain)xml
additional-argsArgumentos adicionales sin procesar para la CLI de repomix (p. ej., --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

Salidas de la acción

NombreDescripción
output_fileRuta al archivo de salida generado. Se puede usar en pasos posteriores para la carga de artefactos, procesamiento con LLM u otras operaciones. El archivo contiene una representación formateada de tu base de código según las opciones especificadas.

📚 Uso de Repomix como biblioteca

Además de usar Repomix como herramienta CLI, también puedes usarlo como 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;
}

Procesar repositorio remoto

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 necesitas más control, puedes usar 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 más ejemplos, consulta el código fuente en website/server/src/remoteRepo.ts, que demuestra cómo repomix.com usa la biblioteca.

Empaquetado

Al empaquetar repomix con herramientas como Rolldown o esbuild, algunas dependencias deben permanecer externas y los archivos WASM deben copiarse:

Dependencias externas (no se pueden empaquetar):

  • tinypool - Genera subprocesos de trabajo usando rutas de archivo

Archivos WASM a copiar:

  • web-tree-sitter.wasm → Mismo directorio que el JS empaquetado (requerido para la función de compresión de código)
  • Archivos de idioma Tree-sitter → Directorio especificado por la variable de entorno REPOMIX_WASM_DIR

Para un ejemplo funcional, consulta website/server/scripts/bundle.mjs.

🌍 Proyectos de la comunidad

Descubre proyectos increíbles creados por la comunidad de Repomix.

  • Repomix Runner - Extensión de VSCode para agrupar archivos en una sola salida para procesamiento con IA
  • Repomix Desktop - Aplicación de escritorio con interfaz gráfica para Repomix creada con Python y CustomTkinter
  • Python Repomix - Implementación en Python con compresión basada en AST
  • Rulefy - Transforma repositorios de GitHub en reglas personalizadas de Cursor AI usando Claude AI
  • Codebase MCP - Servidor MCP que usa Repomix para análisis de bases de código con IA
  • vibe-tools - Conjunto de herramientas CLI para agentes de IA con búsqueda web, análisis de repositorios y automatización de navegador

Para más detalles, visita nuestra página de Proyectos de la comunidad.

🤝 Contribución

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

Contribuyentes

contributors

🔒 Política de privacidad

Consulta nuestra Política de privacidad.

📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT.

    Volver arriba