Da Cha a Ch
Repository GitHub del progetto
Grande annuncio
Sto mettendo in dismissione Cha e mi sto concentrando su Ch. Il 23 agosto 2025 ho segnato Cha come deprecato e ho indirizzato tutti i futuri sforzi di sviluppo verso Ch. La filosofia ora è semplice: mantenere un solo strumento che sia semplice, leggero e veloce, mantenerlo e correggere i bug. Niente inseguimento delle funzionalità.
Perché ho costruito originariamente Cha
Quando gli LLM e ChatGPT erano nuovi, gli strumenti da CLI che volevo non comparivano mai. ChatGPT è uscito nel novembre 2022 ed è davvero esploso all’inizio del 2023 con il rilascio di GPT-4. Stavo aspettando che emergessero solidi strumenti da riga di comando, ma nessuno funzionava davvero nel modo che volevo. Così ho costruito Cha e l’ho usato ogni giorno. Infatti, nel mio primo post del blog l’ho detto chiaramente: progetti come questo erano comuni, ma nessuno corrispondeva alle mie esigenze, quindi ne scrissi uno mio.
Cha era la mia creatura. Lo usavo ogni giorno e mi piaceva lavorarci. E nell’arco di un anno è cresciuto un po’, accumulando +60 stelle su GitHub. Durante questo periodo, ha aggiunto web scraping, estrazione di trascrizioni da YouTube, generazione di immagini, input su più righe, chat interattiva/non interattiva, input di prompt STT, supporto per tool personalizzati, supporto per varie altre piattaforme oltre alla sola OpenAI, un proprio motore di Answer Search, navigazione avanzata delle directory e modifica dei file, possibilità 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. Ottimo insieme di funzionalità, ma troppa superficie per ciò di cui avevo bisogno giorno per giorno. Questo ha fatto sì che Cha diventasse davvero gonfio. Non aiutava neanche il fatto che fosse scritto in Python, il che introduceva due problemi critici. Uno era la velocità: il solo tempo di caricamento iniziale era ancora di 0,8 secondi e questo dopo aver fatto molta ottimizzazione e ingegnerizzazione per aggirare il lento tempo di importazione iniziale dei pacchetti di Python e l’uso del multi-processing. E Python è molto difficile da installare. Poiché Cha dipendeva da vari strumenti open source di terze parti, era molto complicato da installare. Il mio punto di rottura è stato quando viaggiavo con solo un tablet Android con Termux e semplicemente non funzionava affatto; e riuscire a farlo funzionare anche solo in parte era 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 così ricco di funzionalità. Così facendo, renderà più facile mantenere il progetto come singolo manutentore.
Dopo alcuni mesi passati a lavorare su Ch e a usarlo, ho capito che il futuro di Cha passava attraverso Ch, non attraverso il codice originale di Cha. Avevo speso troppo tempo su Cha, mantenere entrambi i codebase richiedeva troppo tempo come sviluppatore singolo su quei progetti, e Ch faceva il lavoro fondamentale pur essendo molto più leggero, più veloce e più facile da installare. Questo ha reso la decisione chiara…
La riscrittura in Go mi dà avvio rapido, un singolo binario e un modello mentale più piccolo. Il README di Ch lo riassume bene: Ch è il successore con un avvio oltre 10 volte 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 dei bug, con poco interesse ad aggiungere nuove funzionalità a meno che non ne valga la pena e/o non sia critico aggiungerle (qualunque cosa ciò significhi col passare del tempo).
Quali funzionalità include oggi Ch
Ch copre il flusso di lavoro quotidiano senza il peso aggiuntivo:
- Avvio ad alte prestazioni con una CLI leggera scritta in GoLang
- Supporto multi-provider (OpenAI, Groq, DeepSeek, Anthropic, XAI, Together, Gemini, Mistral, Ollama)
- Modalità interattive e dirette, 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 di sessioni shell, integrazione con gli appunti
- Web scraping e ricerca integrati, inclusa la gestione dei link YouTube, in modo semplice e diretto
Cosa manca in Ch rispetto a Cha (e perché)
Ch cerca di mantenere solo le funzionalità essenziali di Cha, ma così facendo ho escluso da Ch le seguenti funzionalità di Cha:
- L’interfaccia avanzata “Editor” e “Answer Search” non verranno portate
- L’ingestione di audio, video e immagini, la conversione voce-testo e testo-voce, e alcune delle altre comodità di esportazione e codedump non sono prioritarie
- Alcuni helper di navigazione e i comportamenti di “change root dir” di Cha non sono in Ch
- I “profili locali con chat salvate” non sono intenzionalmente il percorso predefinito
Molte di queste le ho etichettate come bloat o come “bello averle”. Ciò che consideravo critico era la navigazione web e lo scraping web, che mancavano in Ch ma che da allora ho integrato in Ch, così che 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 chat, consentendoti di usare altri strumenti CLI e salvare il loro output per il modello, se vuoi. Questa funzionalità ti permette di ottenere in Ch molte delle funzionalità originali mancanti di Cha senza che Ch debba fare tutto il lavoro e gonfiarsi. Puoi saperne di più su Ch in questo nuovo post del blog.
Ch/Cha vs Claude Code
Nel luglio 2025, ho scritto un confronto tra Cha e i più recenti strumenti CLI alimentati da IA per spiegare quale valore offre Cha che quegli strumenti non offrivano. Sapendo questo, volevo comunque includere questo nel blog perché Ch, nel suo nucleo, fornisce lo stesso valore e il confronto regge ancora a distanza di mesi, anche dopo questo passaggio. La stessa filosofia si applica a Ch.
Differenze chiave
- L’approccio Ch/Cha enfatizza il controllo totale dell’utente in ogni fase, senza worker IA in background che prendono decisioni autonome. Ottieni una gestione del contesto esplicita e controllata dall’utente, con costi tipicamente compresi tra 1 e 20 dollari al mese per un uso quotidiano attivo. Non ci sono modifiche a sorpresa, tutto è guidato dall’utente, rendendolo ideale per un coinvolgimento profondo e un controllo rigoroso dei costi.
- Le CLI agentiche come Claude Code e Gemini seguono un percorso diverso, con decisioni automatizzate del flusso di lavoro e agenti intelligenti che prendono scelte autonome. Gestiscono il contesto e la gestione dei file tramite IA, con costi tipicamente compresi tra 10 e oltre 200 dollari al mese per livelli di utilizzo simili. Eccellono nelle modifiche autonome del 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 e la delega all’IA
- Velocità rispetto alle considerazioni di costo
Raccomandazione
Non esiste una soluzione miracolosa. Nessuno strumento copre ogni caso. Ch è ottimo per attività quotidiane economiche e controllo preciso. Strumenti agentici come Claude Code o Gemini CLI eccellono per sviluppo complesso con più file, più ambienti, 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 imparare buoni schemi 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, e serve solo come una sorta di riferimento storico. Ch è ora il nuovo Cha. Continuerà a essere mantenuto, migliorato (se necessario) e usato. Resisterò fortemente alla feature creep per Ch. E andando avanti, quando dico/faccio riferimento a Cha mi riferisco a Ch e il vecchio Cha basato su Python sarà indicato come “Cha v0” o “vecchio Cha”. Con questo in mente
Grazie
Se hai seguito il percorso di Cha fin dall’inizio, grazie. Quel progetto mi ha insegnato molto e mi ha spinto verso una versione che si adatta meglio al modo in cui lavoro davvero, risultando anche migliore per la comunità nel suo insieme. Se sei nuovo, inizia a usare Ch e mantienilo semplice!