{"id":357,"date":"2026-02-12T07:24:25","date_gmt":"2026-02-12T05:24:25","guid":{"rendered":"https:\/\/vittrup-graversen.dk\/?p=357"},"modified":"2026-03-28T12:11:04","modified_gmt":"2026-03-28T10:11:04","slug":"nanoclaw-500-linjer-kode-vil-goere-ai-agenter-sikre-med-container-isolation","status":"publish","type":"post","link":"https:\/\/vittrup-graversen.dk\/index.php\/2026\/02\/12\/nanoclaw-500-linjer-kode-vil-goere-ai-agenter-sikre-med-container-isolation\/","title":{"rendered":"NanoClaw: 500 linjer kode vil g\u00f8re AI-agenter sikre med container-isolation"},"content":{"rendered":"\n<p>Mens <a href=\"https:\/\/github.com\/openclaw\/openclaw\" target=\"_blank\" rel=\"noopener\">OpenClaw<\/a> vokser sig stadigt st\u00f8rre med 430.000+ linjer kode og 50+ integrationer, er et nyt projekt dukket op med en radikalt anderledes tilgang. <strong>NanoClaw<\/strong> er en letv\u00e6gts AI-agent-platform der kan opsummeres i \u00e9t tal: ~500 linjer core TypeScript. Og \u00e9t princip: din AI-agent b\u00f8r aldrig k\u00f8re direkte p\u00e5 din maskine.<\/p>\n\n\n\n<p>Projektet er skabt af Gavriel Cohen \u2014 VP i PR-firmaet Concrete Media og medstifter af Qwibit \u2014 og har p\u00e5 ganske kort tid f\u00e5et opm\u00e6rksomhed fra <a href=\"https:\/\/venturebeat.com\/orchestration\/nanoclaw-solves-one-of-openclaws-biggest-security-issues-and-its-already\" target=\"_blank\" rel=\"noopener\">VentureBeat<\/a>, <a href=\"https:\/\/news.ycombinator.com\/item?id=46850205\" target=\"_blank\" rel=\"noopener\">Hacker News<\/a> og diverse AI-communities. Men hvad er det egentlig NanoClaw g\u00f8r rigtigt, hvad mangler det, og er container-isolation virkelig svaret p\u00e5 AI-agenters sikkerhedsproblemer?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problemet: AI-agenter med adgang til dit liv<\/h2>\n\n\n\n<p>Kerneproblemet, som NanoClaw adresserer, er reelt nok. N\u00e5r du k\u00f8rer en AI-agent som personlig assistent \u2014 med adgang til dine filer, din kalender, dine beskeder \u2014 s\u00e5 stoler du p\u00e5, at softwaren holder sig inden for de gr\u00e6nser, den lover. OpenClaw og lignende platforme bruger <em>application-level<\/em> sikkerhed: allowlists, pairing-koder og tilladelses-tjek i selve koden. Det virker i praksis, men det er fundamentalt en anden slags garanti end OS-level isolation.<\/p>\n\n\n\n<p>Som Cohen selv formulerer det: <em>&#8220;I can&#8217;t sleep well running software I don&#8217;t understand with access to my life.&#8221;<\/em> Og det er sv\u00e6rt at v\u00e6re uenig i pr\u00e6missen \u2014 selvom man kan diskutere om hans l\u00f8sning er den eneste rigtige.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arkitekturen: elegant i sin enkelhed<\/h2>\n\n\n\n<p>NanoClaws arkitektur kan beskrives i en enkelt linje:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WhatsApp (baileys) \u2192 SQLite \u2192 Polling loop \u2192 Container (Claude Agent SDK) \u2192 Response<\/code><\/pre>\n\n\n\n<p>Det hele k\u00f8rer som \u00e9n Node.js-process. Beskeder fra WhatsApp gemmes i SQLite, en polling-loop fanger nye beskeder, og for hver besked startes en isoleret Linux-container (Apple Containers p\u00e5 macOS, Docker p\u00e5 Linux) hvor Claude Agent SDK behandler foresp\u00f8rgslen. Svaret sendes tilbage via WhatsApp.<\/p>\n\n\n\n<p>De centrale kildefiler er overraskende overskuelige:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>src\/index.ts<\/code> \u2014 orkestrering, state, beskedloop<\/li>\n<li><code>src\/container-runner.ts<\/code> \u2014 spawner isolerede agent-containere<\/li>\n<li><code>src\/channels\/whatsapp.ts<\/code> \u2014 WhatsApp-forbindelse via baileys<\/li>\n<li><code>src\/db.ts<\/code> \u2014 SQLite-operationer<\/li>\n<li><code>src\/task-scheduler.ts<\/code> \u2014 planlagte opgaver<\/li>\n<li><code>groups\/*\/CLAUDE.md<\/code> \u2014 per-gruppe hukommelse<\/li>\n<\/ul>\n\n\n\n<p>Hver WhatsApp-gruppe f\u00e5r sit eget isolerede filsystem og sin egen CLAUDE.md-hukommelsesfil. Det betyder at agenten i din &#8220;Familie&#8221;-gruppe aldrig kan se data fra din &#8220;Arbejde&#8221;-gruppe. Det er en ren og gennemt\u00e6nkt model.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sikkerhedsmodellen: containere som sandkasse<\/h2>\n\n\n\n<p>Her er NanoClaws virkelige salgsargument. I stedet for at sige &#8220;vi har en allowlist der blokerer farlige kommandoer&#8221;, siger NanoClaw: &#8220;agenten kan slet ikke se dit filsystem \u2014 den k\u00f8rer i en container.&#8221;<\/p>\n\n\n\n<p>Konkret betyder det:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Filsystem-isolation<\/strong> \u2014 agenten kan kun tilg\u00e5 mapper der eksplicit er mounted ind i containeren<\/li>\n<li><strong>Mount-allowlist<\/strong> \u2014 konfigureret i <code>~\/.config\/nanoclaw\/<\/code> (uden for containerens r\u00e6kkevidde), med symlink-beskyttelse via real path resolution<\/li>\n<li><strong>Automatisk blokering<\/strong> af sensitive stier som <code>.ssh<\/code>, <code>.gnupg<\/code>, credentials og lignende<\/li>\n<li><strong>Bash-kommandoer<\/strong> eksekveres inde i containeren \u2014 aldrig p\u00e5 host-maskinen<\/li>\n<\/ul>\n\n\n\n<p>P\u00e5 macOS bruges <a href=\"https:\/\/github.com\/apple\/container\" target=\"_blank\" rel=\"noopener\">Apple Containers<\/a> (kr\u00e6ver macOS Tahoe\/26), mens Linux-brugere k\u00f8rer Docker. Blast radius ved en potentiel prompt injection er dermed begr\u00e6nset til containerens indhold og den specifikke kommunikationskanal.<\/p>\n\n\n\n<p>Det er en \u00e6gte forbedring i forhold til applikationsniveau-sikkerhed. Men det er vigtigt at holde perspektivet: container-isolation er ikke magisk. En ondsindet agent kan stadig misbruge de mountede mapper, sende u\u00f8nskede beskeder via WhatsApp, eller bruge API-n\u00f8gler der er tilg\u00e6ngelige i containerens milj\u00f8. Containeren begr\u00e6nser <em>overfladen<\/em>, men eliminerer ikke risikoen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">&#8220;AI-native&#8221; udvikling: et paradigmeskift eller en begr\u00e6nsning?<\/h2>\n\n\n\n<p>NanoClaw er bygget med det, Cohen kalder en &#8220;AI-native&#8221; tilgang. Setup k\u00f8rer via Claude Code (<code>git clone \u2192 cd nanoclaw \u2192 claude \u2192 \/setup<\/code>), debugging sker ved at sp\u00f8rge Claude hvad der er galt, og udvidelser bidrages som &#8220;skills&#8221; \u2014 Claude Code-instrukser der transformerer din installation \u2014 i stedet for traditionelle pull requests.<\/p>\n\n\n\n<p>Filosofien er bevidst: ingen installationswizards, ingen monitoring-dashboards, ingen config-filer. Vil du \u00e6ndre trigger-ordet? Sig det til Claude. Vil du have kortere svar? Bed Claude om det. Kodebasen er lille nok til at Claude kan \u00e6ndre den sikkert.<\/p>\n\n\n\n<p>Det er en fascinerende tilgang, men den rejser sp\u00f8rgsm\u00e5l om vedligeholdelse og tilg\u00e6ngelighed. Hvad sker der n\u00e5r Claude&#8217;s SDK \u00e6ndrer sig? Hvad med brugere der foretr\u00e6kker at l\u00e6se dokumentation frem for at f\u00f8re en samtale? Og som Hacker News-debatten afsl\u00f8rede: n\u00e5r selve README&#8217;en lugter af LLM-genereret tekst, signalerer det for mange at koden heller ikke er grundigt gennemg\u00e5et af et menneske.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvad siger f\u00e6llesskabet?<\/h2>\n\n\n\n<p>NanoClaw har f\u00e5et blandede reaktioner. <a href=\"https:\/\/superprompt.com\/blog\/best-openclaw-alternatives-2026\" target=\"_blank\" rel=\"noopener\">Superprompt.com<\/a> listede det som &#8220;Most Secure&#8221; OpenClaw-alternativ. <a href=\"https:\/\/techplanet.today\/post\/nanoclaw-a-minimalist-approach-to-personal-ai-assistants-with-container-security\" target=\"_blank\" rel=\"noopener\">TechPlanet<\/a> lavede en solid teknisk gennemgang.<\/p>\n\n\n\n<p>Men VentureBeat-artiklen fra 11. februar fortjener et forbehold: Concrete Media, der sandsynligvis har faciliteret d\u00e6kningen, er Cohens eget PR-firma. Det g\u00f8r ikke artiklen forkert, men det er v\u00e6rd at have med i sin kildekritik.<\/p>\n\n\n\n<p>P\u00e5 Hacker News var tonen mere skeptisk. Kritikpunkterne var prim\u00e6rt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AI-genereret dokumentation<\/strong> \u2014 flere kommentatorer pegede p\u00e5 &#8220;LLM-lugten&#8221; i README og docs, hvilket rejste tvivl om menneskelig gennemgang af koden<\/li>\n<li><strong>500-linjers p\u00e5standen<\/strong> \u2014 det g\u00e6lder core-logikken, ikke hele kodebasen, hvilket er en vigtig nuance<\/li>\n<li><strong>Container-isolation l\u00f8ser ikke alt<\/strong> \u2014 en sandbox begr\u00e6nser overfladen, men den &#8220;d\u00f8delige treenighed&#8221; af AI-agenter med bred adgang forbliver en udfordring<\/li>\n<li><strong>Vedligeholdelse p\u00e5 lang sigt<\/strong> \u2014 bekymring over om AI-genereret kode uden dyb investering kan holde over tid<\/li>\n<\/ul>\n\n\n\n<p>Cohen var \u00e5ben omkring sin tilgang: <em>&#8220;I don&#8217;t care deeply about this code. It&#8217;s not a masterpiece. It&#8217;s functional code that is very useful to me.&#8221;<\/em> Det er \u00e6rligt \u2014 og det er i virkeligheden hele pointen med projektet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvad NanoClaw mangler<\/h2>\n\n\n\n<p>At sammenligne NanoClaw med OpenClaw er lidt som at sammenligne en schweizisk lommekniv med en skalpel. De l\u00f8ser forskellige problemer. Men det er v\u00e6rd at n\u00e6vne hvad der mangler:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kun WhatsApp<\/strong> \u2014 OpenClaw underst\u00f8tter 50+ integrationer (Telegram, Discord, Slack, email, kalender osv.). NanoClaw har en skills-baseret model til at tilf\u00f8je flere, men i praksis er det stadig prim\u00e6rt WhatsApp.<\/li>\n<li><strong>Single-user fokus<\/strong> \u2014 NanoClaw er designet til \u00e9n person. Det er ikke en platform, det er et personligt v\u00e6rkt\u00f8j.<\/li>\n<li><strong>macOS Tahoe-krav<\/strong> \u2014 Apple Containers kr\u00e6ver den nyeste macOS. Linux-brugere kan bruge Docker, men den native oplevelse er Mac-fokuseret.<\/li>\n<li><strong>Lille \u00f8kosystem<\/strong> \u2014 OpenClaw har ClawHub, hundredvis af skills og et stort f\u00e6llesskab. NanoClaws skills-katalog er stadig sp\u00e6dt.<\/li>\n<li><strong>Kun Claude<\/strong> \u2014 bygget direkte p\u00e5 Anthropic&#8217;s Agent SDK, s\u00e5 der er ingen mulighed for at bruge andre modeller.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Hvad betyder det i praksis?<\/h2>\n\n\n\n<p>NanoClaw er ikke en erstatning for OpenClaw. Det er et proof-of-concept for en vigtig id\u00e9: at AI-agenter b\u00f8r k\u00f8re i isolerede milj\u00f8er, ikke med direkte adgang til host-systemet. Det er en id\u00e9 som hele branchen b\u00f8r tage alvorligt \u2014 og som OpenClaw i \u00f8vrigt ogs\u00e5 bev\u00e6ger sig mod med <a href=\"https:\/\/github.com\/openclaw\/openclaw\/discussions\/4521\" target=\"_blank\" rel=\"noopener\">deres container-isolation roadmap<\/a>.<\/p>\n\n\n\n<p>For den teknisk nysgerrige er NanoClaw v\u00e6rd at studere. Kodebasen er lille nok til at man reelt kan forst\u00e5 hele systemet p\u00e5 en eftermiddag. Arkitekturen er elegant. Og sikkerhedsmodellen med mount-allowlists og container-isolation er gennemt\u00e6nkt.<\/p>\n\n\n\n<p>For den der bare vil have en AI-assistent der virker med alt \u2014 kalender, email, smart home, Telegram, Discord \u2014 er OpenClaw stadig det oplagte valg. Men m\u00e5ske med en smule eftertanke om hvad der sker, n\u00e5r man giver en AI-agent adgang til hele sit digitale liv, kun beskyttet af en allowlist i JavaScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Links<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/gavrielc\/nanoclaw\" target=\"_blank\" rel=\"noopener\">NanoClaw p\u00e5 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/nanoclaw.net\" target=\"_blank\" rel=\"noopener\">nanoclaw.net<\/a><\/li>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=46850205\" target=\"_blank\" rel=\"noopener\">Hacker News-diskussion<\/a><\/li>\n<li><a href=\"https:\/\/techplanet.today\/post\/nanoclaw-a-minimalist-approach-to-personal-ai-assistants-with-container-security\" target=\"_blank\" rel=\"noopener\">TechPlanet-analyse<\/a><\/li>\n<\/ul>\n\n\n<hr><p style=\"color:#888888\"><em>Denne artikel er skrevet i samarbejde med AI, og efterf\u00f8lgende redigeret af et rigtigt menneske \ud83d\ude42<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>NanoClaw bruger kun 500 linjer kode til at g\u00f8re AI-agenter sikre med container-isolation. Minimal og effektiv sandboxing.<\/p>\n","protected":false},"author":1,"featured_media":356,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[23],"class_list":["post-357","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-engineering","tag-claudecode"],"acf":[],"_links":{"self":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/comments?post=357"}],"version-history":[{"count":2,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/357\/revisions"}],"predecessor-version":[{"id":1060,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/357\/revisions\/1060"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media\/356"}],"wp:attachment":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media?parent=357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/categories?post=357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/tags?post=357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}