Ogni volta che un agente AI apre una codebase media, brucia centinaia di migliaia di token per ri-scoprire fatti che tra un commit e l'altro non cambiano: dove sono le rotte, quali tabelle esistono, quali variabili d'ambiente contano, qual è il file-dio del progetto.
RepoLens estrae tutto questo una volta, in modo deterministico. Poi punti il CLAUDE.md o l'AGENTS.md del progetto alla mappa, e ogni sessione parte già con il contesto in memoria — i token vanno sul compito vero, non sull'esplorazione.
RepoLens cammina qualunque directory e inventaria ogni file — nome, dimensione, posizione, tipo. Niente è escluso a priori: salta solo le cartelle "rumore" di default (node_modules, .git, dist, build, vendor, __pycache__…), e quelle le puoi sovrascrivere via config.
I file finiscono in tre livelli di trattamento, dal più universale al più mirato.
Ogni file contato e mappato per tipo. Immagini, video, PDF, font, zip vengono mappati ma non aperti.
Righe di codice (LOC), linguaggio, treemap dimensionata per peso reale.
Catalogo strutturato: rotte, tabelle, env, e qualunque pattern definito via regex nel config.
Compatto, con ogni voce come link cliccabile file#L<riga> — funziona su GitHub e VS Code.
File tree, grafo degli import, ogni riga di catalogo con provenienza file · line · link. Pronto per RAG e script.
Treemap zoomabile, barre per linguaggio, tabelle ordinabili e cercabili. Self-contained, offline, UI in IT o EN.
Struttura, righe di codice e linguaggi, resi come treemap squarified.
JS/TS/Python: fan-in / fan-out, hub di dipendenze e file-dio (≥1500 righe).
Express, Hono, Koa, Cloudflare Workers, decoratori Python — con euristica auth e file:line.
CREATE / ALTER TABLE da file SQL e SQL inline. Schema senza connessione al DB.
Con conteggio dei riferimenti e posizioni nel codice.
Quali endpoint chiama davvero il JS di ogni pagina. Più npm script e binding Cloudflare wrangler.
Il core resta agnostico, il tuo dominio si aggancia via config: ogni extractor custom è un glob + una regex + i nomi dei campi, e ogni match diventa una riga di catalogo con provenienza file:line automatica — una tab in più nell'HTML, una sezione in più nel Markdown.
Il livello 3 funziona via regex su testo — quindi non solo codice. Markdown, YAML, TOML, CSV, .env, JSON, HTML, log, SQL, OpenAPI, file di config: ogni pattern ripetuto diventa un catalogo. Gli estrattori built-in coprono cose da codebase (rotte, tabelle SQL, env var, pagine, npm script, binding wrangler), ma quelli che scrivi nel config catturano qualunque pattern, in qualunque testo.
L'output .json è già dato strutturato, pronto da dare all'AI — o a una pipeline RAG, una dashboard, uno script.
Front-matter e link tra note (es. un vault Obsidian) → catalogo navigabile + treemap.
Termini da un CSV, chiavi di un dizionario, righe ripetute.
Endpoint da un openapi.yaml.
Tutte le H1/H2 dei documenti, indicizzate.
Tutte le feature-flag, i nomi-evento, i secret-name.
Codici penali e civili, leggi, contratti: articoli e commi diventano un catalogo navigabile, ognuno con file:line per la citazione esatta.
PDF, .docx, .xlsx li vede e li mappa, ma non ne estrae il testo: servirebbe un parser dedicato. Arriverà come plugin opzionale, per non tradire lo "zero dipendenze".
I "circuiti" di import valgono per quei linguaggi. Go, Rust e Java sarebbero ~15 righe di regex in più ciascuno.
Estrae struttura e fatti, non significato. Il chunking semantico resta lavoro per l'LLM / RAG a valle.
In una riga: RepoLens è un estrattore deterministico per qualsiasi corpus testuale — perfetto per preparare all'AI mappe di codice, ma anche di documentazione, config, dati e corpora legali.
La mappa sostituisce l'esplorazione: la sessione parte informata.
File-dio e hub di dipendenze dicono dove fa male.
Ogni rotta, con metodo, hint di auth e posizione sorgente.
Dai la dashboard HTML a un nuovo dev invece di un tour.
Rigeneri a comando: la mappa è codice, non prosa.
Diff del JSON tra commit: nuove rotte, tabelle o env var emergono in review.
RepoLens è un tool open source di X Quantum Tech, rilasciato con licenza MIT. Un file, zero dipendenze. Prendilo, mappalo, dallo al tuo agente.
Creato da Maurizio Tarricone · X Quantum Tech · @x-quantum-tech/repolens su npm