Da Cha a Ch

Repository GitHub del progetto

Grande Annuncio

Sto dismettendo Cha e concentrandomi su Ch. Il 23 agosto 2025 ho contrassegnato Cha come deprecato e indirizzato tutti gli sforzi di sviluppo futuri verso Ch. La filosofia ora è semplice: mantenere uno strumento che sia semplice, leggero e veloce, mantenerlo e correggere i bug. Niente rincorsa alle funzionalità.

Perché ho creato Cha

Quando gli LLM e ChatGPT erano nuovi, gli strumenti da riga di comando che volevo non sono mai arrivati. ChatGPT è uscito a novembre 2022 ed è veramente esploso all’inizio del 2023 con il rilascio di GPT-4. Stavo aspettando che apparissero solidi strumenti da riga di comando, ma nessuno di essi funzionava davvero come volevo. Quindi ho creato Cha e l’ho usato quotidianamente. Infatti, nel mio primo post del blog l’ho detto chiaramente: progetti come questo erano comuni, ma nessuno soddisfaceva le mie esigenze, quindi ne ho scritto uno mio.

Cha è stato il mio bambino. L’ho usato giornalmente e mi è piaciuto lavorarci. E nell’arco di un anno, è cresciuto un po’ raggiungendo +60 stelle su GitHub. Durante questo periodo, ha acquisito web scraping, estrazione di trascrizioni YouTube, generazione di immagini, input multilinea, chat sia interattiva che non interattiva, input di prompt STT, supporto per tool personalizzati, supporto per varie altre piattaforme oltre a OpenAI, il proprio motore di Answer Search, navigazione avanzata delle directory e modifica dei file, capacità di copiare contenuti negli appunti, TTS per le risposte, ecc. Faceva molte cose, funzionava ed era davvero utile e potente come strumento da riga di comando.

Perché migrare a Ch (da Python a Go)

Col tempo Cha è diventato pesante. Ottima serie di funzionalità, ma troppa superficie per ciò di cui avevo bisogno quotidianamente. Questo ha fatto sì che Cha diventasse davvero ingombrante. Non ha aiutato il fatto che fosse scritto in Python, il che ha introdotto due problemi critici. Uno era la velocità, solo il tempo di caricamento iniziale richiedeva ancora 0,8 secondi ed era dopo aver fatto molta ottimizzazione e ingegneria per aggirare il lento tempo di importazione dei pacchetti di Python e l’uso del multiprocessing. E Python è molto difficile da installare. A causa della dipendenza di Cha da vari strumenti open-source di terze parti, era molto complicato installarlo. Il mio punto di rottura è stato quando stavo viaggiando con solo un tablet Android che eseguiva iTermux e semplicemente non funzionava affatto e farlo funzionare anche solo in parte è stato molto doloroso e inutile.

Quindi ho deciso di iniziare un nuovo esperimento chiamato Ch. Ch sarebbe stato come Cha MA scritto in GoLang invece che in Python e contenente SOLO le funzionalità essenziali di Cha con l’idea di essere leggero, veloce, facile da installare sulla maggior parte dei sistemi e non essere così ricco di funzionalità. Facendo così, sarebbe stato più facile mantenere il progetto come manutentore singolo.

Dopo alcuni mesi di lavoro su Ch e di utilizzo, ho visto che il futuro di Cha passava per Ch e non per la code-base originale di Cha. Avevo passato troppo tempo su Cha, mantenere entrambi i codebase richiedeva tempo come singolo sviluppatore su quei progetti, e Ch svolgeva il lavoro principale essendo molto più leggero, più veloce e più facile da installare. Questo ha reso la decisione chiara…

La riscrittura in Go mi offre avvio rapido, un singolo binario e un modello mentale più piccolo. Il README di Ch lo riassume bene: Ch è il successore con oltre 10x avvio più veloce e prestazioni significativamente migliori.

La decisione

Ho ufficialmente deprecato Cha il 23 agosto 2025 e ho indirizzato le persone verso Ch tramite il README di Cha. Il repository di Cha rimane come riferimento storico e sto mantenendo Ch in modalità manutenzione con un focus su stabilità e correzione di bug, con scarso interesse ad aggiungere nuove funzionalità a meno che non ne valga la pena e/o sia critico aggiungerle (qualunque cosa ciò possa significare col passare del tempo).

Quali funzionalità Ch include oggi

Ch copre il flusso di lavoro quotidiano senza l’ingombro:

  • Avvio ad alte prestazioni con una CLI leggera scritta in GoLang
  • Supporto multi-provider (OpenAI, Groq, DeepSeek, Anthropic, XAI, Together, Gemini, Mistral, Ollama)
  • Modalità interattiva e diretta, piping da qualsiasi comando, caricamento di file e directory, conteggio dei token, esportazione di blocchi di codice, visualizzatore della cronologia chat, cambio modello/piattaforma, backtracking, dump di codice, registrazione della sessione shell, integrazione con gli appunti
  • Web scraping e ricerca integrati, incluso il trattamento di link YouTube, integrati in modo semplice

