All skills
Skillintermediate

Configuração

O Repomix pode ser configurado usando um arquivo de configuração ou opções de linha de comando. O arquivo de configuração permite que você personalize vários aspectos de como seu código-fonte é processado e gerado.

Claude Code Knowledge Pack7/10/2026

Overview

Configuração

O Repomix pode ser configurado usando um arquivo de configuração ou opções de linha de comando. O arquivo de configuração permite que você personalize vários aspectos de como seu código-fonte é processado e gerado.

Formatos de arquivos de configuração

O Repomix suporta múltiplos formatos de arquivos de configuração para flexibilidade e facilidade de uso.

O Repomix buscará automaticamente arquivos de configuração na seguinte ordem de prioridade:

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

Configuração JSON

Crie um arquivo de configuração no diretório do seu projeto:

repomix --init

Isso criará um arquivo repomix.config.json com as configurações padrão. Você também pode criar um arquivo de configuração global que será usado como fallback quando nenhuma configuração local for encontrada:

repomix --init --global

Configuração TypeScript

Os arquivos de configuração TypeScript oferecem a melhor experiência de desenvolvimento com verificação completa de tipos e suporte IDE.

Instalação:

Para usar a configuração TypeScript ou JavaScript com defineConfig, você precisa instalar o Repomix como dependência de desenvolvimento:

npm install -D repomix

Exemplo:

// repomix.config.ts

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

Vantagens:

  • ✅ Verificação completa de tipos TypeScript em seu IDE
  • ✅ Excelente autocompletar e IntelliSense do IDE
  • ✅ Uso de valores dinâmicos (timestamps, variáveis de ambiente, etc.)

Exemplo de valores dinâmicos:

// repomix.config.ts

// Gerar nome de arquivo baseado em timestamp
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

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

Configuração JavaScript

Os arquivos de configuração JavaScript funcionam da mesma forma que TypeScript, suportando defineConfig e valores dinâmicos.

Opções de configuração

