Skip to content

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

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