Van Cha naar Ch
Grote aankondiging
Ik zet Cha geleidelijk buiten gebruik en focus op Ch. Op 23 augustus 2025 heb ik Cha als verouderd gemarkeerd en alle toekomstige ontwikkelingsinspanningen naar Ch verlegd. De filosofie is nu eenvoudig: houd één tool die eenvoudig, licht en snel is, onderhoud die en los bugs op. Geen functie-achtervolging.
Waarom ik Cha oorspronkelijk heb gebouwd
Toen LLM’s en ChatGPT nieuw waren, verschenen de CLI-tools die ik wilde nooit. ChatGPT kwam uit in november 2022 en kwam echt op gang begin 2023 met de release van GPT-4. Ik wachtte erop dat er solide command-line-tools zouden verschijnen, maar geen ervan werkte echt zoals ik wilde. Dus bouwde ik Cha en gebruikte ik het dagelijks. Sterker nog, in mijn eerste blogpost zei ik het ronduit: projecten zoals deze kwamen vaak voor, maar geen enkele kwam overeen met mijn behoeften, dus schreef ik mijn eigen.
Cha was mijn kind. Ik gebruikte het dagelijks en werkte er graag aan. En binnen een jaar groeide het een beetje door +60 sterren op GitHub te verzamelen. In deze periode kreeg het webscraping, het ophalen van YouTube-transcripten, beeldgeneratie, meerregelige invoer, zowel interactieve/niet-interactieve chat, STT-promptinvoer, ondersteuning voor aangepaste toolings, ondersteuning voor diverse andere platforms buiten alleen OpenAI, zijn eigen Answer Search-engine, geavanceerde mapnavigatie en bestandsbewerking, de mogelijkheid om inhoud naar het klembord te kopiëren, TTS voor antwoorden, enz. Het deed veel, het werkte, en het was echt nuttig en krachtig als command-line-tool.
Waarom migreren naar Ch (Python naar Go)
In de loop van de tijd werd Cha zwaar. Geweldige functieverzameling, maar te veel oppervlakte voor wat ik dagelijks nodig had. Hierdoor werd Cha echt opgeblazen. Het hielp ook niet dat het in Python was geschreven, wat twee kritieke problemen met zich meebracht. Eén daarvan was snelheid: alleen al de initiële laadtijd duurde nog steeds 0,8 seconden, en dat was na veel optimalisatie en techniek om de trage initiële pakketimporttijd van Python en het gebruik van multi-processing te omzeilen. En Python is erg moeilijk te installeren. Omdat Cha afhankelijk was van verschillende open-source tools van derden, was het erg lastig te installeren. Mijn breekpunt was toen ik reisde met alleen een Android tablet waarop iTermux draaide en het gewoon helemaal niet werkte, en het zover werkend krijgen was erg pijnlijk en zinloos.
Dus besloot ik een nieuw experiment te starten genaamd Ch. Ch zou net als Cha zijn MAAR geschreven in GoLang in plaats van Python en ALLEEN de essentiële functies van Cha bevatten, met het idee licht, snel, gemakkelijk te installeren op de meeste systemen en minder functiezwaar te zijn. Door dat te doen, wordt het gemakkelijker om het project als solo-onderhouder te onderhouden.
Na een paar maanden aan Ch gewerkt en het gebruikt te hebben, zag ik dat de toekomst van Cha via Ch liep en niet via de originele Cha-codebase. Ik had veel te veel tijd in Cha gestoken, het onderhouden van beide codebases kostte veel tijd als alleenstaande ontwikkelaar aan die projecten, en Ch deed het kernwerk terwijl het veel lichter, sneller en gemakkelijker te installeren was. Dat maakte de beslissing duidelijk…
De Go-herschrijving geeft me snelle opstart, een enkel binair bestand en een kleiner mentaal model. De Ch README vat het goed samen: Ch is de opvolger met een meer dan 10x snellere opstart en aanzienlijk betere prestaties.
De beslissing
Ik heb Cha officieel verouderd verklaard op 23 augustus 2025 en mensen via Cha’s README naar Ch verwezen. De Cha-repo blijft bestaan als historische referentie en ik houd Ch in onderhoudsmodus met een focus op stabiliteit en bugfixes, met weinig interesse om nieuwe functies toe te voegen, tenzij het de moeite waard en/of kritisch is om toe te voegen (wat dat na verloop van tijd ook moge betekenen).
Welke functies Ch vandaag bevat
Ch dekt de dagelijkse workflow zonder de ballast:
- Hoge-prestatieopstart met een lichte CLI geschreven in GoLang
- Ondersteuning voor meerdere providers (OpenAI, Groq, DeepSeek, Anthropic, XAI, Together, Gemini, Mistral, Ollama)
- Interactieve en directe modi, piping vanuit elk commando, laden van bestanden en mappen, token tellen, export van codeblokken, chatgeschiedenisviewer, wisselen van model/platform, teruggaan, codedumps, registratie van shell-sessies, klembordintegratie
- Ingebouwde webscraping en zoeken, inclusief verwerking van YouTube-links, op een eenvoudige manier geïntegreerd
Wat ontbreekt in Ch vergeleken met Cha (en waarom)
Ch probeert alleen de essentiële functies van Cha te behouden, maar daarbij heb ik de volgende Cha-functies uit Ch weggelaten:
- De geavanceerde “Editor”-UI en “Answer Search” komen niet mee
- Audio-, video- en beeldinvoer, spraak-naar-tekst en tekst-naar-spraak, en enkele van de extra export- en codedump-gemakken hebben geen prioriteit
- Sommige navigatiehulpmiddelen en gedragingen voor “change root dir” uit Cha zitten niet in Ch
- Lokale “profielen met opgeslagen chats” zijn opzettelijk niet het standaardpad
Ik labelde veel hiervan als ofwel ballast of “leuk om te hebben”. Wat ik kritisch vond, was webbrowsen en webscraping, wat ontbrak in Ch, maar sindsdien heb ik het in Ch geïntegreerd zodat de kernlus compleet is zonder de rest. Niet alleen dat, maar Ch heeft een nieuwe functie genaamd !x die een shell-sessie vastlegt terwijl je nog in een Ch-sessie zit en die aan de chatgeschiedenis toevoegt, zodat je andere CLI-tools kunt gebruiken en hun uitvoer voor het model kunt opslaan als je dat wilt. Deze functie stelt je in staat om veel van de oorspronkelijk ontbrekende functies in Cha in Ch te krijgen zonder dat Ch al het werk doet en opgeblazen raakt. Je kunt meer leren over Ch in deze nieuwe blog post.
Ch/Cha versus Claude Code
In juli 2025 schreef ik een vergelijking van Cha met de nieuwste AI-aangedreven CLI-tools om uit te leggen welke waarde Cha biedt die die tools niet boden. Dit wetende, wilde ik dit toch in deze blog opnemen omdat Ch, in de kern, dezelfde waarde biedt en de vergelijking maanden later nog steeds standhoudt, zelfs na deze overstap. Dezelfde filosofie geldt voor Ch.
Belangrijkste verschillen
- De Ch/Cha-aanpak legt de nadruk op totale gebruikerscontrole bij elke stap, zonder achtergrond-AI-werkers die autonome beslissingen nemen. Je krijgt expliciet, door de gebruiker beheerd contextbeheer met kosten die doorgaans variëren van $1 tot $20 per maand voor dagelijks actief gebruik. Er zijn geen verrassende bewerkingen, alles wordt door de gebruiker gestuurd, waardoor het ideaal is voor diepe betrokkenheid en strakke kostencontrole.
- Agentische CLI’s zoals Claude Code en Gemini nemen een ander pad met geautomatiseerde workflowbeslissingen en slimme agenten die autonome keuzes maken. Ze hanteren door AI beheerd context- en bestandsbeheer met kosten die doorgaans variëren van $10 tot $200+ per maand voor vergelijkbare gebruiksniveaus. Ze blinken uit in autonome codewijzigingen, waardoor ze perfect zijn voor snelle prototyping en delegatie.
Wanneer de Ch/Cha-stijl kiezen
- Minimale kosten met volledige transparantie
- Volledige controle over elke interactie
- Diepe betrokkenheid bij je ontwikkelproces
- Expliciet contextbeheer voor gevoelige projecten
Wanneer agentische tools kiezen
- Snelle prototyping en snelle iteratie
- Voorkeur voor AI-automatisering en delegatie
- Snelheid boven kostenoverwegingen
Aanbeveling
Er is geen wondermiddel. Geen enkele tool dekt elk geval. Ch is geweldig voor kosteneffectieve dagelijkse taken en nauwkeurige controle. Agentische tools zoals Claude Code of Gemini CLI blinken uit in complexe, meerbestands-, multi-omgeving-codering met een focus op snelheid en automatisering. Gebruik Ch wanneer je kosten wilt verlagen en controle wilt behouden. Gebruik agentische tools wanneer je snelle iteratie nodig hebt en het niet erg vindt om controle te delegeren. Veel mensen beginnen met Ch om goede interactiepatronen te leren, en voegen daarna agentische tools toe naarmate de behoeften evolueren.
De toekomst van Cha en Ch
De toekomst van Cha en Ch is dit. Cha is verouderd en gearchiveerd, en dient slechts als een soort historische referentie. Ch is nu de nieuwe Cha. Het zal blijven worden onderhouden, verbeterd (indien nodig) en gebruikt. Ik ga me sterk verzetten tegen functie-uitbreiding voor Ch. En vanaf nu, wanneer ik Cha zeg/verwijs naar Cha, verwijs ik naar Ch en zal de oude op Python gebaseerde Cha worden aangeduid als “Cha v0” of “oude Cha”. Met dat in gedachten
Dank je wel
Als je de Cha-reis vanaf het begin hebt gevolgd, dank je wel. Dat project heeft me veel geleerd en me naar een versie geduwd die beter past bij hoe ik echt werk, terwijl het ook beter is voor de gemeenschap als geheel. Als je nieuw bent, begin dan Ch te gebruiken en houd het eenvoudig!