OpçãoDescriçãoPadrão
input.maxFileSizeTamanho máximo do arquivo em bytes para processar. Arquivos maiores serão ignorados. Útil para excluir arquivos binários grandes ou arquivos de dados50000000
output.filePathNome do arquivo de saída. Suporta formatos XML, Markdown e texto simples"repomix-output.xml"
output.styleEstilo de saída (xml, markdown, json, plain). Cada formato tem suas próprias vantagens para diferentes ferramentas de IA"xml"
output.parsableStyleIndica se a saída deve ser escapada de acordo com o esquema de estilo escolhido. Permite melhor análise mas pode aumentar a contagem de tokensfalse
output.compressIndica se deve realizar extração inteligente de código usando Tree-sitter para reduzir a contagem de tokens enquanto preserva a estruturafalse
output.headerTextTexto personalizado para incluir no cabeçalho do arquivo. Útil para fornecer contexto ou instruções para ferramentas de IAnull
output.instructionFilePathCaminho para um arquivo contendo instruções personalizadas detalhadas para processamento de IAnull
output.fileSummaryIndica se deve incluir uma seção de resumo no início mostrando contagens de arquivos, tamanhos e outras métricastrue
output.directoryStructureIndica se deve incluir a estrutura de diretórios na saída. Ajuda a IA a entender a organização do projetotrue
output.filesIndica se deve incluir o conteúdo dos arquivos na saída. Defina como false para incluir apenas estrutura e metadadostrue
output.removeCommentsIndica se deve remover comentários dos tipos de arquivos suportados. Pode reduzir ruído e contagem de tokensfalse
output.removeEmptyLinesIndica se deve remover linhas vazias da saída para reduzir a contagem de tokensfalse
output.showLineNumbersIndica se deve adicionar números de linha a cada linha. Útil para referenciar partes específicas do códigofalse
output.truncateBase64Indica se deve truncar strings de dados base64 longas (por exemplo, imagens) para reduzir a contagem de tokensfalse
output.copyToClipboardIndica se deve copiar a saída para a área de transferência do sistema além de salvar o arquivofalse
output.splitOutputDividir saída em múltiplos arquivos numerados por tamanho máximo por parte (ex., 1000000 para ~1MB). CLI aceita tamanhos legíveis como 500kb ou 2mb. Mantém cada arquivo abaixo do limite e evita dividir arquivos de origem entre as partesNão definido
output.topFilesLengthNúmero de arquivos principais para exibir no resumo. Se definido como 0, nenhum resumo será exibido5
output.includeEmptyDirectoriesIndica se deve incluir diretórios vazios na estrutura do repositóriofalse
output.includeFullDirectoryStructureAo usar padrões include, indica se deve exibir a árvore de diretórios completa (respeitando os padrões ignore) enquanto processa apenas os arquivos incluídos. Fornece contexto completo do repositório para análise de IAfalse
output.git.sortByChangesIndica se deve ordenar arquivos por número de alterações git. Arquivos com mais alterações aparecem no finaltrue
output.git.sortByChangesMaxCommitsNúmero máximo de commits para analisar ao contar alterações git. Limita a profundidade do histórico por desempenho100
output.git.includeDiffsIndica se deve incluir as diferenças git na saída. Mostra separadamente as alterações da árvore de trabalho e as alterações preparadasfalse
output.git.includeLogsIndica se deve incluir logs do git na saída. Mostra histórico de commits com datas, mensagens e caminhos de arquivosfalse
output.git.includeLogsCountNúmero de commits do log do git para incluir na saída50
includePadrões de arquivos para incluir usando padrões glob[]
ignore.useGitignoreIndica se deve usar os padrões do arquivo .gitignore do projetotrue
ignore.useDotIgnoreIndica se deve usar os padrões do arquivo .ignore do projetotrue
ignore.useDefaultPatternsIndica se deve usar os padrões de ignorar padrão (node_modules, .git, etc.)true
ignore.customPatternsPadrões adicionais para ignorar usando padrões glob[]
security.enableSecurityCheckIndica se deve realizar verificações de segurança usando Secretlint para detectar informações sensíveistrue
tokenCount.encodingCodificação de contagem de tokens compatível com OpenAI (por ex., o200k_base para GPT-4o, cl100k_base para GPT-4/3.5). Usa gpt-tokenizer."o200k_base"

O arquivo de configuração suporta a sintaxe JSON5, que permite:

  • Comentários (tanto de uma linha quanto multilinha)
  • Vírgulas finais em objetos e arrays
  • Nomes de propriedades sem aspas
  • Sintaxe de string mais flexível

Validação de esquema

Você pode habilitar a validação de esquema para seu arquivo de configuração adicionando a propriedade $schema:

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

Isso fornece autocompletar e validação em editores que suportam esquema JSON.

Exemplo de arquivo de configuração

Aqui está um exemplo de um arquivo de configuração completo (repomix.config.json):

