All skills
Skillintermediate

Configurazione

Repomix può essere configurato usando un file di configurazione o opzioni da linea di comando. Il file di configurazione ti permette di personalizzare vari aspetti dell'elaborazione e dell'output della tua codebase.

Claude Code Knowledge Pack7/10/2026

Overview

Configurazione

Repomix può essere configurato usando un file di configurazione o opzioni da linea di comando. Il file di configurazione ti permette di personalizzare vari aspetti dell'elaborazione e dell'output della tua codebase.

Formati dei File di Configurazione

Repomix supporta diversi formati di file di configurazione per maggiore flessibilità e facilità d'uso.

Repomix cercherà automaticamente i file di configurazione nel seguente ordine di priorità:

  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)

Configurazione JSON

Crea un file di configurazione nella directory del tuo progetto:

repomix --init

Questo creerà un file repomix.config.json con le impostazioni predefinite. Puoi anche creare un file di configurazione globale che verrà usato come fallback quando non viene trovata una configurazione locale:

repomix --init --global

Configurazione TypeScript

I file di configurazione TypeScript offrono la migliore esperienza di sviluppo con verifica completa dei tipi e supporto IDE.

Installazione:

Per usare la configurazione TypeScript o JavaScript con defineConfig, devi installare Repomix come dipendenza di sviluppo:

npm install -D repomix

Esempio:

// repomix.config.ts

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

