DeepBase
DeepBase è un tool CLI che analizza una directory di progetto, estrae la struttura delle cartelle e il contenuto dei file di codice significativi, consolidandoli in un unico file di contesto per LLM.
Versione corrente: 1.8.1
🚀 Quick Start
pip install deepbase
# Analisi base (struttura solo)
deepbase /path/to/project
# ModalitĂ Light (risparmio token)
deepbase /path/to/project --light
# Contenuto completo
deepbase /path/to/project --all
# Focus su file specifici
deepbase /path/to/project --light --focus "src/main.py" --focus "config.yaml"
đź“– Documentazione completa
- Installazione
- ModalitĂ di funzionamento
- Configurazione
.deepbase.toml - Database SQLite
- Parser e linguaggi supportati
- API Reference
Installazione
Come installare DeepBase
pip install deepbase
ModalitĂ di sviluppo
git clone https://github.com/follen99/deepbase.git
cd deepbase
pip install -e ".[dev]"
ModalitĂ di funzionamento
Default (Struttura solo)
Genera solo l'albero delle directory, senza contenuto dei file.
deepbase .
--all - Contenuto completo
Include il contenuto completo di tutti i file significativi.
⚠️ Usare solo per progetti piccoli (rischio di file troppo grandi per gli LLM).
deepbase . --all
--light - ModalitĂ Light (consigliata)
Estrae solo le "firme" semantiche: classi, funzioni, docstring, commenti iniziali. Risparmia fino al 90% dei token mantenendo la comprensione dell'architettura.
deepbase . --light
--focus - Hybrid Mode
Combina Light mode per l'intero progetto con contenuto completo per file specifici.
# Via CLI
deepbase . --light --focus "server/controllers/*" --focus "client/src/login.js"
# Via file
deepbase . --light --focus-file context_task.txt
Configurazione
Crea un file .deepbase.toml nella root del progetto:
# Directory da ignorare (nomi, percorsi relativi, wildcard)
ignore_dirs = [
"node_modules", # ignora ovunque
"app/templates", # ignora solo app/templates
"*.egg-info", # ignora tutte le cartelle .egg-info
"temp_*" # ignora temp_1, temp_2, etc.
]
# File da ignorare (nomi, percorsi, wildcard)
ignore_files = [
"*.log", # tutti i file .log
"secrets.env", # file specifico
"app/config.local.py", # percorso specifico
".env*" # .env, .env.local, etc.
]
# Estensioni aggiuntive da includere
significant_extensions = [".cfg", "Makefile", ".prisma"]
Pattern di esclusione
| Pattern | Esempio | Comportamento |
|---|---|---|
| Nome semplice | "tests" |
Ignora TUTTE le cartelle/file chiamati "tests" a qualsiasi livello |
| Percorso relativo | "app/templates" |
Ignora SOLO la cartella templates dentro app |
| Wildcard | "*.egg-info" |
Ignora tutti i match del pattern |
Database
DeepBase supporta l'analisi di database SQLite:
# Schema completo
deepbase database.db --all
# Schema light (solo struttura)
deepbase database.db --light
# Focus su tabelle specifiche
deepbase database.db --light --focus "users" --focus "orders"
Parser
Supporto nativo per:
| Linguaggio | Estensioni | ModalitĂ Light |
|---|---|---|
| Python | .py |
âś… Firme, type hints, docstring |
| JavaScript/TypeScript | .js, .jsx, .ts, .tsx |
âś… Funzioni, classi, componenti React |
| Markdown | .md, .markdown |
âś… Headers, struttura |
| LaTeX | .tex, .sty, .cls |
âś… Sezioni, comandi |
| JSON | .json |
âś… Struttura dati |
| SQLite | .db, .sqlite |
âś… Schema, tabelle, relazioni |
| Altri | * |
⚠️ Fallback (prime 10 righe) |
Esempi
Esempio 1: Progetto Python Flask
cd my-flask-app
deepbase . --light --focus "app/routes.py" --focus "app/models.py"
Esempio 2: Progetto React
# .deepbase.toml
ignore_dirs = ["node_modules", "build", "dist", "coverage"]
ignore_files = ["package-lock.json", "*.log"]
deepbase . --light
Esempio 3: Analisi database + codice
deepbase . --light --focus "instance/app.db"
Troubleshooting
Il file .deepbase.toml non viene rilevato
Verifica che:
1. Il file sia nella root del progetto da analizzare, non della directory corrente
2. Il nome sia esatto: .deepbase.toml (con il punto iniziale)
3. I permessi siano corretti: ls -la .deepbase.toml
File troppo grande per l'LLM
Usa --light o aumenta gli esclusioni nel TOML.
Contributing
Issue e PR su GitHub.
License
GPL 3