<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI on Eddy de Vink</title><link>https://www.eddydevink.nl/tags/ai/</link><description>Recent content in AI on Eddy de Vink</description><generator>Hugo</generator><language>nl-nl</language><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.eddydevink.nl/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>AI-agent heeft eigen Obsidian-client: headless vault synchronisatie met CouchDB LiveSync</title><link>https://www.eddydevink.nl/blogs/ai-agent-obsidian-client-couchdb/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://www.eddydevink.nl/blogs/ai-agent-obsidian-client-couchdb/</guid><description>&lt;p&gt;In mijn &lt;a href="https://www.eddydevink.nl/blogs/self-hosted-obsidian-sync-met-couchdb/"&gt;vorige artikel&lt;/a&gt; beschreef ik hoe ik Obsidian LiveSync heb opgezet met self-hosted CouchDB. Daar noemde ik al kort dat een AI-agent het client-side installatieproces kan automatiseren. Maar toen was er nog een fundamenteel probleem: hoe krijgt die AI-agent zelf toegang tot de vault?&lt;/p&gt;
&lt;p&gt;Dit artikel gaat over de volgende stap: een headless CLI die rechtstreeks met CouchDB praat, precies zoals de LiveSync plugin, waardoor AI-agents (OpenCode, Claude Code, etc.) notities kunnen lezen, schrijven en bewerken — en die wijzigingen via LiveSync naar al mijn apparaten synchroniseren.&lt;/p&gt;</description></item><item><title>Self-Hosted Obsidian Sync met CouchDB op Fedora 44</title><link>https://www.eddydevink.nl/blogs/self-hosted-obsidian-sync-met-couchdb/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://www.eddydevink.nl/blogs/self-hosted-obsidian-sync-met-couchdb/</guid><description>&lt;p&gt;Obsidian is een krachtige tool voor persoonlijke kennisbeheer, maar de officiële Obsidian Sync kost geld — €5/maand per gebruiker. Voor een paar euro aan serverkosten kun je hetzelfde bereiken met self-hosted CouchDB en de &lt;a href="https://github.com/vrtmrz/obsidian-livesync"&gt;Self-hosted LiveSync&lt;/a&gt; plugin, mét als voordeel dat je volledige controle houdt over je data.&lt;/p&gt;
&lt;p&gt;Dit artikel beschrijft hoe ik dit heb opgezet op mijn Fedora 44 server met SELinux enforcing, Docker, en Tailscale — en hoe een AI-agent (zoals die waarmee dit artikel is geschreven) het client-side deel kan automatiseren.&lt;/p&gt;</description></item><item><title>Deze Blog is Gebouwd met Hugo en DeepSeek</title><link>https://www.eddydevink.nl/blogs/gebouwd-met-hugo-en-deepseek/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://www.eddydevink.nl/blogs/gebouwd-met-hugo-en-deepseek/</guid><description>&lt;p&gt;Deze blog die je nu leest is volledig gebouwd met hulp van een AI assistent — specifiek DeepSeek v4 Pro, draaiend via OpenCode. Geen externe API&amp;rsquo;s, geen ChatGPT, geen Copilot. Gewoon een lokaal model dat code schrijft, templates bouwt, en content genereert. Dit is hoe dat ging.&lt;/p&gt;
&lt;h2 id="de-stack"&gt;De stack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hugo&lt;/strong&gt; — statische site generator, geschreven in Go. Supersnel, geen database, geen runtime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS v3&lt;/strong&gt; — utility-first CSS framework. Native geïntegreerd via Hugo&amp;rsquo;s &lt;code&gt;css.TailwindCSS&lt;/code&gt; pipe (geen PostCSS CLI nodig).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek v4 Pro&lt;/strong&gt; — het model dat de code schreef, templates bouwde en content herschreef.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="het-proces"&gt;Het proces&lt;/h2&gt;
&lt;p&gt;Ik begon met een half-af Hugo project. Een corporate &amp;ldquo;AI-factories&amp;rdquo; theme met drie generieke blogposts en een hoop template duplicatie. De opdracht aan DeepSeek was simpel:&lt;/p&gt;</description></item><item><title>Lokale LLMs Draaien: DeepSeek op een Mac Mini</title><link>https://www.eddydevink.nl/blogs/ai-innovatie/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://www.eddydevink.nl/blogs/ai-innovatie/</guid><description>&lt;p&gt;Sinds een paar maanden draai ik lokale LLMs op mijn Mac Mini M4. Dit is waarom, hoe, en wat het oplevert.&lt;/p&gt;
&lt;h2 id="waarom-lokaal"&gt;Waarom lokaal?&lt;/h2&gt;
&lt;p&gt;Drie redenen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Privacy&lt;/strong&gt; — mijn prompts en data gaan niet naar OpenAI of Anthropic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kosten&lt;/strong&gt; — geen API credits, geen abonnement&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beschikbaarheid&lt;/strong&gt; — geen rate limits, geen downtime van derden&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Een Mac Mini M4 met 16GB RAM draait verrassend veel modellen. Het M4 neurale engine helpt, maar het echte werk gebeurt op de GPU cores via Metal.&lt;/p&gt;</description></item><item><title>WhatsApp MCP Server</title><link>https://www.eddydevink.nl/projects/whatsapp-mcp/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://www.eddydevink.nl/projects/whatsapp-mcp/</guid><description>&lt;p&gt;Een MCP server gebouwd met Python die AI agents (zoals Claude, OpenCode) in staat stelt om WhatsApp berichten te versturen, gesprekken te lezen en media te downloaden.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Berichten versturen naar individuen en groepen&lt;/li&gt;
&lt;li&gt;Chat geschiedenis ophalen en doorzoeken&lt;/li&gt;
&lt;li&gt;Media (foto&amp;rsquo;s, documenten) downloaden vanuit chats&lt;/li&gt;
&lt;li&gt;Automatische reconnect bij verbindingsverlies&lt;/li&gt;
&lt;li&gt;WhatsApp Web sessie persistentie&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tech-stack"&gt;Tech stack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; — asyncio voor non-blocking I/O&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;whatsapp-web.js via subprocess&lt;/strong&gt; — WebSocket bridge&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP Protocol&lt;/strong&gt; — JSON-RPC via stdio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt; — containerized deployment&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>