Vantaggi:

  • ✅ Verifica completa dei tipi TypeScript nel tuo IDE
  • ✅ Eccellente autocompletamento e IntelliSense
  • ✅ Utilizzo di valori dinamici (timestamp, variabili d'ambiente, ecc.)

Esempio di Valori Dinamici:

// repomix.config.ts

// Genera un nome file basato sul timestamp
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

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

Configurazione JavaScript

I file di configurazione JavaScript funzionano allo stesso modo di TypeScript, supportando defineConfig e valori dinamici.

Opzioni di Configurazione

OpzioneDescrizionePredefinito
input.maxFileSizeDimensione massima dei file da elaborare in byte. I file più grandi saranno ignorati. Utile per escludere file binari grandi o file di dati50000000
output.filePathNome del file di output. Supporta formati XML, Markdown e testo semplice"repomix-output.xml"
output.styleStile di output (xml, markdown, json, plain). Ogni formato ha i suoi vantaggi per diversi strumenti IA"xml"
output.parsableStyleSe effettuare l'escape dell'output secondo lo schema di stile scelto. Permette una migliore analisi ma può aumentare il conteggio tokenfalse
output.compressSe eseguire l'estrazione intelligente del codice usando Tree-sitter per ridurre il conteggio token preservando la strutturafalse
output.headerTextTesto personalizzato da includere nell'intestazione del file. Utile per fornire contesto o istruzioni agli strumenti IAnull
output.instructionFilePathPercorso a un file contenente istruzioni personalizzate dettagliate per l'elaborazione IAnull
output.fileSummarySe includere una sezione riepilogo all'inizio mostrando il conteggio file, dimensioni e altre metrichetrue
output.directoryStructureSe includere la struttura delle directory nell'output. Aiuta l'IA a capire l'organizzazione del progettotrue
output.filesSe includere il contenuto dei file nell'output. Impostare a false per includere solo struttura e metadatitrue
output.removeCommentsSe rimuovere i commenti dai tipi di file supportati. Può ridurre il rumore e il conteggio tokenfalse
output.removeEmptyLinesSe rimuovere le righe vuote dall'output per ridurre il conteggio tokenfalse
output.showLineNumbersSe aggiungere numeri di riga a ogni riga. Utile per riferirsi a parti specifiche del codicefalse
output.truncateBase64Se troncare le stringhe di dati base64 lunghe (es. immagini) per ridurre il conteggio tokenfalse
output.copyToClipboardSe copiare l'output negli appunti di sistema oltre a salvare il filefalse
output.splitOutputDividi l'output in più file numerati per dimensione massima per parte (es., 1000000 per ~1MB). CLI accetta dimensioni leggibili come 500kb o 2mb. Mantiene ogni file sotto il limite ed evita di dividere i file di origine tra le partiNon impostato
output.topFilesLengthNumero dei file principali da mostrare nel riepilogo. Se impostato a 0, nessun riepilogo sarà mostrato5
output.includeEmptyDirectoriesSe includere le directory vuote nella struttura del repositoryfalse
output.includeFullDirectoryStructureQuando si usano pattern include, se mostrare l'albero completo delle directory (rispettando i pattern ignore) mentre si elaborano solo i file inclusi. Fornisce contesto completo del repository per l'analisi IAfalse
output.git.sortByChangesSe ordinare i file per numero di modifiche git. I file con più modifiche appaiono in fondotrue
output.git.sortByChangesMaxCommitsNumero massimo di commit da analizzare per le modifiche git. Limita la profondità della cronologia per le prestazioni100
output.git.includeDiffsSe includere i diff git nell'output. Mostra separatamente le modifiche dell'albero di lavoro e le modifiche stagedfalse
output.git.includeLogsSe includere i log git nell'output. Mostra la cronologia dei commit con date, messaggi e percorsi filefalse
output.git.includeLogsCountNumero di commit git recenti da includere nell'output50
includePattern dei file da includere usando pattern glob[]
ignore.useGitignoreSe usare i pattern dal file .gitignore del progettotrue
ignore.useDotIgnoreSe usare i pattern dal file .ignore del progettotrue
ignore.useDefaultPatternsSe usare i pattern di ignore predefiniti (node_modules, .git, ecc.)true
ignore.customPatternsPattern aggiuntivi da ignorare usando pattern glob[]
security.enableSecurityCheckSe eseguire controlli di sicurezza usando Secretlint per rilevare informazioni sensibilitrue
tokenCount.encodingEncoding del conteggio token compatibile con OpenAI (ad es., o200k_base per GPT-4o, cl100k_base per GPT-4/3.5). Utilizza gpt-tokenizer."o200k_base"

Il file di configurazione supporta la sintassi JSON5, che permette:

  • Commenti (sia su singola riga che su più righe)
  • Virgole finali in oggetti e array
  • Nomi di proprietà non tra virgolette
  • Sintassi stringa più flessibile

Validazione Schema

Puoi abilitare la validazione schema per il tuo file di configurazione aggiungendo la proprietà $schema:

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

Questo fornisce autocompletamento e validazione negli editor che supportano gli schema JSON.

Esempio di File di Configurazione

Ecco un esempio completo di file di configurazione (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": "Informazioni di intestazione personalizzate per il file compresso.",
    "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,
    // I pattern possono essere specificati anche in .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}

Posizioni dei File di Configurazione

Repomix cerca i file di configurazione nel seguente ordine:

  1. File di configurazione locale nella directory corrente (ordine di priorità: 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. File di configurazione globale (ordine di priorità: 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

Le opzioni da linea di comando hanno la priorità sulle impostazioni del file di configurazione.

Pattern di Inclusione

Repomix supporta la specifica dei file da includere usando pattern glob. Questo permette una selezione di file più flessibile e potente:

  • Usa **/*.js per includere tutti i file JavaScript in qualsiasi directory
  • Usa src/**/* per includere tutti i file nella directory src e le sue sottodirectory
  • Combina più pattern come ["src/**/*.js", "**/*.md"] per includere i file JavaScript in src e tutti i file Markdown

Puoi specificare pattern di inclusione nel tuo file di configurazione:

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

Oppure usa l'opzione da linea di comando --include per filtraggio una tantum.

Pattern di Esclusione

Repomix offre diversi metodi per definire pattern di esclusione per escludere file o directory specifici durante il processo di impacchettamento:

  • .gitignore: Per impostazione predefinita, i pattern elencati nei file .gitignore del progetto e .git/info/exclude sono usati. Questo comportamento può essere controllato con l'impostazione ignore.useGitignore o l'opzione CLI --no-gitignore.
  • .ignore: Puoi usare un file .ignore alla radice del progetto, seguendo lo stesso formato di .gitignore. Questo file è rispettato da strumenti come ripgrep e the silver searcher, riducendo la necessità di mantenere più file di esclusione. Questo comportamento può essere controllato con l'impostazione ignore.useDotIgnore o l'opzione CLI --no-dot-ignore.
  • Pattern predefiniti: Repomix include una lista predefinita di file e directory comunemente esclusi (es. node_modules, .git, file binari). Questa funzionalità può essere controllata con l'impostazione ignore.useDefaultPatterns o l'opzione CLI --no-default-patterns. Consulta defaultIgnore.ts per dettagli.
  • .repomixignore: Puoi creare un file .repomixignore alla radice del progetto per definire pattern di esclusione specifici per Repomix. Questo file segue lo stesso formato di .gitignore.
  • Pattern personalizzati: Pattern di esclusione aggiuntivi possono essere specificati usando l'opzione ignore.customPatterns nel file di configurazione. Puoi sovrascrivere questa impostazione con l'opzione da linea di comando -i, --ignore.

Ordine di priorità (dal più alto al più basso):

  1. Pattern personalizzati (ignore.customPatterns)
  2. File di esclusione (.repomixignore, .ignore, .gitignore, e .git/info/exclude):
    • Quando sono in directory annidate, i file nelle directory più profonde hanno priorità maggiore
    • Quando sono nella stessa directory, questi file sono uniti senza ordine particolare
  3. Pattern predefiniti (se ignore.useDefaultPatterns è true e --no-default-patterns non è usato)

Questo approccio permette una configurazione flessibile dell'esclusione dei file in base alle esigenze del progetto. Aiuta a ottimizzare la dimensione del file impacchettato generato garantendo l'esclusione di file sensibili alla sicurezza e grandi file binari, mentre previene la fuga di informazioni confidenziali.

Nota: I file binari non sono inclusi nell'output impacchettato per impostazione predefinita, ma i loro percorsi sono elencati nella sezione "Struttura del Repository" del file di output. Questo fornisce una panoramica completa dell