
In deel 1 beschreef ik de architectuur van mijn persoonlijke AI-assistent: één Claude-brein op een thuisserver, tools via MCP, en een tier-systeem waarbij de transportlaag — niet het model — bevestiging afdwingt. Dat stuk eindigde met een prompt om er zelf een te bouwen. Dit deel gaat over wat er daarna gebeurde: de assistent kreeg een gezicht, een stem, en een naam. Henk.
Vooraf, voor de duidelijkheid: alle data in de screenshots hieronder is fictieve demo-data, gegenereerd via een mock-backend. Geen echte agenda’s, mails of namen.
Een gezicht — en bewust geen Jarvis
De assistent had front-ends (Telegram, voice), maar geen eigen plek. Die is er nu: een web-console in React/TypeScript van zo’n 60 kB, die op de desktop draait én als app op de telefoon (PWA, via het privé-VPN met een automatisch HTTPS-certificaat). En nee, het werd geen Jarvis-kloon. De naam is Henk. Iets Nederlandsers bestaat niet, en dat is precies het punt.
De stijl: donker grafiet met één koperkleurig accent dat alléén oplicht op wat er nú gebeurt. Daar zitten een paar designprincipes achter die ik graag doorgeef. Geen spinners en geen pop-ups — alle status loopt via de “presence” en de activiteitenregels in het gesprek. Mono-letters alleen voor cijfers. En droge Nederlandse microcopy: als de microfoon niets opvangt zegt Henk “Ik hoorde niets.” Als iets gelukt is: “Geregeld.”
De hele console is in ongeveer twee dagen gebouwd, deels door parallelle AI-subteams — één team op de backend-audio, één op de frontend-voice, tegelijk. Dat klinkt als een grap, maar het is gewoon hoe bouwen er inmiddels uitziet.
Je ziet de agent werken
Het grootste UX-probleem van agents is wachttijd. Een vraag waar tool-gebruik bij komt kijken duurt al snel tien tot vijftien seconden, en een stille interface voelt in die seconden kapot. De oplossing: een streaming-WebSocket op de service die elk tool-event live doorgeeft. In de interface zie je “agenda lezen… 1,2 s — mail doorzoeken… 1,4 s” verschijnen terwijl het gebeurt.
Wachttijd werd theater. Je wacht niet meer óp de assistent; je kijkt hoe hij werkt. Het is hetzelfde wachten, maar het voelt compleet anders.

Spraak, volwaardig
Praten met Henk werkt nu serieus. Hold-to-talk — knop ingedrukt houden, bewust geen open microfoon — met lokale transcriptie op de eigen server (whisper large-v3-turbo) en gesproken antwoorden via een Nederlandse stem. Werkt ook in Telegram: spraakbericht in, spraakbubbel terug.
Twee dingen die je bij het nabouwen kunt overslaan omdat ik ze al ben tegengekomen. Eén: iOS geeft geen microfoontoegang op http — HTTPS via het VPN was de fix. Twee: whisper’s automatische taaldetectie verprutst korte Nederlandse zinnen; de taal hard op NL forceren bleek cruciaal.
Leukste productie-detail: de stem is gekozen via een blinde vergelijking van twaalf Nederlandse stemmen — voorgelezen door de assistent zelf.
Een 3D-aanwezigheid uit een AI-pipeline
De “presence” — het element dat toont of Henk luistert, denkt of spreekt — is een 3D-sculptuur. Gegenereerd met Meshy (text-to-3D), nabewerkt (de sokkel op triangle-niveau weggesneden) en gerenderd met een eigen shader: mat keramiek met een koperen gloed die meebeweegt met je stem. Op trage hardware valt hij automatisch terug op een 2D-variant.
Is dat nodig? Nee. Maar een assistent waar je tegen práát heeft iets nodig dat terugkijkt, en een pulserende bol uit een text-to-3D-model is anno 2026 een middag werk.
De knop die ertoe doet
Het tier-systeem uit deel 1 geldt onverkort op het nieuwe kanaal. De console kan pas mail versturen of afspraken aanmaken na een expliciete bevestigingskaart — en die bevestiging wordt door de server-transportlaag afgedwongen, niet door het model. Een kwaadwillende instructie verstopt in een e-mail kan de knop niet omzeilen; dat is opnieuw getest op dit kanaal.

Daarnaast: het maandbudget is nu een zichtbare meter in de interface, met de circuit-breaker uit deel 1 erachter. En er is een hardening-ronde gedaan langs tien edge-cases — verbinding weg terwijl er een voorstel openstaat, verlopen sessies, dat soort werk. Het aantal geautomatiseerde tests staat inmiddels op 104 backend en 52 frontend.

En hij kan nu ook máken
Nieuwste toevoeging: beeldgeneratie als tool (fal.ai/FLUX). “Maak een header-beeld voor m’n blogpost” levert een afbeelding op die automatisch in de kennisvault belandt — met een eerlijke kostenmelding erbij (zo’n 3 cent). De assistent die eerst alleen wist en regelde, maakt nu ook.
Voor wie de kosten-vraag al voelde aankomen: alles draait thuis op een Mac mini, en de maandkosten van het AI-brein zitten rond de tientjes. Niet honderden euro’s.
Wat er nog komt
Twee dingen staan op de rol: latency-tuning (die tien tot vijftien seconden mogen korter) en de koppeling met de voice-desktop-app, zodat de push-to-talk-laag uit deel 1 en de console één geheel worden.
Deel 1 met de volledige architectuur en de bouw-prompt vind je hier. En wil je hierover sparren, of Henk een keer zien werken: koffie in Bladel werkt het best. Hoe ik AI breder inzet lees je op over AI.