Cosa manca in Ch rispetto a Cha (e perché)

Ch cerca di mantenere solo le funzionalità essenziali di Cha ma, facendo ciò, ho tagliato le seguenti funzionalità di Cha da Ch:

  • L’interfaccia avanzata “Editor” e “Answer Search” non verranno portate
  • L’ingestione di audio, video e immagini, la voce in testo e il testo in voce, e alcune delle extra opzioni di esportazione e le comodità del codedump non sono priorità
  • Alcuni helper di navigazione e i comportamenti di “cambia directory root” di Cha non sono in Ch
  • I profili locali con chat salvate non sono intenzionalmente il percorso predefinito

Ho etichettato molte di queste cose come gonfiore o “carine da avere”. Ciò che ho considerato critico era il web browsing e il web scraping, che mancava in Ch ma che ho poi integrato in Ch così il ciclo principale è completo senza il resto. Non solo, ma Ch ha una nuova funzionalità chiamata !x che registra una sessione shell mentre sei ancora in una sessione Ch e la aggiunge alla cronologia della chat, permettendoti di usare altri strumenti da CLI e salvare il loro output per il modello se vuoi. Questa funzionalità ti permette di ottenere molte delle funzionalità originariamente mancanti in Cha dentro Ch senza che Ch debba fare tutto il lavoro e diventare ingombrante. Puoi saperne di più su Ch in questo nuovo blog post.

Ch/Cha contro Claude Code

A luglio 2025, ho scritto un confronto di Cha con gli ultimi strumenti CLI potenziati dall’IA per spiegare quale valore Cha offre che quegli strumenti non offrivano. Sapendo questo, volevo comunque includerlo in questo blog perché Ch, nella sua essenza, fornisce lo stesso valore e il confronto regge ancora mesi dopo anche dopo questo passaggio. La stessa filosofia si applica a Ch.

Differenze chiave

  • L’approccio Ch/Cha enfatizza il controllo totale dell’utente a ogni passaggio senza lavoratori IA in background che prendono decisioni autonome. Ottieni una gestione del contesto esplicita e controllata dall’utente con costi che solitamente vanno da $1 a $20 al mese per un uso giornaliero attivo. Non ci sono modifiche a sorpresa, tutto è guidato dall’utente, rendendolo ideale per un coinvolgimento profondo e un controllo stretto dei costi.
  • Le CLI agentiche come Claude Code e Gemini seguono un percorso diverso con decisioni di flusso di lavoro automatizzate e agenti intelligenti che prendono scelte autonome. Gestiscono il contesto e la gestione dei file gestiti dall’IA con costi che tipicamente vanno da $10 a $200+ al mese per livelli di utilizzo simili. Eccellono nelle modifiche autonome al codice, rendendole perfette per prototipazione rapida e delega.

Quando scegliere lo stile Ch/Cha

  • Costo minimo con piena trasparenza
  • Controllo completo su ogni interazione
  • Coinvolgimento profondo nel tuo processo di sviluppo
  • Gestione esplicita del contesto per progetti sensibili

Quando scegliere strumenti agentici

  • Prototipazione rapida e iterazione veloce
  • Preferenza per l’automazione IA e la delega
  • Velocità rispetto alle considerazioni di costo

Raccomandazione

Non esiste una soluzione unica. Nessuno strumento copre ogni caso. Ch è ottimo per attività quotidiane economiche e controllo preciso. Gli strumenti agentici come Claude Code o Gemini CLI brillano per codifica complessa, multi-file e multi-ambiente con un focus su velocità e automazione. Usa Ch quando vuoi ridurre i costi e mantenere il controllo. Usa strumenti agentici quando hai bisogno di iterazione rapida e non ti dispiace delegare il controllo. Molte persone iniziano con Ch per apprendere buone modalità di interazione, poi aggiungono strumenti agentici man mano che le esigenze evolvono.

Il futuro di Cha e Ch

Il futuro di Cha e Ch è questo. Cha è deprecato e archiviato, servendo solo come una sorta di riferimento storico. Ch è ora il nuovo Cha. Continuerà a essere manutenuto, migliorato (se necessario) e utilizzato. Mi opporrò fortemente al feature creep per Ch. E andando avanti, quando dico/mi riferisco a Cha intendo Ch e la vecchia Cha basata su python sarà indicata come “Cha v0” o “old Cha”. Detto questo

Grazie

Se hai seguito il percorso di Cha dall’inizio, grazie. Quel progetto mi ha insegnato molto e mi ha spinto verso una versione che si adatta meglio a come lavoro veramente pur essendo anche migliore per la comunità nel suo insieme. Se sei nuovo, inizia a usare Ch e mantienilo semplice!