{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "input": {
    "maxFileSize": 50000000
  },
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml",
    "parsableStyle": false,
    "compress": false,
    "headerText": "Informações de cabeçalho personalizadas para o arquivo empacotado.",
    "fileSummary": true,
    "directoryStructure": true,
    "files": true,
    "removeComments": false,
    "removeEmptyLines": false,
    "topFilesLength": 5,
    "showLineNumbers": false,
    "truncateBase64": false,
    "copyToClipboard": false,
    "includeEmptyDirectories": false,
    "git": {
      "sortByChanges": true,
      "sortByChangesMaxCommits": 100,
      "includeDiffs": false,
      "includeLogs": false,
      "includeLogsCount": 50
    }
  },
  "include": ["**/*"],
  "ignore": {
    "useGitignore": true,
    "useDefaultPatterns": true,
    // Os padrões também podem ser especificados em .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Locais dos arquivos de configuração

O Repomix procura os arquivos de configuração na seguinte ordem:

  1. Arquivo de configuração local no diretório atual (ordem de prioridade: TS > JS > JSON)
    • TypeScript: repomix.config.ts, repomix.config.mts, repomix.config.cts
    • JavaScript: repomix.config.js, repomix.config.mjs, repomix.config.cjs
    • JSON: repomix.config.json5, repomix.config.jsonc, repomix.config.json
  2. Arquivo de configuração global (ordem de prioridade: TS > JS > JSON)
    • Windows:
      • TypeScript: %LOCALAPPDATA%\\Repomix\\repomix.config.ts, .mts, .cts
      • JavaScript: %LOCALAPPDATA%\\Repomix\\repomix.config.js, .mjs, .cjs
      • JSON: %LOCALAPPDATA%\\Repomix\\repomix.config.json5, .jsonc, .json
    • macOS/Linux:
      • TypeScript: ~/.config/repomix/repomix.config.ts, .mts, .cts
      • JavaScript: ~/.config/repomix/repomix.config.js, .mjs, .cjs
      • JSON: ~/.config/repomix/repomix.config.json5, .jsonc, .json

As opções de linha de comando têm precedência sobre as configurações do arquivo.

Padrões de inclusão

O Repomix suporta especificar arquivos para incluir usando padrões glob. Isso permite uma seleção de arquivos mais flexível e poderosa:

  • Use **/*.js para incluir todos os arquivos JavaScript em qualquer diretório
  • Use src/**/* para incluir todos os arquivos dentro do diretório src e seus subdiretórios
  • Combine múltiplos padrões como ["src/**/*.js", "**/*.md"] para incluir arquivos JavaScript em src e todos os arquivos Markdown

Você pode especificar padrões de inclusão em seu arquivo de configuração:

{
  "include": ["src/**/*", "tests/**/*.test.js"]
}

Ou use a opção de linha de comando --include para filtragem única.

Padrões de ignorar

O Repomix oferece múltiplos métodos para definir padrões de ignorar para excluir arquivos ou diretórios específicos durante o processo de empacotamento:

  • .gitignore: Por padrão, são utilizados os padrões listados nos arquivos .gitignore do seu projeto e .git/info/exclude. Este comportamento pode ser controlado com a configuração ignore.useGitignore ou a opção CLI --no-gitignore.
  • .ignore: Você pode usar um arquivo .ignore na raiz do seu projeto, seguindo o mesmo formato que .gitignore. Este arquivo é respeitado por ferramentas como ripgrep e the silver searcher, reduzindo a necessidade de manter múltiplos arquivos de ignorar. Este comportamento pode ser controlado com a configuração ignore.useDotIgnore ou a opção CLI --no-dot-ignore.
  • Padrões padrão: O Repomix inclui uma lista padrão de arquivos e diretórios comumente excluídos (por exemplo, node_modules, .git, arquivos binários). Esta funcionalidade pode ser controlada com a configuração ignore.useDefaultPatterns ou a opção CLI --no-default-patterns. Por favor, consulte defaultIgnore.ts para mais detalhes.
  • .repomixignore: Você pode criar um arquivo .repomixignore na raiz do seu projeto para definir padrões de ignorar específicos do Repomix. Este arquivo segue o mesmo formato que .gitignore.
  • Padrões personalizados: Padrões de ignorar adicionais podem ser especificados usando a opção ignore.customPatterns no arquivo de configuração. Você pode sobrescrever esta configuração com a opção de linha de comando -i, --ignore.

Ordem de prioridade (da mais alta para a mais baixa):

  1. Padrões personalizados (ignore.customPatterns)
  2. Arquivos de ignorar (.repomixignore, .ignore, .gitignore e .git/info/exclude):
    • Quando em diretórios aninhados, arquivos em diretórios mais profundos têm prioridade mais alta
    • Quando no mesmo diretório, esses arquivos são mesclados sem uma ordem particular
  3. Padrões padrão (se ignore.useDefaultPatterns for verdadeiro e --no-default-patterns não for usado)

Esta abordagem permite uma configuração flexível de exclusão de arquivos com base nas necessidades do seu projeto. Ajuda a otimizar o tama