Skip to content

Fenix46/VibeCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 VibeCLI - Intelligent Code Assistant

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.

πŸš€ Avvio Rapido

1. Installazione

# Clona il repository
git clone <repository-url>
cd VibeCLI

# Installa dipendenze
pip install -r requirements.txt

2. Configurazione (Opzionale)

Per 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

3. Avvio

python agent.py

🧠 Sistema di Intelligenza

🎯 Intent Recognition (95% accuratezza)

L'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

πŸ’¬ Conversazione Naturale

Puoi parlare normalmente con l'agente:

πŸ” Analisi del Codice

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?

πŸ› Bug Fixing

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?

⚑ Performance

User: "migliora la performance"
Agent: πŸ“Š Analisi performance:
       β€’ Bottleneck in search_files() - 2.3s
       β€’ Memory leak in cache_manager
       β€’ Queries DB non ottimizzate
       πŸ”§ Applico ottimizzazioni?

πŸ“š Documentazione

User: "aggiungi documentazione"
Agent: πŸ“ Mancano docstrings per:
       β€’ 12 funzioni pubbliche
       β€’ 3 classi principali
       β€’ README incompleto
       ✍️ Genero documentazione automaticamente?

🎯 Comandi Naturali Supportati

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"

πŸ“‹ Interfaccia e Menu

Menu Principale

╔══════════════════════════════════════╗
β•‘        πŸ› οΈ  VibeCLI MENU              β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 1) Ristampa menu                     β•‘
β•‘ 2) Cambia directory                  β•‘
β•‘ 3) Cambia modello                    β•‘
β•‘ 4) Esci                              β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ Directory: vuoto                     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Workflow Tipico

  1. Scegli opzione 2 β†’ Imposta directory di progetto
  2. L'agente analizza automaticamente il progetto
  3. Inizia a parlare naturalmente!

ModalitΓ  Chat Intelligente

πŸ’¬  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

πŸ› οΈ Strumenti Disponibili

L'agente ha accesso a 27 strumenti organizzati in categorie:

πŸ“ File System (9 strumenti)

  • read_file, write_file, append_file
  • list_dir, copy_file, move_file, delete_file
  • make_dir, file_stat, open_file_range, diff_files

πŸ” Ricerca e Modifica (3 strumenti)

  • grep_search, codebase_search, search_replace

πŸ’» Sviluppo (6 strumenti)

  • format_code, lint_code, compile_code
  • run_tests, run_python, execute_shell

🌳 Git (3 strumenti)

  • git_status, git_diff, git_commit

🐍 Python Environment (2 strumenti)

  • pip_install, manage_venv

πŸ“Š Analisi e Documentazione (3 strumenti)

  • generate_doc, code_metrics, scan_secrets

⚑ Performance Features

  • Ricerca ottimizzata con indexing intelligente
  • Operazioni batch asincrone
  • Memory management per file grandi
  • Caching per operazioni ripetitive

🧠 Intelligenza dell'Agente

Context Understanding

L'agente mantiene il contesto di:

  • Progetto: Struttura, linguaggio, dipendenze
  • Conversazione: Riferimenti precedenti
  • Stato: Modifiche recenti, problemi noti
  • Focus: Area di lavoro corrente

Smart Suggestions

L'agente propone automaticamente:

  • Correzioni per errori trovati
  • Ottimizzazioni per performance
  • Test per codice non coperto
  • Documentazione mancante
  • Refactoring per code smell

Azioni Intelligenti

Automatiche (Sicure):

  • Lettura e analisi file
  • Ricerche nel codice
  • Generazione metriche
  • Scan vulnerabilitΓ 

Con Conferma (Modifiche):

  • Scrittura file
  • Refactoring codice
  • Installazione pacchetti
  • Esecuzione comandi

πŸ”§ Configurazione Avanzata

Settings Personalizzabili

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

Environment Variables

# 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

πŸ’‘ Tips & Tricks

Conversazione Naturale

  • Parla normalmente: "c'Γ¨ qualche problema nel codice?"
  • Usa riferimenti: "miglioralo" (riferito al file precedente)
  • Chiedi suggerimenti: "cosa posso fare per questo progetto?"

Efficienza Massima

  • L'agente ricorda tutto - non ripetere il contesto
  • Usa comandi vaghi - lui capisce dal contesto
  • Accetta le sue proposte - sono basate su analisi reale

Workflow Ottimale

  1. "analizza il progetto" β†’ Overview completo
  2. "ci sono problemi?" β†’ Identificazione issues
  3. "sistemali" β†’ Correzione automatica
  4. "aggiungi test" β†’ Copertura testing
  5. "documenta" β†’ Documentazione completa

πŸ—οΈ Architettura Tecnica

Struttura Progetto

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

Tecnologie

  • AI Model: Gemini 2.0 Flash (via google-genai SDK)
  • 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

πŸ”’ Sicurezza

Protezioni Implementate

  • Conferma esplicita per operazioni distruttive
  • Validation dei percorsi file
  • Sandbox per esecuzione comandi
  • Pattern filtering per comandi pericolosi
  • Memory limits per prevenire exhaustion

Operazioni che richiedono conferma

  • Scrittura/modifica file
  • Esecuzione comandi shell
  • Installazione pacchetti
  • Operazioni Git commit
  • Eliminazione file

πŸŽ‰ Vantaggi vs CLI Tradizionali

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

πŸ› Troubleshooting

Problemi Comuni

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 progetto

Errore permessi directory

  • L'utente deve avere permessi di scrittura sulla directory di lavoro

Performance lenta su progetti grandi

  • Configura MAX_FILE_SIZE e CACHE_ENABLED=true in .env
  • Usa pattern in skip_patterns per 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

πŸš€ Getting Started

Ora hai un vero IDE intelligente da CLI!

Inizia subito:

python agent.py

E 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! πŸŽ‰

About

Another Command line tool with AI agent

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages