{"id":334247,"date":"2026-03-07T19:19:24","date_gmt":"2026-03-07T19:19:24","guid":{"rendered":"https:\/\/www.newsbeep.com\/ie\/334247\/"},"modified":"2026-03-07T19:19:24","modified_gmt":"2026-03-07T19:19:24","slug":"nanoclaw-can-stuff-each-ai-agent-into-its-own-docker-container-to-deal-with-openclaws-security-mess","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ie\/334247\/","title":{"rendered":"NanoClaw can stuff each AI agent into its own Docker container to deal with OpenClaw&#8217;s security mess"},"content":{"rendered":"<p>On the one hand, I feel a bit conflicted pointing out the recognised <a href=\"https:\/\/www.theregister.com\/2026\/02\/02\/openclaw_security_issues\/\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">security issues with OpenClaw<\/a>, even as serious AI thought leaders are naming their agents \u201cArnold\u201d and shouting orders at them. I feel duty-bound to take their enthusiasm seriously, while also stressing that this whole area remains problematic.<\/p>\n<p>Enter <a href=\"https:\/\/nanoclaw.dev\/\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">NanoClaw<\/a>. And it\u2019s more than just a <a href=\"https:\/\/thenewstack.io\/nanoclaw-minimalist-ai-agents\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">very small claw<\/a>.<\/p>\n<p>Firstly, NanoClaw can isolate each agent in its own container. So the agentic loop starts with no knowledge of other agents, and only knows about the resources you tell it about.<\/p>\n<p>The other intriguing thing is that the app isn\u2019t a large configuration file talking to a monolith; it is just the code you need (and the appropriate Claude skills) \u2014 with Claude hacking itself as needed. Given that code is \u201ccheap\u201d now, and Claude editing is reliable, this does make sense. And it does keep the code size down.<\/p>\n<p>WhatsApp? No thanks.<\/p>\n<p>My first question was\u2026 how does a bot get access to WhatsApp? This is the preferred contact choice of most OpenClaw users (and NanoClaw). The problem here is that unless you have a business account, you surely don\u2019t own enough stake in the platform to host an arbitrary new user. On\u00a0closer inspection, it appears that the WhatsApp connection relies on a module called\u00a0<a href=\"https:\/\/baileys.wiki\/docs\/intro\/\" target=\"_blank\" rel=\"noopener external  nofollow\" class=\"ext-link\" onclick=\"this.target=&#039;_blank&#039;;\">Baileys<\/a> that scans WhatsApp Web\u2019s WebSocket-based data, which Meta strongly discourages. In fact, accounts using unauthorised methods to connect to WhatsApp are actively monitored and restricted.<\/p>\n<p>I\u2019m hardly going to encourage using such a method, but fortunately, we don\u2019t have to. I do pay for a Slack workspace, and while connecting to Slack is a little painful, it is at least fully accounted for.<\/p>\n<p>Installing<\/p>\n<p>I have Claude installed, of course, connected to a \u201cPro\u201d account. With the <a href=\"https:\/\/github.com\/qwibitai\/nanoclaw\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">instructions<\/a>, I do the usual thing:<\/p>\n<p>\ngit clone https:\/\/github.com\/qwibitai\/nanoclaw.git<\/p>\n<p>\t\t\t\t&#13;<br \/>\n\t\t\t\t\t&#13;<br \/>\n\t\t\t\t&#13;<br \/>\n\t\t\t\t\t&#13;<br \/>\n\t\t\t\t&#13;<\/p>\n<p>git clone https:\/\/github.com\/qwibitai\/nanoclaw.git<\/p>\n<p>&#13;<br \/>\n\t\t\t\t\t&#13;<\/p>\n<p>Then I ran Claude within the new directory with \/setup:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816493 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/1d768e10-image-1024x227.png\" alt=\"\" width=\"1024\" height=\"227\"\/><\/p>\n<p>I have Docker Desktop installed, as this part requires:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816487 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/441984c7-image-1-1024x167.png\" alt=\"\" width=\"1024\" height=\"167\"\/><\/p>\n<p>On a Mac, you will see the familiar Docker icon in the Menu Bar if you didn\u2019t start it yourself.<\/p>\n<p>Then we move to how you are connecting to Claude:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816488 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/6b1ce776-image-2-1024x366.png\" alt=\"\" width=\"1024\" height=\"366\"\/><\/p>\n<p>Usually, I have to remember to turn the API key off because it\u2019s more expensive than a subscription. This is the first time I\u2019ve seen the two options mentioned side by side\u2014a good sign.<\/p>\n<p>Then we get to the contentious bit:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816489 size-full\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/8e4f04e3-image-3.png\" alt=\"\" width=\"884\" height=\"552\"\/><\/p>\n<p>As I\u2019ve indicated, I don\u2019t think WhatsApp is appropriate, so I\u2019ll be using Slack.<\/p>\n<p>Then we were given the great Slack sidequest:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816491 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/96178f0c-image-5-1024x554.png\" alt=\"\" width=\"1024\" height=\"554\"\/><\/p>\n<p>I now have to find two tokens, but not with my sword and trusty shield, but with the Slack API. I only recommend this campaign for an experienced adventurer. Onwards.<\/p>\n<p>Generating the tokens in Slack<\/p>\n<p>Fortunately, there are some good instructions on the <a href=\"https:\/\/nanoclaw.dev\/skills\/slack\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">Slack skill<\/a>, and Claude is patient. First, we need to generate the tokens and scopes.<\/p>\n<p>On Slack, I found the appropriate dialog:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816492 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/9f0bb9db-image-6-1024x510.png\" alt=\"\" width=\"1024\" height=\"510\"\/><\/p>\n<p>We need to turn on Socket Mode:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816478 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/a629702a-image-7-1024x379.png\" alt=\"\" width=\"1024\" height=\"379\"\/><\/p>\n<p>Then we need to subscribe to a set of bot events:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816479 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/98b1369f-image-8-956x1024.png\" alt=\"\" width=\"956\" height=\"1024\"\/><\/p>\n<p>And add scopes for OAuth \u2013 these limit what the NanoClaw App can do in the account:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816480 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/ad92906a-image-9-947x1024.png\" alt=\"\" width=\"947\" height=\"1024\"\/><\/p>\n<p>And finally, you get to install your new app and fetch the final dungeon key token:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816481 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/61d8d647-image-10-892x1024.png\" alt=\"\" width=\"892\" height=\"1024\"\/><\/p>\n<p>I have slain the dragon \/ found the treasure \/ defeated the Rocketeer. Well, not quite.<\/p>\n<p>Claude crashed. But I quickly got back to where I was, and Claude appears to fix the errant Slack script, and accept my two tokens for its .env file:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816482 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/d9d4b3a1-image-11-1024x221.png\" alt=\"\" width=\"1024\" height=\"221\"\/><\/p>\n<p>Then it was a case of introducing NanoClaw into my Slack channel.<\/p>\n<p>I suspected we were done with Slack itself, but we needed to give it access to my server folders. Remember, this is what we did with <a href=\"https:\/\/thenewstack.io\/how-claude-cowork-helps-developers-spread-the-ai-knowledge\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">Claude Cowork<\/a> to give it real power:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816484 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/6a99c032-image-13-1024x399.png\" alt=\"\" width=\"1024\" height=\"399\"\/><\/p>\n<p>A nicer way to select the folders would be cool, but I added the folders I was happy for NanoClaw to see:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816485 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/4295839c-image-14-1024x122.png\" alt=\"\" width=\"1024\" height=\"122\"\/><\/p>\n<p>And then I was able to communicate with NanoClaw on my Slack channel, after getting the correct Claude auth token:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816486 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/afcaebd0-image-15-1024x378.png\" alt=\"\" width=\"1024\" height=\"378\"\/><\/p>\n<p>My initial attempt to confirm that NanoClaw could see my folders on my Mac failed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816475 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/af544214-image-16-1024x162.png\" alt=\"\" width=\"1024\" height=\"162\"\/><\/p>\n<p>This is both good and bad. It proved that the agent is sitting in a container and not part of a single app. And of course, I asked Claude to fix itself. I had been tailing the log, so I could relay all the problems back to Claude, which eventually mapped the folders in a way that the NanoClaw agent could understand:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816476 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/803bac9b-image-17-1024x141.png\" alt=\"\" width=\"1024\" height=\"141\"\/><\/p>\n<p>Note how it refers to \u201cthe agent\u201d as a separate entity. So I had a back-and-forth between the NanoClaw agent and Claude. I\u2019m still very much the engineer here \u2013 but the separation of control is fine. The errors were the ones we all make, not understanding what Linux wants. No one understands what Linux wants.<\/p>\n<p>Eventually, it fixed its internal database and restarted what it needed to for the container. And with the new mapping, I could see my Documents folder:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816477 size-large\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/b8585ee1-image-18-1024x155.png\" alt=\"\" width=\"1024\" height=\"155\"\/><\/p>\n<p>To check, I added a new file to check it really was mapped live to the directory. Eventually, it did reflect that the file was there.<\/p>\n<p>\u201cI like the fact that Claude thought of the agent sitting in the container as quite separate from itself, and overall this is certainly a much more sensible and secure setup if you really want to be a \u2018power user\u2019 who really just needs a secretary to yell at.\u201d<\/p>\n<p>Now this isn\u2019t running on a Mac Mini under my cupboard, but on my laptop. So I won\u2019t be asking for a research document based on a report in my inbox at 2 a.m. while out for a jog, but if I were into that sort of thing, NanoClaw can clearly provide this fairly safely.<\/p>\n<p>While I did need to play engineer to get everything working, in reality, I was telling Claude my problems, and Claude fixed them. For that, I got a direct connection from my mobile Slack app to my server. I like the fact that Claude thought of the agent sitting in the container as quite separate from itself, and overall, this is certainly a much more sensible and secure setup if you really want to be a \u201cpower user\u201d who really needs a secretary to yell at.<\/p>\n<p>\t<a class=\"row youtube-subscribe-block\" href=\"https:\/\/youtube.com\/thenewstack?sub_confirmation=1\" target=\"_blank\" rel=\"nofollow noopener\"><\/p>\n<p>\n\t\t\t\tYOUTUBE.COM\/THENEWSTACK\n\t\t\t<\/p>\n<p>\n\t\t\t\tTech moves fast, don&#8217;t miss an episode. Subscribe to our YouTube<br \/>\n\t\t\t\tchannel to stream all our podcasts, interviews, demos, and more.\n\t\t\t<\/p>\n<p>\t\t\t\tSUBSCRIBE<\/p>\n<p>\t<\/a><\/p>\n<p>    Group<br \/>\n    Created with Sketch.<\/p>\n<p>\t\t<a href=\"https:\/\/thenewstack.io\/author\/david-eastman\/\" class=\"author-more-link\" rel=\"nofollow noopener\" target=\"_blank\"><\/p>\n<p>\t\t\t\t\t<img decoding=\"async\" class=\"post-author-avatar\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2026\/03\/2e2ac7a2-cropped-a46bbf33-photo.png\"\/><\/p>\n<p>\n\t\t\t\t\t\t\tDavid has been a London-based professional software developer with Oracle Corp. and British Telecom, and a consultant helping teams work in a more agile fashion. He wrote a book on UI design and has been writing technical articles ever since&#8230;.\t\t\t\t\t\t<\/p>\n<p>\t\t\t\t\t\tRead more from David Eastman\t\t\t\t\t\t<\/p>\n<p>\t\t<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"On the one hand, I feel a bit conflicted pointing out the recognised security issues with OpenClaw, even&hellip;\n","protected":false},"author":2,"featured_media":334248,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[61,60,80],"class_list":{"0":"post-334247","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technology","8":"tag-ie","9":"tag-ireland","10":"tag-technology"},"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/334247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/comments?post=334247"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/334247\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media\/334248"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media?parent=334247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/categories?post=334247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/tags?post=334247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}