Un IDE intelligente da CLI! VibeCLI Γ¨ un assistente AI avanzato per sviluppo software con interfaccia a riga di comando, basato su Gemini 2.0 Flash con sistema di intelligenza conversazionale.
# Clona il repository
git clone <repository-url>
cd VibeCLI
# Installa dipendenze
pip install -r requirements.txtPer funzionalitΓ AI avanzate, configura la chiave API in .env:
GEMINI_API_KEY=your_api_key_hereπ‘ Senza API key, l'agente funziona ugualmente con:
- β Analisi locale del codice
- β Intent recognition
- β Smart suggestions
- β Tool execution
python agent.pyL'agente capisce automaticamente cosa vuoi fare:
- Code Analysis β Analisi semantica del codice
- Bug Fixing β Ricerca e correzione errori
- Performance β Ottimizzazioni e profiling
- Security β Audit e vulnerability scan
- Testing β Creazione ed esecuzione test
- Documentation β Generazione documentazione
- Refactoring β Miglioramento struttura codice
Puoi parlare normalmente con l'agente:
User: "analizza tutto il codice presente nella cartella"
Agent: π§ Ho analizzato 25 file Python. Rilevo:
β’ 15 funzioni con alta complessitΓ
β’ Mancano test per UserAuth.py
β’ 3 vulnerabilitΓ di sicurezza
π‘ Vuoi che sistemi i problemi piΓΉ critici?
User: "c'Γ¨ un errore nel codice"
Agent: π§ Ho trovato 3 problemi:
β’ SyntaxError in utils.py linea 42
β’ Import mancante in models.py
β’ Test falliti in test_auth.py
β‘ Correggo automaticamente?
User: "migliora la performance"
Agent: π Analisi performance:
β’ Bottleneck in search_files() - 2.3s
β’ Memory leak in cache_manager
β’ Queries DB non ottimizzate
π§ Applico ottimizzazioni?
User: "aggiungi documentazione"
Agent: π Mancano docstrings per:
β’ 12 funzioni pubbliche
β’ 3 classi principali
β’ README incompleto
βοΈ Genero documentazione automaticamente?
Analisi:
- "analizza il progetto"
- "cosa fa questo codice?"
- "controlla la qualitΓ del codice"
- "cerca errori"
- "mostrami le metriche"
Modifica:
- "migliora questo file"
- "refactor del codice"
- "sistemata i problemi"
- "ottimizza la performance"
- "pulisci il codice"
Testing:
- "crea test per questa funzione"
- "esegui tutti i test"
- "controlla la copertura"
- "verifica che funzioni"
Sicurezza:
- "controlla vulnerabilitΓ "
- "audit di sicurezza"
- "scansiona dipendenze"
- "check di sicurezza"
Progetto:
- "setup del progetto"
- "installa dipendenze"
- "configura ambiente"
- "inizializza git"
ββββββββββββββββββββββββββββββββββββββββ
β π οΈ VibeCLI MENU β
ββββββββββββββββββββββββββββββββββββββββ’
β 1) Ristampa menu β
β 2) Cambia directory β
β 3) Cambia modello β
β 4) Esci β
ββββββββββββββββββββββββββββββββββββββββ’
β Directory: vuoto β
ββββββββββββββββββββββββββββββββββββββββ
- Scegli opzione 2 β Imposta directory di progetto
- L'agente analizza automaticamente il progetto
- Inizia a parlare naturalmente!
π¬ Scrivi cosa vuoi fare (digita 'menu' per tornare al menu) βΊ
π€ _
- L'agente comprende il contesto del progetto
- Mantiene memoria della conversazione
- Suggerisce azioni proattive
- Esegue tools mirati automaticamente
L'agente ha accesso a 27 strumenti organizzati in categorie:
read_file,write_file,append_filelist_dir,copy_file,move_file,delete_filemake_dir,file_stat,open_file_range,diff_files
grep_search,codebase_search,search_replace
format_code,lint_code,compile_coderun_tests,run_python,execute_shell
git_status,git_diff,git_commit
pip_install,manage_venv
generate_doc,code_metrics,scan_secrets
- Ricerca ottimizzata con indexing intelligente
- Operazioni batch asincrone
- Memory management per file grandi
- Caching per operazioni ripetitive
L'agente mantiene il contesto di:
- Progetto: Struttura, linguaggio, dipendenze
- Conversazione: Riferimenti precedenti
- Stato: Modifiche recenti, problemi noti
- Focus: Area di lavoro corrente
L'agente propone automaticamente:
- Correzioni per errori trovati
- Ottimizzazioni per performance
- Test per codice non coperto
- Documentazione mancante
- Refactoring per code smell
Automatiche (Sicure):
- Lettura e analisi file
- Ricerche nel codice
- Generazione metriche
- Scan vulnerabilitΓ
Con Conferma (Modifiche):
- Scrittura file
- Refactoring codice
- Installazione pacchetti
- Esecuzione comandi
Modifica config/settings.py per:
# Performance
max_file_size = 10_000_000
max_search_results = 50
shell_timeout = 30
# Cache
cache_enabled = True
cache_ttl_seconds = 300
# UI
use_colors = True
progress_bars = True
menu_style = "default"
# Tools
skip_patterns = [".git", "__pycache__", "node_modules"]
dangerous_commands_protection = True# API Configuration
GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-2.0-flash-001
API_TIMEOUT=30
# Performance
MAX_FILE_SIZE=10000000
CACHE_ENABLED=true
USE_COLORS=true- Parla normalmente: "c'Γ¨ qualche problema nel codice?"
- Usa riferimenti: "miglioralo" (riferito al file precedente)
- Chiedi suggerimenti: "cosa posso fare per questo progetto?"
- L'agente ricorda tutto - non ripetere il contesto
- Usa comandi vaghi - lui capisce dal contesto
- Accetta le sue proposte - sono basate su analisi reale
- "analizza il progetto" β Overview completo
- "ci sono problemi?" β Identificazione issues
- "sistemali" β Correzione automatica
- "aggiungi test" β Copertura testing
- "documenta" β Documentazione completa
VibeCLI/
βββ agent.py # Entry point e menu system
βββ models.py # Gemini API client
βββ utils.py # Utility functions
βββ requirements.txt # Dependencies
βββ config/ # Configuration management
β βββ __init__.py
β βββ settings.py
βββ intelligence/ # AI Intelligence system
β βββ __init__.py
β βββ conversation_engine.py
β βββ intent_classifier.py
β βββ context_manager.py
β βββ code_analyzer.py
βββ tools/ # Modular tool system
β βββ __init__.py
β βββ base.py
β βββ filesystem.py
β βββ development.py
β βββ git.py
β βββ python_env.py
β βββ analysis.py
βββ performance/ # Performance optimizations
β βββ __init__.py
β βββ search_optimizer.py
β βββ async_batch.py
β βββ memory_manager.py
βββ prompts/ # System prompts
βββ general_system_prompt.txt
- AI Model: Gemini 2.0 Flash (via
google-genaiSDK) - UI: Rich library per interfaccia colorata
- Async: Supporto asincrono per operazioni parallele
- Config: Pydantic per configurazione type-safe
- Performance: Ottimizzazioni memory e ricerca
- Tools: Black, Pytest, Bandit per qualitΓ codice
- Conferma esplicita per operazioni distruttive
- Validation dei percorsi file
- Sandbox per esecuzione comandi
- Pattern filtering per comandi pericolosi
- Memory limits per prevenire exhaustion
- Scrittura/modifica file
- Esecuzione comandi shell
- Installazione pacchetti
- Operazioni Git commit
- Eliminazione file
| CLI Tradizionale | VibeCLI Intelligent |
|---|---|
| β Comandi specifici | β Linguaggio naturale |
| β Tool isolati | β Conversazione fluida |
| β No contesto | β Comprensione progetto |
| β Reattivo | β Proattivo con suggerimenti |
| β No memoria | β Context memory completo |
| β Manuale | β Automazione intelligente |
Errore "GEMINI_API_KEY non trovata"
# Imposta la variabile d'ambiente
export GEMINI_API_KEY="your-api-key-here"
# O crea file .env nella root del progettoErrore permessi directory
- L'utente deve avere permessi di scrittura sulla directory di lavoro
Performance lenta su progetti grandi
- Configura
MAX_FILE_SIZEeCACHE_ENABLED=truein.env - Usa pattern in
skip_patternsper escludere directory grandi
Intent classification imprecisa
- Usa frasi piΓΉ specifiche
- Includi il nome del file o della funzione
- L'agente impara dal contesto del progetto
Ora hai un vero IDE intelligente da CLI!
Inizia subito:
python agent.pyE prova questi comandi:
- "analizza tutto il codice"
- "ci sono errori da sistemare?"
- "migliora la performance"
- "aggiungi documentazione"
- "crea test per questo codice"
L'agente capirΓ cosa vuoi fare e ti guiderΓ attraverso il processo! π