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! 🎉