<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[OpenClaw Unboxed]]></title><description><![CDATA[Unbox the AI that actually does things. Build cheaper more capable agents and smarter routing for token efficiency. Copy the configuration. Run your 24/7 team. An independent AI agent community by Josh Davis.]]></description><link>https://openclawunboxed.com</link><image><url>https://substackcdn.com/image/fetch/$s_!NDbU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f83d64-e1c8-427c-977f-fcceece59cc3_300x300.png</url><title>OpenClaw Unboxed</title><link>https://openclawunboxed.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 29 Apr 2026 05:09:25 GMT</lastBuildDate><atom:link href="https://openclawunboxed.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Josh Davis | substack.com/@joshdavis10x]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[openclaw@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[openclaw@substack.com]]></itunes:email><itunes:name><![CDATA[OpenClaw Unboxed]]></itunes:name></itunes:owner><itunes:author><![CDATA[OpenClaw Unboxed]]></itunes:author><googleplay:owner><![CDATA[openclaw@substack.com]]></googleplay:owner><googleplay:email><![CDATA[openclaw@substack.com]]></googleplay:email><googleplay:author><![CDATA[OpenClaw Unboxed]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[before you switch models, run this 30-minute audit on your openclaw stack]]></title><description><![CDATA[the audit kit that finds yours in 30 minutes, plus the consultant playbook to package the same fix as a paid service.]]></description><link>https://openclawunboxed.com/p/the-openclaw-leak-that-quietly-ate</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-openclaw-leak-that-quietly-ate</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Sun, 26 Apr 2026 03:22:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!C8E8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C8E8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C8E8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C8E8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg" width="800" height="419" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:419,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83549,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/195494404?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542c9508-2498-4f76-9296-8180bad62b52_800x600.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C8E8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!C8E8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba7496fd-b965-4a08-98c3-78e064475a45_800x419.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most people blame the model first.</p><p>sometimes that&#8217;s actually true.</p><p>a lot of the time, the bill got ugly because the stack design got lazy.</p><p>heartbeat is doing work that wanted cron.</p><p>a premium lane is handling routine checks.</p><p>main-session context keeps dragging old baggage into cheap work.</p><p>tool-heavy runs keep escalating without a stop rule.</p><p>the stack works.</p><p>the bill still makes no sense.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>openclaw&#8217;s own docs draw the line clearly enough that this shouldn&#8217;t stay fuzzy.</p><p>cron is for exact timing and isolated execution.</p><p>heartbeat is a periodic main-session turn with full session context.</p><p>cron executions create task records.</p><p>heartbeat turns don&#8217;t.</p><p>if you treat those as the same thing, you make the stack harder to inspect and easier to overpay for.</p><p>cost pressure is no longer something operators can hide behind flat-rate assumptions. operator threads are still full of people discovering that a cheap stack stopped feeling cheap once recurring checks, premium models, and growing sessions piled up.</p><p>this article does one job.</p><p>it shows you how to run a token autopsy before you gut the whole system. the same process can become a paid offer if you want to sell it.</p><div><hr></div><h2>what a token autopsy is</h2><p>a repeatable way to answer five questions.</p><p>which agent or workflow is spending the most.</p><p>which jobs are paying for full context when they shouldn&#8217;t.</p><p>which recurring checks belong on cron instead of heartbeat.</p><p>which model lanes are stronger than the work needs.</p><p>whether the fix worked after you changed the stack.</p><p>that&#8217;s the point of the kit. it turns the part most people guess at into something you can inspect line by line.</p><div><hr></div><h2>where the bill usually comes from</h2><p>you don&#8217;t need twenty theories. you need the leak map.</p><h3>heartbeat bloat</h3><p>heartbeat is useful when the work benefits from approximate checks and full context. inbox awareness fits. calendar awareness fits. notification awareness fits.</p><p>the cost problem starts when heartbeat carries a premium model, bloated session files, or jobs that wanted exact timing and isolated execution.</p><p>that&#8217;s not a heartbeat problem.</p><p>that&#8217;s a design problem.</p><h3>wrong model in the wrong lane</h3><p>a lot of builders treat &#8220;best model&#8221; like a permanent identity choice.</p><p>routine checks, status summaries, classification, cleanup, and extraction don&#8217;t need the strongest reasoning lane every turn. once you split the lanes, you put the strong model where the judgment lives and a cheaper model on everything else.</p><h3>tool-heavy loops on expensive lanes</h3><p>browser steps, screenshot paths, pdf work, and repeated execution loops add up fast when every hop climbs into a premium lane.</p><p>the bill rises even when the stack never feels smarter.</p><h3>history drag</h3><p>main sessions get heavier quietly. each turn looks small. the session still gets fatter. eventually the stack pays to re-explain itself on every routine call.</p><h3>unowned recurring jobs</h3><p>once background work starts piling up without a ledger, most operators lose the ability to answer the most basic question.</p><p>what ran, how often, and at what price.</p><div><hr></div><h2>the use case that makes this concrete</h2><p>picture a small ecommerce team.</p><p>one openclaw setup watching a shared inbox, checking a spreadsheet export, nudging follow-up tasks, and writing twice-daily summaries.</p><p>they wanted a cheap assistant. instead they built a stack quietly paying for context-aware reasoning to babysit routine admin work.</p><p>from the outside it looked like openclaw got expensive.</p><p>from the inside the problem was smaller.</p><p>scheduled work was living in the wrong lane. recurring checks were heavier than they needed to be, and oversized context files were dragging old material into routine awareness work.</p><p>after the audit on this stack:</p><ul><li><p>44 percent of estimated weekly spend was tied to heartbeat rows</p></li><li><p>the highest-cost rows were routine checks, not real reasoning work</p></li><li><p>two recurring jobs should&#8217;ve moved to cron on day one</p></li><li><p>the post-change baseline dropped 44 percent in the sample pack</p></li></ul><p>before: $93.90 per week. after: $52.60. saved: $41.30. that&#8217;s the case study that anchors the kit.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>the first 30 minutes</h2><p>if you&#8217;ve never run an audit, this is the path.</p><p>run the kit on the example data first. it ships with sample logs, a sample config, and a sample task map.</p><p>open <code>dashboard.html</code> in any browser. you should see total cost, total tokens, cost grouped by job type, and the top ten highest-cost rows.</p><p>then replace the sample files with your own.</p><p>start with one agent or one workflow. the goal is to find the first leak, not to audit your whole stack on day one.</p><p>open <code>heartbeat_audit.md</code>. look for premium models on heartbeat rows.</p><p>open <code>spend_ledger.csv</code>. sort by cost. check the top rows. if they&#8217;re mostly heartbeat or routine summaries, you found the wrong lane.</p><p>open <code>cron_recommendations.csv</code>. pick one exact-time job to move. good first candidates: a daily report, a fixed-time reminder, a weekly review, a recurring follow-up nudge.</p><h6>upgrading here gets you the exact build behind this article. deployable scripts, configs, install steps, monitoring services, hardening checklists, the consultant playbook, and 38 passing tests so you trust the code before you run it on real data. operator-grade assets and the system to ship it as your own service.</h6><p><strong>repo link &#128071;</strong></p><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/the-openclaw-leak-that-quietly-ate">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[the next openclaw gold rush isn’t installs]]></title><description><![CDATA[tencent&#8217;s qclaw beta shows where the margin is moving: away from setup, into managed trust, approval gates, cleanup, and boring maintenance clients will actually pay for]]></description><link>https://openclawunboxed.com/p/the-openclaw-install-is-already-dead</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-openclaw-install-is-already-dead</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Fri, 24 Apr 2026 04:49:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zw8h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zw8h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zw8h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zw8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg" width="1378" height="721" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:721,&quot;width&quot;:1378,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157107,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zw8h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zw8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3c3e47b-5686-42f3-95b7-23ec8b5a6316_1378x721.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>the short version</h2><p>tencent just launched an international beta for a friendlier version of openclaw.</p><p>the install is getting commoditized.</p><p>the recurring money is moving one layer up, into scoping, hardening, and ongoing maintenance.</p><p>if you sell ai agent work for a living, the offer that makes sense right now looks very different from what most builders are quoting today.</p><p>below is what the news actually says, what the openclaw docs admit in writing, what to sell instead, how to price it, and what to walk away from.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>what tencent just did</h2><p>recently on april 21, tencent opened an international beta for a consumer ai product called qclaw.</p><p>the rollout is capped at 20,000 users across the u.s., canada, japan, singapore, and south korea.</p><p>the app installs on a laptop in about three minutes.</p><p>it comes pre-wired with several hosted ai models, accepts your own api keys if you&#8217;d rather bring your own, and connects to whatsapp or telegram so you can send instructions from your phone.</p><p>for anyone who hasn&#8217;t been following this space: openclaw is the open-source ai agent framework that went viral in china earlier this year.</p><p>it runs on your own computer, hooks into your messaging apps, and takes real actions on your behalf (drafting emails, moving files, handling follow-ups).</p><p>the raw version stops most non-technical people at the setup step because it needs command-line work to get running.</p><p>qclaw is tencent&#8217;s consumer wrapper around that same engine.</p><p>tap-to-install, preconfigured, no terminal required.</p><p>for people selling ai agent services, this is the signal worth reading.</p><div><hr></div><h2>what the money is telling us</h2><p>a month before the international launch, reuters reported that tencent had already split its agent business by buyer type.</p><p>the consumer product is qclaw.</p><p>the developer product is a cloud service called lighthouse.</p><p>the enterprise product is called workbuddy.</p><p>on top of the three, tencent built a wechat plugin called clawbot that surfaces any of those agents inside an existing chat thread for over a billion monthly users.</p><p>when a company with tencent&#8217;s distribution segments that cleanly, the raw install stops being where margin lives.</p><p>packaging takes its place.</p><p>there&#8217;s a second signal, and it&#8217;s the one most builders missed because it ran inside china and never got picked up in english tech press outside of a few outlets.</p><p>in march, business insider and the south china morning post both reported on a strange two-sided economy that had formed around openclaw in china.</p><p>on one side, setup services.</p><p>people were paying installers up to 599 yuan (roughly $88) to set the tool up on their machine.</p><p>business insider reported that at least one installer claimed to have earned about $36,000 in a few days.</p><p>at tencent&#8217;s shenzhen headquarters, nearly a thousand people reportedly queued up to have engineers install openclaw on their devices for free.</p><p>on the other side, uninstall services.</p><p>once security concerns hit and the thing started breaking for people who didn&#8217;t know what they&#8217;d configured, paid uninstall listings appeared on xianyu (alibaba&#8217;s secondhand marketplace) at around 299 yuan ($44), with premium in-home removal going up to $87.</p><p>one rednote user summed up the whole market in a single line: &#8220;loading lobsters costs 599, unloading them costs 299.&#8221;</p><p>a market where real money flows at both the install boundary and the removal boundary is a market telling you, in the loudest voice it can, that the software itself is not the scarce resource.</p><p>scoping and cleanup are.</p><div><hr></div><h2>what the openclaw docs actually admit</h2><p>none of the above is speculation.</p><p>openclaw&#8217;s own documentation is refreshingly blunt about its trust model.</p><p>for paid subscribers who want to check this themselves, every quote below is pulled verbatim from the public docs as of this week.</p><p>from docs.openclaw.ai/gateway/security:</p><blockquote><p>OpenClaw security guidance assumes a personal assistant deployment: one trusted operator boundary, potentially many agents. Supported security posture: one user/trust boundary per gateway. Not a supported security boundary: one shared gateway/agent used by mutually untrusted or adversarial users.</p></blockquote><p>in plain english: openclaw is built for one person on one machine.</p><p>it was never designed to serve several employees in a company who don&#8217;t fully trust each other.</p><p>the docs say that out loud.</p><p>next, the api.</p><p>openclaw exposes a compatibility endpoint so that other software can talk to it over http.</p><p>if you hand someone the bearer token for that endpoint, the docs instruct you to treat that person as a full operator of the gateway, with no reduced permissions available.</p><p>the official github security policy confirms this, stating that the openai-compatible endpoints &#8220;are documented full operator-access surfaces, not per-user/per-scope boundaries.&#8221;</p><p>a leaked token, for all practical purposes, is admin access to the whole system.</p><p>third, plugins.</p><p>this one surprises most people.</p><p>from openclaw&#8217;s github security.md:</p><blockquote><p>Plugins/extensions are part of OpenClaw&#8217;s trusted computing base for a gateway. Installing or enabling a plugin grants it the same trust level as local code running on that gateway host.</p></blockquote><p>and from the gateway security docs: &#8220;Plugins run in-process with the Gateway. Treat them as trusted code.&#8221;</p><p>there&#8217;s no sandbox between plugin and core.</p><p>a malicious plugin has the same reach as core code.</p><p>none of this is a bug.</p><p>it&#8217;s the correct design for the single-user single-machine case openclaw is actually built around.</p><p>the problem shows up the moment someone tries to squeeze three employees, two contractors, and a shared customer service inbox into one gateway.</p><p>the docs explicitly tell you not to do that.</p><p>qclaw and the wrappers coming behind it don&#8217;t move that boundary.</p><p>they just move it out of the first-time user&#8217;s view, which is worse.</p><p>and that is the opening for a builder who knows what to sell.</p><div><hr></div><h2>what you should actually be selling</h2><p>the offer most builders are quoting right now is some version of &#8220;an ai employee&#8221; or &#8220;an ai workforce.&#8221;</p><p>that framing sounds impressive in a linkedin post.</p><p>it kills deals in a real sales call because business owners don&#8217;t buy abstractions.</p><p>they buy fixes to loops that are already costing them money.</p><p>here&#8217;s the offer that works in 2026, stripped to its parts.</p><p>a tightly scoped deployment.</p><p>one clear business job.</p><p>a required human approval step before anything external leaves the system.</p><p>a maintenance contract that keeps the thing stable past month one.</p><p>that&#8217;s it.</p><p>buyers are walking into your call because something specific is bleeding.</p><p>maybe an hvac owner is missing inbound quote requests because no one catches the phone in time.</p><p>maybe a mortgage broker is losing pre-approval buyers to slow email replies.</p><p>maybe a consultant&#8217;s admin retypes intake forms into salesforce every afternoon and it eats four hours a week.</p><p>these are concrete loops with dollar amounts attached.</p><p>they fit in a twenty-minute sales call.</p><p>&#8220;ai workforce&#8221; does not.</p><p>notice that tencent&#8217;s own launch framing supports the same pattern.</p><p>qclaw wasn&#8217;t marketed as autonomous intelligence.</p><p>it was marketed as tax prep, fitness planning, and social media management, all packaged into preconfigured use cases with three-minute deployment.</p><p>tencent understands that the buyer wants a solved problem, not a tool.</p><div><hr></div><h2>a real deployment with real numbers</h2><p>let me walk through a specific shop you can use as a template for pricing conversations.</p><p>say you&#8217;re talking to a three-truck hvac company.</p><p>they do about $1.5 million a year in service revenue.</p><p>the owner still handles inbound lead intake personally because his dispatcher is overloaded and the answering service keeps missing nuance.</p><p>leads come in through the website form, through a google business profile listing, and through voicemails when no one grabs the phone.</p><p>by the owner&#8217;s own count, four to six leads a month slip through the cracks.</p><p>the average first-year value of a new hvac customer at this shop is around $1,400.</p><p>here&#8217;s the managed offer you build for him.</p><p><strong>the system.</strong></p><p>one gateway runs on a small vps (a rented cloud server) you manage.</p><p>it&#8217;s watching his form submissions and voicemail transcripts in real time.</p><p>when something new comes in, it drafts a response email within five minutes, builds a short prep packet that includes the address and approximate home age pulled from public records, creates a follow-up reminder on his calendar, and writes a draft customer record for his crm.</p><p><strong>the guardrail.</strong></p><p>none of it sends.</p><p>the owner taps approve on his phone before anything leaves the system.</p><p>that approval gate is the single most important feature of the whole deployment and it&#8217;s what separates your offer from every bad ai project he&#8217;s heard horror stories about.</p><p><strong>the price.</strong></p><p>$4,500 setup fee.</p><p>$1,500 a month on a six-month minimum.</p><p><strong>the math.</strong></p><p>assume the system catches three of the missed jobs per month at $1,400 first-year value each.</p><p>that&#8217;s $50,400 in recovered revenue over year one against $22,500 in total first-year fees.</p><p>a 2.2x return, and that&#8217;s before any lifetime value from repeat calls or a maintenance plan.</p><p>most hvac customers are worth a multiple of their first-year spend over time, so the real number is higher.</p><p><strong>why the retainer holds.</strong></p><p>the owner has zero interest in being the guy who fixes whatsapp authentication on a sunday morning when a session token rotates.</p><p>his renewal isn&#8217;t driven by feature envy.</p><p>it&#8217;s driven by not wanting to touch this.</p><div><hr></div><h2>the first sales call, scripted</h2><p>the qualifying call is where a clean offer gets made or a messy one gets started.</p><p>these five questions will separate real buyers from polite tire-kickers within fifteen minutes.</p><p><strong>1. what&#8217;s the one workflow where slow response or missed follow-up is costing you money this quarter?</strong></p><p>if they can&#8217;t answer with something specific and dollar-attached, don&#8217;t send a proposal.</p><p>a deployment without a scoreboard gets graded on vibes, and vibes eat margin.</p><p><strong>2. who on your team can approve outbound actions before they&#8217;re sent?</strong></p><p>if there&#8217;s no named approver, the first bad output becomes the conversation where you get fired.</p><p>walk.</p><p><strong>3. who owns the credentials and the host once we go live?</strong></p><p>split ownership across the owner, the operations manager, and the it guy is a trap.</p><p>when something breaks at 2am, nobody is accountable and every resolution turns into a three-way meeting.</p><p>get a single name on this or don&#8217;t sell.</p><p><strong>4. what data is off-limits inside this system, no matter what?</strong></p><p>buyers who can&#8217;t give you an &#8220;absolutely not&#8221; list haven&#8217;t thought about it yet.</p><p>you&#8217;ll end up thinking about it for them, for free, in month three, under pressure.</p><p><strong>5. if this saves you four hours a week, who on your team gets those hours back?</strong></p><p>no named beneficiary means no internal champion, which usually means no renewal at month six regardless of how well the system performed.</p><p>buyers who answer these fast and concretely are worth a proposal that same day.</p><p>buyers who hedge on more than two are buyers who&#8217;ll generate unlimited scope creep at your expense.</p><p>proposals take a day to write.</p><p>send them only to the first group.</p><div><hr></div><h2>the cold pitch that books the call</h2><p>for reaching out to a local business owner who has never heard of openclaw and never will:</p><blockquote><p>hi [name], saw your team on [channel]. most operations your size are losing three to five leads a month to slow response time, which at your price point adds up to [$x] in revenue walking out the door. i build small, managed ai systems that watch your inbound channels, draft a response within five minutes, and put the follow-up on your calendar. nothing gets sent until you approve it from your phone. setup takes about two weeks and the system pays for itself by month two in most of my deployments. worth a twenty-minute call?</p></blockquote><p>a few things worth noticing about this pitch.</p><p>the phrase &#8220;ai agent&#8221; appears nowhere.</p><p>it surfaces the approval gate on the second-to-last sentence, which is where the buyer&#8217;s anxiety lives.</p><p>it puts a dollar figure on the current bleed, which is how a business owner actually thinks about the problem.</p><p>and it asks for a call, not a sale.</p><p>keep it short.</p><p>rewrite the bracketed fields for the specific business.</p><p>don&#8217;t pitch features.</p><div><hr></div><h2>the retainer is where you actually get paid</h2><p>setup fees come in once.</p><p>they&#8217;re lumpy and they tempt you into pricing the install like it&#8217;s the whole product.</p><p>it isn&#8217;t.</p><p>the business lives in the retainer, and the retainer is precisely the place qclaw and the other wrappers can&#8217;t compete.</p><p>a wrapper doesn&#8217;t call you back when authentication breaks on a weekend.</p><p><strong>what the retainer should cover.</strong></p><p>authentication and session repair when tokens expire.</p><p>plugin or channel re-validation after a vendor pushes an update.</p><p>a monthly security review.</p><p>backup verification.</p><p>workflow tuning inside the scope you both agreed on.</p><p>incident triage.</p><p>rollback support.</p><p>a monthly run of <code>openclaw security audit --deep</code> with a one-page plain-english summary you send the client.</p><p><strong>what the retainer should explicitly not cover.</strong></p><p>anything that expands the scope.</p><p>new workflows.</p><p>rollouts into new departments.</p><p>multi-user expansion.</p><p>custom plugin development.</p><p>new data source integrations.</p><p>these are separate engagements at separate rates.</p><p>write the exclusion list into the agreement in plain english before the first retainer check clears.</p><p>the single biggest reason managed retainers turn into charities by month three is that builders don&#8217;t define the boundary on paper and then feel awkward enforcing it later.</p><p>define it at signing and the awkward conversation never happens.</p><div><hr></div><h2>how to handle the month-two expansion request</h2><p>this is where retainers die, so it gets its own section.</p><p>in month two, almost every happy client will say some version of: &#8220;hey, this is working great. can we also have it do [second workflow]?&#8221;</p><p>this is not a gift.</p><p>it&#8217;s a test.</p><p>the wrong answer is &#8220;sure, i&#8217;ll fold it in.&#8221;</p><p>the wrong answer trains the client to treat scope expansion as free.</p><p>by month six you&#8217;re working twice the hours for the same retainer, and you&#8217;ll quietly resent the client while they cheerfully renew.</p><p>the right answer has a shape.</p><p>something like:</p><blockquote><p>glad you&#8217;re seeing the value. that second workflow is about [x] hours of new setup plus a modest retainer bump because it adds [y] to monthly monitoring. want me to send a short add-on scope document this week?</p></blockquote><p>you just taught the client that scope expansion is paid.</p><p>they&#8217;ll either say yes and pay you more, or they&#8217;ll say &#8220;let me think about it&#8221; and come back in a month, by which point they&#8217;ll value what you already do more than they did.</p><p>the only clients who react badly to this script are the ones who were going to underpay you anyway.</p><p>you want to find that out in month two, not month twelve.</p><div><hr></div><h2>what to do in the first thirty days after signing</h2><p>a beginner-level checklist you can literally print and tape above your desk:</p><p><strong>day 1-3.</strong></p><p>set up the vps.</p><p>install openclaw.</p><p>set <code>openclaw.json</code> with gateway auth using a long random bearer token, stored as an environment variable.</p><p>lock the bind to loopback unless you have a real reason otherwise.</p><p>run <code>openclaw security audit --deep</code> and resolve every critical finding before writing a single workflow.</p><p><strong>day 4-7.</strong></p><p>pair the agreed messaging channels (one at a time, never all at once).</p><p>confirm the client&#8217;s designated approver can receive and tap approve on pending actions from their phone.</p><p>document the approval flow in a one-page pdf the client can show to their insurance provider if asked.</p><p><strong>day 8-14.</strong></p><p>build the first workflow end to end.</p><p>test with fake inbound data, then test with real but low-stakes inbound data.</p><p>never enable outbound actions until the client has personally tapped approve on at least twenty drafts and is comfortable with the draft quality.</p><p><strong>day 15-25.</strong></p><p>flip the workflow live.</p><p>watch the first hundred approvals manually.</p><p>tune the drafting and prep-packet logic based on what the client is editing before approving.</p><p>this is where you earn your setup fee.</p><p><strong>day 26-30.</strong></p><p>write and send the first monthly audit summary.</p><p>schedule the month-two retainer call.</p><p>in that call, ask explicitly: &#8220;is there anything that&#8217;s annoying you that we haven&#8217;t already talked about?&#8221;</p><p>fix those before they become a reason to churn.</p><p>this checklist works for any vertical.</p><p>the specifics of the workflow change.</p><p>the rhythm doesn&#8217;t.</p><div><hr></div><h2>where this offer doesn&#8217;t work</h2><p>not every buyer is a fit, and you&#8217;ll burn money trying to force the ones that aren&#8217;t.</p><p>the buyer who wants multiple departments on one gateway before the first workflow has earned trust is the most common bad fit.</p><p>the docs are unambiguous on shared-gateway trust.</p><p>you&#8217;ll spend your margin re-explaining that boundary instead of shipping.</p><p>the buyer who refuses to put a human in front of outbound actions is a harder pass.</p><p>the first bad output becomes a termination call.</p><p>no amount of downstream polish recovers from it.</p><p>the buyer who wants ownership of the host, credentials, and configuration split across three different people on their team, while still expecting you to be accountable for outcomes, makes every future incident unresolvable.</p><p>if you can&#8217;t consolidate the ownership during scoping, don&#8217;t sign.</p><p>the buyer who can&#8217;t name a specific painful loop is a buyer who&#8217;ll rate you on vibes.</p><p>there&#8217;s no winning that game.</p><p>a clean no in month zero is worth far more than a messy yes that turns into a churn in month six.</p><div><hr></div><h2>where this leaves you</h2><p>the real land grab has nothing to do with who installs openclaw first.</p><p>that end of the market is already being eaten by qclaw and the wrappers coming behind it.</p><p>the position worth taking is one layer up.</p><p>it&#8217;s the work of scoping a deployment that matches the trust model in the docs, owning credentials on behalf of a client who doesn&#8217;t want to, picking up the phone when something breaks, and keeping the system boring and boring and boring for as long as the client is paying you to.</p><p>the wrappers can&#8217;t do that work.</p><p>the buyers who have been burned once (and there are more of them every month) already know they need someone who can.</p><p>the question is whether you&#8217;re positioned to be that someone before the next tencent builds its own qclaw for whatever vertical you&#8217;re targeting.</p><p>the three working assets below are the templates for the work.</p><p>use the decision matrix when you&#8217;re trying to figure out which path fits which buyer.</p><p>the retainer agreement is what you customize and put in front of a client once the first month has proven out.</p><p>the rescue intake is what you pull off the shelf the day a wrapper buyer calls in month three because something has gone sideways.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h6>upgrading here gets you the exact build behind articles. deployable configs, hardened baselines, install steps, inspection scripts, verification tooling, risk scoring, 44 tested assertions, ci integration, a beginner walkthrough, fix instructions for every finding type, and real workflows you will run, ship, or sell.</h6><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/the-openclaw-install-is-already-dead">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[why your openclaw approvals feel calm right before they break (use this repo)]]></title><description><![CDATA[openclaw's approval system has a trust leak that looks like things working. here is the firewall model and the repo that catches it.]]></description><link>https://openclawunboxed.com/p/i-approved-one-harmless-command-and</link><guid isPermaLink="false">https://openclawunboxed.com/p/i-approved-one-harmless-command-and</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 21 Apr 2026 14:48:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ronj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ronj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ronj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ronj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg" width="800" height="419" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:419,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83987,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/194922073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d295313-25a4-4a3e-85fb-73645ffd9b52_800x533.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ronj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ronj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb549bb58-3b0c-4a1b-b28a-6639946bbf15_800x419.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most people i chat with here and on instagram think the approval problem is friction.</p><p>i think (know now) that the real problem is just drift.</p><p>one week the stack asks too often.<br>the next week it asks less.<br>after that, nobody remembers what changed.</p><p>that&#8217;s how people end up in the two worst states.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>the first one is approval spam. the agent keeps stopping for shell access, browser actions, file access, or node commands. people get annoyed. they start hunting for the shortcut.</p><p>the second one looks better on the surface. prompts get quieter. workflows feel smoother. then a wrapper gets trusted instead of the tool you meant to trust, or an interpreter gets trusted instead of one script, or the approval ui disappears and the fallback quietly allows more than you meant.</p><p>that second state is worse because it feels calm.</p><p>openclaw&#8217;s current security docs are direct about the trust model. one gateway, meaning the host machine where openclaw runs, is one trusted operator boundary. it isn&#8217;t a hostile multi-tenant wall for adversarial users sharing one gateway or one agent. if multiple untrusted users can message one tool-enabled agent, they&#8217;re steering the same delegated tool authority. session keys don&#8217;t change that. they&#8217;re routing selectors, not auth boundaries.</p><p>that point should change how you think about approvals.</p><p>this isn&#8217;t a popup problem.</p><p>it&#8217;s an access design problem.</p><h2>why this matters so much right now</h2><p>openclaw now spells the approval stack out more clearly than most people think. the exec approvals docs separate three controls: security, which sets the trust mode. ask, which decides when to prompt. and askfallback, which decides what happens when the approval ui can&#8217;t reach you. the same docs also make the yolo path plain. setting security to full and ask to off means host exec runs without prompts unless some stricter layer wins first.</p><p>that&#8217;s not a product failure.</p><p>it&#8217;s a trust choice.</p><p>and it&#8217;s got teeth.</p><p>there&#8217;s a second reason this matters now. anthropic said claude code users accept 93 percent of permission prompts anyway. that&#8217;s the whole approval-fatigue argument in one number. once people stop reading the prompt, the prompt is no longer doing the job people claim it&#8217;s doing.</p><p>that part maps cleanly onto openclaw.</p><p>if your review flow depends on a human staying fresh through every prompt, you don&#8217;t have a stable trust model. you have temporary attention.</p><h2>where this goes wrong in the field</h2><p>one path looks harmless.</p><p>a user approves a command like whoami.<br>a shell wrapper gets trusted instead of the underlying tool.</p><p>here&#8217;s what that means. when you type whoami, the runtime might execute it through something like /bin/zsh -lc &#8216;/usr/bin/whoami&#8217;. you thought you approved whoami. the system actually recorded /bin/zsh as the trusted binary.</p><p>the current docs already point at this class of problem from two angles. safe bins, which are pre-approved simple tools like grep or wc, are supposed to stay narrow and boring. strict inline eval exists because running code directly inside an interpreter isn&#8217;t the same thing as running a saved script. the docs also warn against putting interpreters or shells into safe bins in the first place.</p><p>that warning is there because the issue tracker shows the failure mode in plain english. one february issue shows a user approving a harmless whoami command and ending up with /bin/zsh persisted in the allowlist because the runtime executed through /bin/zsh -lc. after that, future commands through the same wrapper no longer needed fresh approval.</p><p>that&#8217;s not a tiny edge case.</p><p>that&#8217;s the trust model leaking through a wrapper.</p><p>another path is uglier.</p><p>a user approves the interpreter instead of one script.</p><p>a march issue lays that out directly. allow always stores the resolved binary path and drops the arguments. approve python3 once, and the trust grant stops being about one script. it becomes trust in the interpreter path unless another layer catches the difference. that means python3 with any arguments, any flags, any code passed through -c.</p><p>there&#8217;s a third issue here.</p><p>cross-host approvals don&#8217;t always behave the way people assume. openclaw has an open issue for wsl2 gateway to windows node flows where gateway-side path validation breaks node-targeted workdirs. that&#8217;s a different class of bug, but it lands in the same place. people think they&#8217;re managing approvals. they&#8217;re really inheriting wrapper behavior, interpreter behavior, and host-layout assumptions.</p><p>that&#8217;s why i think approval review needs a firewall model.</p><h2>what the approval firewall is</h2><p>the approval firewall isn&#8217;t another prompt layer.</p><p>it&#8217;s a narrower operating model for where trust gets created, how it gets widened, and how you verify the state you already created.</p><p>in practice, it comes down to a few rules.</p><ul><li><p>gateway trust and node trust are separate. don&#8217;t confuse them.</p></li><li><p>copying one client runtime into another is how trust bleeds across boundaries.</p></li><li><p>a shell wrapper hides the real binary inside it.</p></li><li><p>python3 covers every script on the machine, not the one you approved.</p></li><li><p>if the approval ui goes missing, the safer default is to block the action.</p></li><li><p>and every permission-tuning session should leave behind a diff you can inspect later.</p></li></ul><p>that last part matters more than most people realize.</p><p>a lot of people don&#8217;t have a policy problem.</p><p>they have an archaeology problem.</p><p>they don&#8217;t know what got trusted last week.</p><h2>what i&#8217;d do instead</h2><p>i&#8217;d stop asking one setting to solve all of this.</p><p>i&#8217;d use a small stack of controls that each do one narrow job well.</p><h3>start strict</h3><p>for real work, i&#8217;d rather begin with the allowlist set so only approved binaries can run. ask on-miss so the system prompts me when something new tries to execute. askfallback deny so a missing approval ui blocks the action instead of allowing it. and strict inline eval on. if there&#8217;s no reachable approval path, the safer default is block. if askfallback is set to full, a missing ui becomes silent trust expansion.</p><h3>keep safe bins boring</h3><p>stdin-only filters like wc, cut, head, and tail. nothing fancy. no shells. no interpreters. no file-loader flags that quietly turn one parser into a generalized read path.</p><h3>treat wrappers as suspect until proven otherwise</h3><p>if execution keeps flowing through /bin/sh -lc or /bin/zsh -lc, review the resulting approval file right away. don&#8217;t assume the trusted thing is the tool you meant.</p><h3>diff approval state after every tuning pass</h3><p>not after the incident.</p><p>not once a quarter.</p><p>right after you add a node, widen shell access, update wrappers, or move one workflow from personal to shared use.</p><h2>what success looks like</h2><p>this is the part too many hardening posts skip.</p><p>if you apply a strict baseline and the setup is healthy, you should be able to verify a few things fast.</p><ul><li><p>check the gateway approvals file. defaults should read deny, on-miss, and deny.</p></li><li><p>your main agent needs to show allowlist, on-miss, and deny.</p></li><li><p>look at the allowlist. shells and interpreters have no business being there, and that includes powershell and pwsh on windows.</p></li><li><p>strict inline eval stays on.</p></li><li><p>node hosts get their own approvals file, separate from the gateway.</p></li><li><p>trust one new binary and check the diff. only that binary should appear. nothing wider.</p></li></ul><p>if you can&#8217;t explain a new trust grant in one sentence, don&#8217;t keep it.</p><p>that&#8217;s the whole point of the repo in this post.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h6>upgrading here gets you the exact build behind articles. deployable configs, hardened baselines, install steps, inspection scripts, verification tooling, risk scoring, 44 tested assertions, ci integration, a beginner walkthrough, fix instructions for every finding type, and real workflows you will run, ship, or sell.</h6><h2>this articles repo built for production</h2><p>&#128071; here is the 30+ file repo you need that ships with four core layers</p><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/i-approved-one-harmless-command-and">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[stop chasing one local model for openclaw]]></title><description><![CDATA[the local stack holding up better right now is a role split, not one model trying to do every job]]></description><link>https://openclawunboxed.com/p/stop-looking-for-one-best-local-model</link><guid isPermaLink="false">https://openclawunboxed.com/p/stop-looking-for-one-best-local-model</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Sat, 18 Apr 2026 03:45:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!diy5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!diy5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!diy5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!diy5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!diy5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!diy5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!diy5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg" width="800" height="419" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:419,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119582,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/194582132?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8d6bee7-f124-4feb-a4db-5d35eb12cd3d_800x533.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!diy5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 424w, https://substackcdn.com/image/fetch/$s_!diy5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 848w, https://substackcdn.com/image/fetch/$s_!diy5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!diy5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c5a4163-64d9-4bf1-9656-acca6558b4d3_800x419.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>people keep asking me which local model they should be running, as if repo edits, screenshots, pdf extraction, and cheap repeat work are the same kind of task.</p><p>to start, openclaw&#8217;s own model-routing docs already say otherwise. the default model handles the main lane, <code>imageModel</code> is only used when the primary model can&#8217;t accept images, and <code>pdfModel</code> is used by the pdf tool, falling back to the image lane and then the default lane if you leave it unset. openclaw also still points people to <code>openclaw onboard</code> as the recommended setup path.</p><p>that matters because it changes what you&#8217;re optimizing for.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw Unboxed is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>you&#8217;re not trying to find one local model that looks respectable in every screenshot comparison online. you&#8217;re trying to make the stack hold up on the jobs you actually give it.</p><p>if you&#8217;re new, the easiest way to think about this is simple.</p><p>a lane is just one model assigned to one kind of work.</p><p>that&#8217;s enough to get started here.</p><p>repo work is one lane. screenshots are another. pdfs are another. after that, keep a stronger fallback around for work that&#8217;s expensive to get wrong. openclaw&#8217;s own local-model guide still recommends keeping hosted fallbacks available with <code>models.mode: "merge"</code> even when you&#8217;re serious about local. it also says a single 24 gb gpu is only enough for lighter prompts with higher latency, and warns that aggressively quantized or smaller checkpoints raise prompt-injection risk.</p><h2>the first models i&#8217;d actually test</h2><p>for code, qwen3-coder-next (personal favorite) is one of the clearest first tests right now because its public card is unusually direct about what it&#8217;s for. qwen says it was built for coding agents and local development, with 80b total parameters, 3b activated, and training aimed at long-horizon reasoning, tool use, and recovery from execution failures. if your openclaw workflow lives in repos and terminals, that&#8217;s the kind of description you pay attention to.</p><p>for screenshots and documents, gemma 4 deserves a real slot in testing. google&#8217;s current launch post presents gemma 4 as a model family built for reasoning and agentic workflows, with native function calling and structured output support. the current model card says the family is multimodal, supports up to 256k context on the larger variants, and explicitly lists document and pdf parsing, screen and ui understanding, chart comprehension, and ocr among its image-understanding capabilities. google&#8217;s public launch post is dated april 2, 2026.</p><p>that split is more useful than the usual &#8220;best local model&#8221; argument because it matches how openclaw already routes work.</p><p>for code, start by testing qwen3-coder-next.</p><p>for screenshots, charts, receipts, and document-heavy visual reads, test gemma 4.</p><p>for pdfs, stop letting whatever happened to be loaded decide the answer.</p><h2>the setup a beginner can actually finish</h2><p>the biggest beginner mistake is not picking the wrong model.</p><p>it&#8217;s trying to design the whole stack before one task has succeeded.</p><p>start smaller.</p><p>install one local runtime. lm studio and ollama are both first-class paths in openclaw&#8217;s current provider docs, and <code>openclaw onboard</code> is still the fastest supported way to get model, auth, and defaults set in one flow. if you just want a first chat without channel setup, the onboarding docs point to <code>openclaw dashboard</code> for that too.</p><p>then pick one local default model for the work you do most often.</p><p>not the model you admire most.</p><p>not the model that won the most recent reddit thread.</p><p>the work you actually do.</p><p>if your day is mostly repo edits and shell steps, start with a code-focused model. if your day is mostly reading screenshots and dashboards, start with a visual model. then run one real task through it. a real file. a real screenshot. a real pdf.</p><p>after that, write down the miss in plain language.</p><p>did it lose repo state.</p><p>did it misread the screenshot.</p><p>did it turn a structured pdf into a fluffy summary.</p><p>did it crawl because the prompt was too heavy.</p><p>that gives a beginner something concrete to act on, and it gives an advanced user something better than vibes. now you know what failed and why you might need another lane.</p><h2>before you paste config, get the model id right</h2><p>this is the detail that quietly breaks a lot of first setups.</p><p>openclaw model refs use <code>provider/model</code>, and the current docs call out <code>openclaw models list</code> and <code>openclaw models set &lt;provider/model&gt;</code> as the helpers. lm studio adds one more wrinkle. its model keys use <code>author/model-name</code>, and openclaw prepends the provider name. so if lm studio reports <code>qwen/qwen3.5-9b</code>, openclaw wants <code>lmstudio/qwen/qwen3.5-9b</code>. the lm studio provider docs say you can confirm the exact key by calling <code>http://localhost:1234/api/v1/models</code> and reading the <code>key</code> field.</p><p>that sounds minor until you watch someone paste a display label instead of the real model key and spend the rest of the afternoon debugging the wrong thing.</p><h2>why onboarding sometimes looks broken</h2><p>this part is worth stating plainly because it catches people fast.</p><p>unless you pass <code>--skip-health</code>, <code>openclaw onboard</code> waits for a reachable local gateway before it exits successfully. if you use <code>--install-daemon</code>, onboarding starts the managed gateway install path first. without that flag, you need a local gateway already running, for example with <code>openclaw gateway run</code>. if you only want config writes and bootstrap setup, the docs say to use <code>--skip-health</code>.</p><p>so if onboarding appears to &#8220;hang,&#8221; that is not always a broken install. sometimes the gateway just was not up yet.</p><h2>where people lose hours for no good reason</h2><p>most wasted time in local openclaw setups comes from blaming the wrong layer.</p><p>openclaw&#8217;s general troubleshooting docs are blunt on this. if the backend says <code>messages[].content</code> should be a string, set <code>models.providers.&lt;provider&gt;.models[].compat.requiresStringContent: true</code>. if tiny direct requests work but normal openclaw agent turns still fail, the next documented move is <code>models.providers.&lt;provider&gt;.models[].compat.supportsTools: false</code>. if the backend still crashes only on larger openclaw turns after that, the docs say to treat the remaining problem as an upstream model or server limitation rather than an openclaw transport problem.</p><p>that boundary is important. it tells you when to stop poking config and start changing the backend, lowering prompt pressure, or trying a different model.</p><h2>the ollama boundary that still trips people up</h2><p>ollama supports openai compatibility now. its own docs say that directly. openclaw&#8217;s ollama docs say something different, but only in a different context. they warn remote ollama users not to use the <code>/v1</code> openai-compatible url with openclaw because tool calling is not reliable there and models may print raw tool json as plain text. openclaw tells you to use the native ollama base url instead, without <code>/v1</code>. those two statements can both be true. one is about what ollama supports in general. the other is about what currently behaves well inside openclaw.</p><p>there is one more ollama detail that matters once you start editing config by hand.</p><p>when you let openclaw handle ollama the easy way, it can auto-discover models from the local instance. the current provider docs say that works when <code>OLLAMA_API_KEY</code> is set and you do <strong>not</strong> define <code>models.providers.ollama</code>. once you define <code>models.providers.ollama</code> explicitly, auto-discovery is skipped and you need to define models manually. that explains why some people think their model list disappeared the minute they &#8220;upgraded&#8221; to a custom config.</p><h2>lm studio has a different kind of gotcha</h2><p>lm studio&#8217;s newer developer docs recommend the native <code>/api/v1/*</code> rest api for new projects. openclaw&#8217;s current lm studio docs still show the openai-compatible <code>/v1</code> base url in onboarding examples. that is not elegant, but it is the current state of the docs. inside openclaw, follow openclaw&#8217;s lm studio provider guide. if you are building directly against lm studio itself, their native api is now the preferred surface.</p><p>there is also a model-visibility issue that looks like a routing bug until you know what lm studio is doing.</p><p>the current lm studio headless docs say that when jit loading is on, <code>/v1/models</code> returns all downloaded models, not just the ones already loaded into memory. when jit loading is off, <code>/v1/models</code> returns only models currently loaded into memory, and you must load the model first before using it. that means &#8220;lm studio isn&#8217;t showing my model&#8221; is often not a missing-model problem at all. sometimes the model just is not loaded.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw Unboxed is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>what i&#8217;d deploy today</h2><p>i&#8217;d start with one local default lane and one stronger fallback.</p><p>the local lane should match the work you do most.</p><p>the fallback should be the model you trust when the answer touches production, customers, money, or some painful cleanup path.</p><p>then leave it alone long enough to fail honestly.</p><p>if repo work is fine and screenshots keep missing, add a visual lane.</p><p>if screenshots are fine and pdf extraction stays weak, add a pdf lane.</p><p>if everything is &#8220;kind of okay&#8221; but nothing is trustworthy, stop adding complexity and fix the first lane first.</p><p>that is not the neatest possible setup. it&#8217;s the setup most people can survive.</p><h2>important assets for you to use &#128071;</h2><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/stop-looking-for-one-best-local-model">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[slack got more fragile for distributed openclaw rollouts]]></title><description><![CDATA[why one of the best places to put openclaw now needs thinner context, tighter scoping, and a real inbound test after every upgrade]]></description><link>https://openclawunboxed.com/p/slack-got-more-fragile-for-distributed</link><guid isPermaLink="false">https://openclawunboxed.com/p/slack-got-more-fragile-for-distributed</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Thu, 16 Apr 2026 23:53:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-idO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-idO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-idO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!-idO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!-idO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!-idO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-idO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png" width="1536" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:332152,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/194464201?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f223a3-bc81-49e5-a9c9-a2d3cb48c318_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-idO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!-idO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!-idO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!-idO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0acb1b0a-e45b-468c-a342-9b158969d102_1536x804.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>slack is still one of the best places to put openclaw because it solves the hardest part of agent adoption first. which is getting people to use the thing where they already work!</p><p>openclaw&#8217;s current docs still mark slack as production-ready for dms and channels, with socket mode as the default and http request urls supported.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>what changed is not whether slack works.</p><p>what changed is how forgiving it is.</p><p>slack tightened <code>conversations.history</code> and <code>conversations.replies</code> for commercially distributed non-marketplace apps. for new apps and new installs of existing unlisted apps, those methods now drop to <strong>1 request per minute</strong> with a <strong>15-object cap</strong>.</p><p>internal customer-built apps are explicitly excluded and stay on the much higher custom-app limits of <strong>50+ requests per minute</strong> with up to <strong>1,000 objects</strong>. that split matters because it creates two very different slack realities. one is for internal teams wiring up their own app. the other is for agencies, wrappers, vendors, and anyone deploying fresh commercial installs into client workspaces.</p><p>that second category is where a lot of openclaw builders want to live.</p><p>they are packaging agents, role-based workflows, client stacks, and repeatable installs that land inside someone else&#8217;s slack.</p><p>slack still supports that path. it just punishes sloppy design faster than it did a year ago.</p><p>there&#8217;s also a second problem layered on top of the policy change.</p><p>recent openclaw issue traffic shows enough slack-specific breakage that &#8220;connected&#8221; is no longer a satisfying success state. one current issue documents socket mode connecting, channels resolving, and <code>openclaw channels status --probe</code> reporting &#8220;works&#8221; while inbound events never arrive. another shows v2026.4.2 failing to load the slack plugin at all because <code>@slack/web-api</code> could not be resolved. the april 14, 2026 release notes also call out channel provider issues as part of the release focus.</p><p>so no, this is not an argument to stop using slack.</p><p>it&#8217;s an argument to stop treating slack like a forgiving memory layer and start treating it like a narrow operating surface.</p><h2>why slack still wins</h2><p>for most teams, placement beats almost everything.</p><p>a separate dashboard sounds fine in theory. in practice it becomes another tab people ignore.</p><p>the agent gets used when it shows up inside the channel, thread, or dm the team was already going to open that day.</p><p>that is still slack&#8217;s advantage.</p><p>and openclaw gives you real control over how that surface behaves: dm policy, group policy, channel allowlists, per-channel user allowlists, mention gating, thread behavior, ack reactions, typing reactions, and separate dm session scoping when more than one person can message the bot. slack is not just a chat pipe here. it can be shaped into a controlled intake layer.</p><p>that matters more now because the old lazy setup does not age well under either of the current pressures:</p><ol><li><p>harsher slack history economics for distributed commercial installs</p></li><li><p>more recent slack transport regressions on the openclaw side</p></li></ol><h2>where people get this wrong</h2><p>the weak slack deployments usually fail in the same place.</p><p>they ask slack to do too much.</p><p>slack becomes the memory layer when it should mostly be the intake layer.</p><p>the bot is left open too broadly.</p><p>too many people share the same path into the same session.</p><p>then someone looks at a healthy status check and assumes the deployment is fine without sending a real message through the path that matters.</p><p>that is how you end up with a stack that looks alive from the outside while the one thing you actually need, inbound events reaching the agent, is broken.</p><p>issue #57844 is a clean example of that exact failure pattern. the socket connects. probe passes. outbound still works. inbound quietly dies.</p><p>if you put openclaw into slack and leave the boundary loose, you are not building a collaborative assistant.</p><p>you are creating a shared action surface with weak controls and hoping nobody nudges it into the wrong lane.</p><h2>the operating model i&#8217;d use now</h2><p>i&#8217;d keep slack thin.</p><p>that means long-lived context belongs in the openclaw workspace and memory layer, not in slack history.</p><p>this was already the cleaner design. slack&#8217;s new rate limit split for distributed non-marketplace installs makes it even more obvious.</p><p>if your bot needs to scroll backward through slack to remember what happened last week, you are leaning on the wrong layer.</p><p>slack should mostly handle intake, routing, approvals, short-lived thread context, and human handoff points.</p><h3>keep dms on pairing</h3><p>openclaw&#8217;s slack docs say dms default to pairing mode.</p><p>the broader configuration docs say the same thing more generally: <code>dmPolicy: "pairing"</code> is the default, and unknown senders get a one-time pairing code to approve.</p><p>that is the right default.</p><p>if the workflow matters, the owner should know exactly who has a live path into the bot.</p><h3>keep channels on allowlist</h3><p>openclaw&#8217;s slack access model gives you <code>groupPolicy</code> for channels and says the channel allowlist should live under <code>channels.slack.channels</code> using stable channel ids.</p><p>the broader config reference also notes the fail-closed behavior: if the provider block is missing, runtime falls back to <code>allowlist</code> with a warning.</p><p>that is the right shape.</p><p>channels should be opened on purpose, not by accident.</p><p>for higher-stakes channels, tighten further with the per-channel <code>users</code> allowlist so only named slack user ids can drive the bot there.</p><p>openclaw supports that directly.</p><h3>require mentions in shared rooms</h3><p>the docs are clear here too.</p><p>channel messages are mention-gated by default, and per-channel controls include <code>requireMention</code>.</p><p>that is good.</p><p>stray chatter should not turn into agent work.</p><p>if you want one dedicated bot room where the agent can respond without an @mention every time, make that a deliberate exception on that one room.</p><p>do not make it your global posture.</p><h3>isolate shared dms</h3><p>this one gets missed a lot.</p><p>the slack docs note that with the default <code>session.dmScope=main</code>, slack dms collapse into the agent&#8217;s main session.</p><p>the security docs are more direct: if more than one person can dm your bot, set <code>session.dmScope: "per-channel-peer"</code> and keep <code>dmPolicy: "pairing"</code> or strict allowlists.</p><p>otherwise people&#8217;s dm context can bleed into each other.</p><h3>use thread-scoped context on purpose</h3><p>openclaw&#8217;s slack docs say <code>channels.slack.thread.historyScope</code> defaults to <code>thread</code>, <code>thread.inheritParent</code> defaults to <code>false</code>, and <code>thread.requireExplicitMention</code> can force explicit mentions inside threads.</p><p>that is a strong base.</p><p>it keeps the bot closer to the conversation you meant instead of letting thread behavior quietly widen the input boundary.</p><h3>treat status checks as the start, not the finish</h3><p>the docs themselves point you to <code>openclaw channels status --probe</code>, <code>openclaw logs --follow</code>, and <code>openclaw doctor</code> for troubleshooting.</p><p>use them.</p><p>just do not confuse them with proof that the real path works.</p><p>issue #57844 shows exactly why. probe can say &#8220;works&#8221; while inbound events never show up.</p><p>that means your deployment is not working, no matter how pretty the status line looks.</p><h3>start with socket mode, but don&#8217;t get ideological about it</h3><p>openclaw&#8217;s slack docs still make socket mode the default, and it is still the simplest place to start.</p><p>you do not need to expose a public request url and it is convenient for local or firewalled setups.</p><p>but if socket mode says connected and your inbound path is dead, stop caring about the purity of the transport choice.</p><p>either roll back to the last known-good version for your stack or test the http path.</p><p>what matters is whether real messages reach the agent.</p><p>not whether the transport choice matches your preference.</p><h2>what this means if you sell or deploy openclaw</h2><p>the shallow version of slack integration is still how most people talk about it.</p><p>plug in slack, pick a channel, done.</p><p>that framing is now too weak for the current environment.</p><p>slack has effectively split the world in two.</p><p>internal customer-built apps keep the old generous limits.</p><p>commercially distributed non-marketplace installs do not.</p><p>openclaw still gives you the controls to run slack well inside either world, but the operating model has to respect which world you are actually in.</p><p>if you are deploying openclaw into client workspaces as a commercial product or service, slack history is now a worse place to lean on than it was before, and your upgrade discipline needs to be tighter than &#8220;probe passed.&#8221;</p><p>that is the gap worth filling right now.</p><p>not &#8220;can openclaw connect to slack?&#8221;</p><p>yes, it can.</p><p>the better question is how to run slack as a controlled front door when the policy economics changed and recent issue traffic shows that a healthy-looking connection can still be lying to you.</p><p>that is a much more useful article to write because it gives operators a way to think, not just a way to click through setup.</p><p>if i were setting slack up for openclaw today, i&#8217;d keep it boring.</p><p>one always-on gateway.</p><p>one agent per role.</p><p>one slack channel per role when that makes sense.</p><p>pairing for dms.</p><p>allowlists for channels.</p><p>mention gating in shared rooms.</p><p>thread-scoped context.</p><p>long-lived memory outside slack.</p><p>and a real inbound smoke test after every upgrade instead of a status check that only proves the transport connected.</p><h2>a reference config</h2><p>this example stays inside current openclaw slack capabilities and hardens the parts that matter most for shared use.</p><p>if you are newer to openclaw, the important idea is not the exact json.</p><p>it is the shape of the boundary.</p><ul><li><p><code>mode: "socket"</code> starts with the default transport</p></li><li><p><code>dmPolicy: "pairing"</code> keeps dms approved instead of open</p></li><li><p><code>groupPolicy: "allowlist"</code> keeps channels explicit</p></li><li><p><code>requireMention: true</code> keeps shared rooms quiet unless someone intentionally wakes the bot</p></li><li><p><code>users</code> narrows who can drive the bot in the higher-stakes channel</p></li><li><p><code>thread.historyScope: "thread"</code> and <code>thread.inheritParent: false</code> keep thread context tighter</p></li><li><p><code>thread.requireExplicitMention: true</code> stops implicit thread wakeups</p></li><li><p><code>session.dmScope: "per-channel-peer"</code> isolates dm context per person</p></li><li><p><code>ackReaction</code> and <code>typingReaction</code> make it obvious that the bot actually received work and is doing something with it</p></li></ul><pre><code>{
  &#8220;channels&#8221;: {
    &#8220;slack&#8221;: {
      &#8220;enabled&#8221;: true,
      &#8220;mode&#8221;: &#8220;socket&#8221;,
      &#8220;dmPolicy&#8221;: &#8220;pairing&#8221;,
      &#8220;groupPolicy&#8221;: &#8220;allowlist&#8221;,
      &#8220;ackReaction&#8221;: &#8220;eyes&#8221;,
      &#8220;typingReaction&#8221;: &#8220;hourglass_flowing_sand&#8221;,
      &#8220;channels&#8221;: {
        &#8220;c0123456789&#8221;: {
          &#8220;requireMention&#8221;: true,
          &#8220;users&#8221;: [&#8221;u0123456789&#8221;, &#8220;u0987654321&#8221;]
        },
        &#8220;c0222222222&#8221;: {
          &#8220;requireMention&#8221;: false
        }
      },
      &#8220;thread&#8221;: {
        &#8220;requireExplicitMention&#8221;: true,
        &#8220;historyScope&#8221;: &#8220;thread&#8221;,
        &#8220;inheritParent&#8221;: false
      }
    }
  },
  &#8220;session&#8221;: {
    &#8220;dmScope&#8221;: &#8220;per-channel-peer&#8221;
  }
}</code></pre><h2>the post-upgrade smoke test</h2><p>run the usual checks first.</p><pre><code>openclaw channels status --probe
openclaw logs --follow
openclaw doctor</code></pre><p>then run the only test that actually matters: send traffic through the real paths you depend on.</p><ol><li><p>send a dm to the bot<br></p></li><li><p>send an @mention in one allowlisted channel<br></p></li><li><p>reply inside an existing bot thread<br></p></li><li><p>trigger one command or interaction you actually use in production<br></p></li></ol><p>for each one, check four things:</p><ul><li><p>did the ack reaction or typing signal appear?<br></p></li><li><p>did the reply land in the right place?<br></p></li><li><p>did <code>openclaw logs --follow</code> show a real inbound event?<br></p></li><li><p>did the session behave with the context boundary you expected?<br></p></li></ul><p>if any of those fail after an upgrade, stop there.</p><p>do not talk yourself into thinking the stack is fine because the socket connected.</p><p>recent issue history is enough to show that a healthy-looking slack transport can still hide a dead inbound path.</p><p>either roll back to the last known-good version for your setup or test the http route to isolate whether the problem is specific to socket mode.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[why smart openclaw operators are getting more careful with updates]]></title><description><![CDATA[how to update without gambling your working stack, what to verify before and after, and the fast path back when a release knocks out channels, config, or runtime state]]></description><link>https://openclawunboxed.com/p/the-rollback-mode-every-openclaw</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-rollback-mode-every-openclaw</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 14 Apr 2026 20:32:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FjOe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FjOe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FjOe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FjOe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg" width="1536" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112501,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/194228646?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eba15fc-c08e-4431-bb72-d8bd2c8efabf_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FjOe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FjOe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d30eb4d-73d9-466a-9f15-ea3acb5fd9b3_1536x804.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>if your openclaw stack already does real work, updates stop being a curiosity and start becoming change management.</p><p>that sounds obvious until the day a release lands and the damn telegram dies, the gateway won&#8217;t even boot, or a config that worked yesterday suddenly fails validation. let&#8217;s look at the details here.. in april 2026, issue #62921 documented a packaging regression in 2026.4.7 where telegram&#8217;s setup entry pointed at <code>./src/channel.setup.js</code>, but that file was not included in the published npm package. issue #62923 confirmed the same regression also hit slack. in february 2026, issue #24262 documented a different kind of failure: telegram looked connected, kept polling, and still swallowed inbound messages until rollback restored the previous version.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>updating isn&#8217;t the mistake. updating without a way back is.</p><p>say your stack does two jobs that matter every day. telegram catches replies from leads overnight. a scheduled workflow posts a summary into your work chat before you wake up. if an update breaks either one, you don&#8217;t have a hobby problem. you have an operations problem.</p><p>for a throwaway stack, a quick glance might be enough. for anything tied to clients, revenue, or your own daily workflow, you need a routine that proves the box still works.</p><h2>a quick note for newcomers</h2><p>openclaw runs a background process called the <strong>gateway</strong>. that&#8217;s the process that connects channels like telegram, slack, discord, and whatsapp to your agent. when people say &#8220;the gateway won&#8217;t boot,&#8221; they mean that process failed to start. <strong>channels</strong> are the messaging connections attached to the gateway. <strong>config</strong> is the file at <code>~/.openclaw/openclaw.json</code> that tells the stack how to behave. the config docs are strict here: unknown keys, malformed types, or invalid values can keep the gateway from starting at all.</p><p>the good news is that openclaw already ships the right maintenance tools. the update docs say <code>openclaw update</code> is the recommended path, and that it detects npm or git installs, fetches the latest version, runs <code>openclaw doctor</code>, and restarts the gateway. the cli and health docs also document <code>openclaw backup create --verify</code>, <code>openclaw backup verify &lt;archive&gt;</code>, <code>openclaw channels status --probe</code>, <code>openclaw status --deep</code>, <code>openclaw health --verbose</code>, <code>openclaw gateway status</code>, and the legacy <code>openclaw daemon restart</code> alias for service-managed installs.</p><p>that means rollback planning can be part of the update itself instead of something you invent after the damage is already done.</p><h2>where people get this wrong</h2><p>a lot of users still update in the worst possible order. they pull the new version, click around, notice something odd, start guessing, and then spend an hour trying random fixes on a box they never proved was safe to keep.</p><p>the better order is boring, and that&#8217;s why it works.</p><p>save evidence first. change the version second. verify the parts that matter third. make the rollback call fast if anything important fails.</p><p>skip the evidence step and the whole thing turns into memory, vibes, and half-remembered output. at that point you don&#8217;t really know whether the break came from the release, a bad restart path, stale credentials, a config mismatch, or something already broken before you touched anything.</p><h2>what to capture before you touch the version</h2><p>before the upgrade, you want a snapshot of the last known-good state.</p><p>the docs and troubleshooting ladder make the baseline pretty clear. <code>openclaw status</code> gives you the fast first read. <code>openclaw status --all</code> gives you a fuller local diagnosis that is safe to paste. <code>openclaw gateway status</code> checks service runtime against rpc reachability and shows which config the service likely used. <code>openclaw health --verbose</code> forces a live probe and expands what you can see across configured accounts and agents. <code>openclaw logs --follow</code> is the live tail. and <code>openclaw backup create --verify</code> writes and validates a backup archive before you move on.</p><p>you do not need to understand every line of output. you do need to save it. that&#8217;s what gives you a real before-and-after comparison instead of a guess.</p><h2>what the backup protects, and what it doesn&#8217;t</h2><p>openclaw&#8217;s backup tooling is better than a lot of people realize. the backup docs say <code>openclaw backup create</code> can archive the local state directory, the active config path, credentials that live outside the state directory, and workspace directories discovered from the current config. <code>--verify</code> validates the archive immediately after writing it. <code>backup verify &lt;archive&gt;</code> checks that the archive contains exactly one root manifest and that every manifest-declared payload exists in the tarball. <code>--only-config</code> saves just the active config file. <code>--no-include-workspace</code> skips workspace discovery and makes the archive smaller and faster.</p><p>there is one caveat that matters a lot in real life. the backup docs also say that <code>openclaw backup create</code> now fails fast when the config exists but is invalid and workspace backup is still enabled, because workspace discovery depends on parsing a valid config. in that case, <code>--no-include-workspace</code> still lets you keep state, config, and credentials in scope, and <code>--only-config</code> still works if all you need is the config file itself.</p><p>that is the right expectation to carry into an update. backup protects operating state. it does not magically erase problems that were already sitting in your config.</p><h2>what to verify after the update</h2><p>most people verify the least useful thing.</p><p>they see that the app opens, or that the status view doesn&#8217;t look scary, and they call it done. the february telegram issue is a good warning against that habit. in #24262 the bot looked connected and polling, but inbound messages were still being swallowed until rollback restored the prior version. that is exactly the kind of failure that slips past a lazy spot check.</p><p>what matters after an update is the path that actually does work.</p><p>for a personal stack, that usually means five things:<br>the gateway responds, the main channel probes cleanly, model auth still works, one real task completes, and the logs stay quiet for a few minutes.</p><p>for anything tied to clients or revenue, use the full pass the docs support: <code>openclaw status</code>, <code>openclaw gateway status</code>, <code>openclaw status --deep</code>, <code>openclaw health --verbose</code>, <code>openclaw channels status --probe</code>, then a live inbound test on the primary channel, then one safe outbound or approval-gated action, then a log watch long enough to catch repeat errors. the docs are explicit that <code>status --deep</code> and <code>health --verbose</code> run live probes, and that <code>channels status --probe</code> adds live transport and audit checks when the gateway is reachable.</p><p>if the stack makes money, verify the money path.</p><h2>when to stop and roll back</h2><p>a lot of people roll back too late.</p><p>they restart. they edit config. they reinstall something. they convince themselves the next command might fix it. an hour later they&#8217;re still standing in the same hole, except now the hole is deeper.</p><p>your rollback trigger should be tighter than your patience.</p><p>roll back when the gateway won&#8217;t start after the update. roll back when a work-critical channel breaks right after the version change. roll back when <code>doctor</code> exposes a bigger repair job than the release is worth on a production box. roll back when the same problem survives one proper restart and a short log pass. roll back when you&#8217;ve crossed the line from verification into improvisation.</p><p>that line matters. once you&#8217;re debugging instead of operating, the update has not earned the right to stay.</p><h2>what a fast rollback looks like</h2><p>the april 2026 regression is useful because it was not subtle. issue #62921 shows a 2026.4.7 upgrade that immediately produced a config-invalid error because telegram&#8217;s setup entry referenced a missing file. issue #62923 widened that from telegram to slack and noted there was no config-level workaround because the failure happened during bundled extension bootstrap. the practical workaround in both reports was the same: go back to 2026.4.5.</p><p>that is the whole point of keeping the previous version number written down before you update. the operators who recover fastest are usually not the ones who know the most. they&#8217;re the ones who can get back to the last version that worked without turning the next two hours into a science project.</p><h2>the install-shape caveat</h2><p>there is no single rollback command that fits every openclaw install.</p><p>the docs distinguish between foreground gateway runs, gateway service commands, and the legacy daemon alias. <code>openclaw gateway run</code> is a foreground path. <code>openclaw gateway restart</code> and <code>openclaw daemon restart</code> are service-management paths. the cli docs also note that <code>gateway status</code> stays available for diagnostics even when the local cli config is missing or invalid, and that <code>--deep</code> adds system-level service scans that can catch stale or extra gateway-like services. troubleshooting docs call those parallel services out as a real source of confusion.</p><p>so use the restart path that matches the way you actually run the box. if you installed with npm globally, pinning a known-good version with npm is the normal rollback move. if you run from git, go back to the earlier tag or commit. if you use docker, change the image tag and restart that stack. don&#8217;t assume a service command fits a foreground setup just because both happen to work on the same machine.</p><h2>when to update at all</h2><p>update when you have four things ready before the version changes:</p><p>a backup<br>a saved baseline<br>a short verification pass<br>a rollback trigger you will actually obey</p><p>without those, wait.</p><p>if the stack is experimental, be loose. if it touches leads, clients, deliverables, or anything you don&#8217;t want to babysit at midnight, treat the update like maintenance.</p><div><hr></div><h2>assets and command packs</h2><p>these command packs match the current docs for update behavior, status and health probes, backup modes, service restart aliases, and invalid-config recovery behavior. the rollback examples also line up with the documented april and february issue workarounds.</p><h3>pre-update planner prompt</h3><pre><code>you are my openclaw release engineer.

i&#8217;m preparing to upgrade my openclaw stack and want the smallest safe change possible.

here is my current evidence:
1. output from openclaw status
2. output from openclaw status --all
3. output from openclaw gateway status
4. output from openclaw update status
5. output from openclaw health --verbose
6. any recent error lines from openclaw logs --follow
7. the channels and workflows i refuse to break

your job:
1. identify the highest-risk parts of this upgrade
2. tell me whether i should upgrade now, wait, or test on a backup instance first
3. produce a minimal step-by-step plan
4. define a rollback trigger
5. define the exact post-update verification pass
6. avoid unrelated cleanup or architecture changes
7. keep the blast radius small

output format:
- go or no-go
- top risks
- exact commands
- post-update checks
- rollback trigger</code></pre><h3>pre-update capture pack</h3><pre><code>mkdir -p rollback-check

openclaw status &gt; rollback-check/status.txt
openclaw status --all &gt; rollback-check/status-all.txt
openclaw gateway status &gt; rollback-check/gateway-status.txt
openclaw update status &gt; rollback-check/update-status.txt
openclaw health --verbose &gt; rollback-check/health-verbose.txt

# capture 15 seconds of live logs, then move on even if the command hangs
timeout 15s openclaw logs --follow &gt; rollback-check/log-follow.txt || true

openclaw backup create --verify</code></pre><h3>healthy baseline cheat sheet</h3><pre><code>openclaw gateway status
openclaw channels status --probe
openclaw logs --follow</code></pre><p>look for:</p><ul><li><p>gateway service running<br></p></li><li><p>rpc probe succeeding<br></p></li><li><p>no extra or legacy service warnings<br></p></li><li><p>primary channel reachable with successful probe results<br></p></li><li><p>no repeating fatal errors<br></p></li><li><p>no auth loops<br></p></li><li><p>no repeated startup churn<br></p></li></ul><h3>invalid-config rescue pack</h3><pre><code># skip workspace discovery, which needs a valid config
openclaw backup create --no-include-workspace

# if all you need is the config file itself
openclaw backup create --only-config

# then try the repair pass
openclaw doctor --fix</code></pre><p>for beginners: <code>openclaw doctor --fix</code> is the right first repair move when config validation is blocking startup. the config and doctor docs both point there when unknown keys, bad types, or invalid values stop the gateway from booting. </p><h3>post-update verification pack</h3><pre><code>openclaw status
openclaw gateway status
openclaw status --deep
openclaw health --verbose
openclaw channels status --probe</code></pre><h3>manual verification checklist</h3><ol><li><p>send one inbound test message on the primary channel<br></p></li><li><p>run one safe outbound or approval-gated action<br></p></li><li><p>confirm the workflow that matters most still completes<br></p></li><li><p>watch logs for five minutes<br></p></li><li><p>stop immediately if validation fails, channels go dark, or the logs start repeating the same auth or startup error<br></p></li></ol><h3>rollback pack for npm global installs</h3><pre><code>npm i -g openclaw@&lt;last_known_good_version&gt;
openclaw doctor --fix
openclaw daemon restart
openclaw status
openclaw gateway status
openclaw health --verbose
openclaw channels status --probe</code></pre><p>for beginners: replace <code>&lt;last_known_good_version&gt;</code> with the actual version you were on before the update. you saved that in your pre-update capture pack. if you&#8217;re not using a managed service, swap <code>openclaw daemon restart</code> for the restart path that matches your setup, such as <code>openclaw gateway restart</code>, docker compose, systemd, launchd, or your foreground run command. the cli docs distinguish those paths explicitly. </p><h3>operator incident log template</h3><pre><code>rollback incident

date:
host:
current version:
last known-good version:

what changed:
first failure seen:
affected parts:
- gateway
- channel
- provider
- task path
- approval path

commands run:
1.
2.
3.

rollback trigger:
result after rollback:
follow-up before next upgrade:</code></pre><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">OpenClaw is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[non-technical founders are building the wrong kind of ai worker first]]></title><description><![CDATA[how to turn any openclaw job title into a usable worker pack with sops, review gates, memory rules, and a github repo a non-technical operator will actually use]]></description><link>https://openclawunboxed.com/p/you-didnt-build-a-worker-you-named</link><guid isPermaLink="false">https://openclawunboxed.com/p/you-didnt-build-a-worker-you-named</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Sun, 12 Apr 2026 20:18:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dhBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dhBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dhBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dhBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81891,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/193999603?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd1184bd-9a25-4d97-8535-1f73ae4ee771_720x633.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dhBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dhBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333cb776-39de-4ca6-addb-fbe383e44483_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>a lot of non-technical beginners here think they need a better agent to really get sh*t done, as if that&#8217;s the core issue.</p><p>turns out they just needed a better job design.</p><p>that sounds like a small distinction. it really isn&#8217;t.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>a weak agent setup usually starts with a title. sales assistant. research assistant. support rep. the title feels like the hard part because it sounds like the job.</p><p>it&#8217;s not the job.</p><p>the real job is all the rules sitting behind that title. what counts as done, which source wins when records disagree, what gets drafted versus sent, what stays manual. then there&#8217;s the memory layer: what gets remembered, what never belongs in memory, what happens when the worker gets stuck. and the output contract: what format the deliverable must follow every single time.</p><p>when none of that is written down, the model fills the gap with pattern-matching.</p><p>that&#8217;s why the first few runs often feel close enough to useful.</p><p>then the drift shows up.</p><p>the worker pulls from the wrong source. it stores junk it should&#8217;ve left alone. drafts come back in the wrong voice, or the format keeps shifting, which turns review into its own job. approval gets asked for too late. the model acts sure when it should stop.</p><p>most people look at that mess and think the prompt needs work.</p><p>a lot of the time, the prompt isn&#8217;t the real problem.</p><p>the role was never written properly.</p><p>that&#8217;s what this repo is for.</p><p><em>not &#8220;build an ai employee.&#8221;</em></p><p>build the missing rule layer between a job title and a worker you&#8217;d trust around actual work.</p><h2>why this matters now</h2><p>openclaw readers have already told me what they want more of. not broad ai talk. not empty feature recaps. not community chatter as the main course.</p><p>tutorials, templates, inspectable examples, real workflows, trust-boundary clarity, and ways to actually make money with the stack.</p><p>this is exactly where it lands.</p><p>it gives a non-technical operator a way to choose a worker type, define the outcome in plain language, and generate the parts they forgot to ask for. scope and sops come first. review gates and memory rules follow. tool posture, source ranking, failure behavior, and deliverable format round it out.</p><p>that&#8217;s the real product.</p><p><em>not the model, not the role name, and not the vibe of having &#8220;agents.&#8221;</em></p><p><em>the pack.</em></p><h2>why openclaw is the right home for this</h2><p>openclaw already gives you stable places for rules, identity, tools, memory behavior, approvals, and browser posture instead of forcing everything into one giant prompt blob.</p><p>that matters more than people think.</p><p>if the operating rules only live in a long chat thread, they drift with the thread. putting them in files the worker sees every session gives you a much better shot at consistency.</p><p>openclaw also forces a cleaner conversation around trust. browser posture isn&#8217;t cosmetic. approval isn&#8217;t identity separation. a shared gateway isn&#8217;t the same thing as isolated delegated authority. one worker with broad access isn&#8217;t safer because it asked nicely first.</p><p>that pressure is useful. it nudges you toward policy instead of improvisation.</p><h2>the hidden mistake</h2><p>a lot of people start with a title and stop there.</p><p>&#8220;i want a sales assistant.&#8221;<br>&#8220;i want a support agent.&#8221;<br>&#8220;i want a research worker.&#8221;</p><p>what they usually need is a worker contract. not legal paperwork. operating paperwork.</p><p>what&#8217;s the worker allowed to do without asking. what always needs review. which systems count as source of truth. what happens when two sources disagree. what format should every output follow.</p><p>then there&#8217;s the longer tail. what belongs in long-term memory. what should never get promoted. what happens when the worker gets blocked. which files are append-only and which ones are untouchable. what the worker should never do, even if the request sounds reasonable.</p><p>normal employees pick up most of this from shadowing, habit, context, and social cues.</p><p>agents don&#8217;t.</p><p>if the rule isn&#8217;t written somewhere usable, the model fills the gap with whatever pattern feels most likely in the moment.</p><p>that&#8217;s why vague workers feel great in demos and expensive in real use. they&#8217;re improvising inside your blind spots.</p><h2>the better starting point</h2><p>if you&#8217;re non-technical, the first worker shouldn&#8217;t be an execution worker. it should be a packet worker.</p><p>that one distinction saves people a lot of pain.</p><p>an execution worker changes live systems. it sends messages, submits forms, moves files, edits records. a packet worker turns messy input into a clean review surface instead. meeting recap packets, sales follow-up drafts, support triage packets, research briefs.</p><p>the packet worker is usually the better first move because the output already wants review. that keeps the blast radius down. it also teaches you what the job really is before you start handing the worker live authority.</p><p>you don&#8217;t need fake autonomy on day one. you need boring review. once review gets boring, you&#8217;ve learned something real.</p><h2>what a worker pack actually does</h2><p>a worker pack closes the parts people forget to define. role, scope, source priority, review rules, memory rules, deliverable shape, failure behavior, tool posture, escalation path.</p><p>sounds dry until you compare the two outcomes.</p><p>one setup gives you a worker that &#8220;helps.&#8221; the other gives you a worker that produces the same class of output, in the same format, under the same rules, with a much smaller chance of drifting into the exact place you forgot to protect.</p><p>the gap between those two outcomes is the gap between novelty and something you&#8217;d actually rely on.</p><h2>what non-technical people usually forget to define</h2><p>the first miss is source priority. people say &#8220;follow up with leads.&#8221; they don&#8217;t say whether the crm beats the inbox, whether meeting notes beat the crm, or what the worker should do when the spreadsheet says one thing and the calendar says another. without that ranking, the worker guesses.</p><p>the second miss is output shape. people ask for help and get floating prose. what they needed was a repeatable packet with lead name, stage, last touch, recommended action, draft reply, fields to update, questions needing review, confidence, and memory candidates. once that shape stabilizes, review gets faster.</p><p>third is failure behavior. what should the worker do when a field is missing. what about when two sources conflict, when credentials fail, when the request implies a destructive action, when the output would leave the system and hit a real person. if you don&#8217;t write the failure path, the model usually keeps trying to be useful. that&#8217;s the trap.</p><p>fourth is memory discipline. people say they want the worker to remember everything. they don&#8217;t. they want the worker to remember durable facts and leave transient junk alone.</p><p>fifth is edit authority. what gets appended, what gets drafted, what gets proposed, what never gets modified, what&#8217;s reference-only, and what needs approval before any write.</p><h2>one concrete example</h2><p>say a founder wants a sales follow-up worker.</p><p>the weak version of the job sounds like this: read the inbox, find stale leads, draft follow-ups, update the crm, remember context.</p><p>that sounds complete until the worker starts making choices you never wrote down. what counts as stale. which pipeline stages are eligible. whether the crm or inbox wins on conflict. whether price talk needs review. whether the worker sends or only drafts. how many follow-ups are allowed before escalation. what gets stored to memory. which crm fields are append-only. what happens when contact history is incomplete. what the final review packet should look like.</p><p>the better version isn&#8217;t a better title. it&#8217;s a worker pack.</p><p><strong>scope:</strong> draft follow-up packets for leads in stages x and y only.</p><p><strong>source ranking:</strong> crm first for stage and owner, inbox first for last-response language, calendar first for recent meeting status.</p><p><strong>deliverable:</strong> one packet with lead summary, recommended next action, draft reply, crm fields to update, confidence, and unresolved conflicts.</p><p><strong>review gate:</strong> never send externally without approval.</p><p><strong>memory rule:</strong> store only durable buyer preferences, decision status, and firmographic facts. leave emotional tone from one thread out of memory entirely.</p><p><strong>failure behavior:</strong> if lead state conflicts across crm and inbox, stop and return a conflict packet instead of drafting.</p><p>the missing operating layer lives right there. the difference between an agent that &#8220;helps&#8221; and a worker you start trusting.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>what the repo actually ships extremely well</h2><h6>upgrading here gets you the exact build behind this article. deployable files, prompts, configs, install steps, hardening checklists, routing logic, and real workflows you&#8217;ll run, ship, or sell. the operator-grade assets.</h6><p>this repo &#128071; is called&#8230;</p><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/you-didnt-build-a-worker-you-named">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[your openclaw isn’t broken. it just doesn’t know you yet]]></title><description><![CDATA[reverse prompt your openclaw before you automate anything, then use that interview to find the first workflow you&#8217;ll finish instead of the 10th you&#8217;ll abandon]]></description><link>https://openclawunboxed.com/p/you-built-your-openclaw-so-now-what</link><guid isPermaLink="false">https://openclawunboxed.com/p/you-built-your-openclaw-so-now-what</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Fri, 10 Apr 2026 16:39:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CDAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CDAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CDAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CDAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31481,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/193806014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89bb6cc-58b1-4d95-b7c9-959d5ed01dcc_720x480.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CDAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CDAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e665220-2c34-4948-be1c-d6996e5961fa_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>the part that stalls most people doesn&#8217;t show up during install.</p><p>it shows up right after.</p><p>i know this for a fact because i&#8217;ve been chatting with all of you here in the substack inbox. it&#8217;s clear what&#8217;s going on. some of you knew that you needed openclaw because you&#8217;re in tune with what&#8217;s happening, but still don&#8217;t have a use case or a true north star. whether that be related to the industry you are in or outside of it i&#8217;m working to make that path more clear and expose those wedges/blue-ocean pathways for you guys one step at a time because ultimately it helps me in my openclaw work as well.</p><p>ok, so you got openclaw to reply. the stack feels alive. you finally have something real-ish on your machine. then you do what almost everyone does. you hand work to a system that still doesn&#8217;t know you. then you get pissed when it doesn&#8217;t work like you wanted it to.. got it!</p><p>it writes. it sorts. it summarizes. it gives you something back.</p><p>the result lands in the same dead middle every time.</p><p>usable. generic as hell. fine for a minute. annoying by the second pass.</p><p>that&#8217;s the cold start problem.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>the stack works. your direction doesn&#8217;t.</p><p>too much of the current conversation is pointed somewhere else right now entirely and it&#8217;s all a distraction to buy or use more sh*t. mythos. minimax. gemma. frontier model talk. local model talk. pricing talk. all of that matters. none of it at all fixes the first-week problem of an agent that still has to guess how you think.</p><p>that&#8217;s why the first serious workflow shouldn&#8217;t be a workflow.</p><p>it should be a discovery call.</p><p>before openclaw starts doing work for you, it should interview you until the guesswork starts dropping out of the loop.</p><p>not with five soft onboarding questions.</p><p>i mean a real discovery call.</p><p>how do you decide. what do you count as finished. what kind of output do you hate. what do you keep overcomplicating. what do you avoid because you know it drains you. what kind of task gives you real traction. what kind of task looks productive and quietly burns the week.</p><p>once that gets pulled out of you, the stack changes shape.</p><p>it stops feeling like a blank machine waiting for commands.</p><p>it starts feeling like something that points you toward the next move.</p><p>that part matters more than people think.</p><p>a field sales operator with passive meeting capture doesn&#8217;t need a fake autonomous company on day one. a higher-ed coordinator buried in back-and-forth doesn&#8217;t need ten agents and a dashboard before lunch. a novice with a secure install and no north star doesn&#8217;t need one more weekend of tool hopping.</p><p>they need one worker. one review point. one job worth finishing.</p><p>that&#8217;s where reverse prompting earns its keep.</p><p>open one direct-message session with openclaw that you&#8217;ll use only for your own operator profile.</p><p>then paste the prompt below exactly as written.</p><p>answer one question at a time in normal language. don&#8217;t try to answer everything at once. short honest answers are better than polished answers.</p><p>the goal of this session is not to automate anything yet. the goal is to teach openclaw how you think, what you care about, what kind of output you hate, and what kind of work is actually worth handing off.</p><p>if the interview feels too long, keep going. this first session is the setup work that makes later workflows less generic.</p><pre><code>i want you to run a full reverse-prompt discovery interview on me before we do any serious work.

treat this like a serious discovery call, onboarding process, and operator audit combined.

your job is to understand me well enough that future outputs stop feeling generic, repetitive, badly organized, or slightly off in the way they reason, structure, or prioritize.

follow these rules.

ask one question at a time.

don&#8217;t rush to summarize early.

don&#8217;t collapse categories together unless i tell you to.

when my answer is vague, shallow, incomplete, contradictory, or generic, push deeper.

when you notice a pattern, blind spot, tension, inconsistency, or missing detail, call it out and ask me to clarify.

don&#8217;t flatter me.

don&#8217;t shift into solution mode until the interview phase is done.

don&#8217;t write files yet.

collect first, synthesize second, then ask for my approval before saving anything.

optimize for accuracy, compression, and future usefulness inside openclaw.

the interview needs to cover these areas in depth.

identity and operating context

what i do.
what i am building.
what stage i am in.
what kind of operator i am.
what responsibilities i carry right now.
what my work environment looks like.
what constraints shape my decisions.
what i care about most right now.
what kind of work i want more of.
what kind of work i want less of.

current goals and north star

what i am trying to finish in the next 7 days.
what i am trying to finish in the next 30 days.
what i am trying to build over the next year.
what winning looks like for me.
what good enough looks like for me.
what i secretly wish was already solved.
where i feel the most drag.
what kind of progress gives me energy.
what kind of progress feels fake or empty.

cold start and traction

what i am most confused about right now.
what makes me freeze.
what makes me overbuild.
what makes me avoid starting.
what kind of tasks give me traction.
what kind of tasks kill traction.
how i usually decide what to work on.
how i know something is worth doing.
how i know something is a distraction.
where i tend to chase novelty instead of finishing.

decision framework

how i diagnose problems.
how i define the root problem.
how i separate symptoms from causes.
whether i want all options or a filtered recommendation.
how i think about tradeoffs.
how i think about downside risk.
what kind of evidence changes my mind.
when i trust intuition.
when i distrust intuition.
what makes a recommendation feel credible to me.
what makes a recommendation feel weak to me.
how i rank imperfect options.

output preferences

what kind of output i love.
what kind of output annoys me.
how i like information organized.
how much detail i prefer by default.
when i want step by step versus summary.
whether i like options mapped first or conclusion first.
whether i prefer bluntness or cushioning.
whether i want tradeoffs exposed or hidden.
what formats i keep rewriting by hand.
what repeated mistakes i keep fixing in ai output.
what phrases, tones, or structures i hate reading.

communication style and voice

how i naturally speak.
how direct i am.
how formal or informal i am.
how much humor i use.
whether i like fast, compressed writing or slower explanation.
what my writing sounds like when it is at its best.
what it sounds like when it is off.
whether i want my agent to sound like me, beside me, or cleaner than me.
what i never want it to sound like.
what verbal habits, rhythms, or patterns matter to how i communicate.

strengths, weaknesses, and blind spots

what i am unusually good at.
what i am unusually bad at.
what i avoid because i am weak at it.
what i overcomplicate.
what i underthink.
what i rush.
what i delay.
where i need support.
where i need challenge.
where i need the agent to slow me down.
where i need the agent to push me forward.

workflow and environment reality

what tools i use.
what environment i work in.
whether i am local, cloud, or hybrid.
what hardware matters.
what security boundaries matter.
what kind of data i do not want exposed.
what should stay manual.
what should stay draft-only.
what should never be automated.
what tasks are safe for read-only support.
what tasks are safe for recommendation support.
what tasks are safe for action only after explicit approval.

review, trust, and delegation

what i am willing to delegate.
what i am not willing to delegate.
what actions require approval every time.
what actions might graduate later.
what trust would need to be earned.
what kinds of errors are acceptable.
what kinds of errors are unacceptable.
what accountability looks like to me.
when the agent should ask.
when the agent should decide.
when the agent should stop and surface ambiguity.

memory and continuity

what is worth remembering long-term.
what is only useful for the current week.
what should be treated as a durable preference.
what should be treated as a temporary experiment.
what facts about me are stable.
what facts about me are changing.
what lessons should be kept after corrections.
what should never be written to memory.
what would make memory feel useful to me.
what would make memory feel polluted or annoying.

first workflow selection

after you fully understand me, ask enough questions to identify the best first workflow for me, the safest first workflow for me, the fastest proof-producing workflow for me, the most motivating workflow for me, and the workflow i should avoid right now.

once the interview ends, do not save anything yet.

produce these drafts for approval.

draft one

for SOUL.md.
include tone, directness, style, behavioral feel, bluntness, and boundaries.

draft two

for USER.md.
include who i am, what i care about, what i am building, what context matters, and how you should address me.

draft three

for AGENTS.md.
include session startup, red lines, decision framework, recommendation format, output standards, review and approval rules, correction loop, and workflow selection rules.

draft four

for MEMORY.md.
include long-lived facts, stable preferences, durable decisions, and lasting constraints.

draft five

for memory/YYYY-MM-DD.md.
include current projects, current blockers, short-lived context, and open loops.

draft six

give me the best first workflow to build, the best second workflow to test later, one thing that should remain manual for now, one thing that should remain draft-only for now, and four next best actions for the next 7 days ranked by likelihood i will follow through.

synthesis rules

compress hard.
remove fluff.
preserve meaning.
separate stable from unstable information.
separate voice from decision logic.
separate durable memory from current-session residue.
do not write secrets into memory unless i explicitly ask.
do not save anything until i approve each draft.
after i approve, write each draft to the correct file and then read back what you saved.

once the interview is done, save it cleanly.

keep voice, tone, directness, style, and behavioral feel in SOUL.md.

keep who you are, what you&#8217;re building, your stable context, and how the agent should address you in USER.md.

keep your actual operating system in AGENTS.md.

use these section names.

session startup

red lines

decision framework

recommendation format

review and approval rules

correction loop

workflow selection rules

keep long-lived facts, durable preferences, stable constraints, and lasting decisions in MEMORY.md.

keep current blockers, open loops, active experiments, short-lived context, and today&#8217;s residue in memory/YYYY-MM-DD.md.

if you want the profile to hold up better across long sessions, keep context injection on and set post-compaction sections to session startup, red lines, and decision framework.</code></pre><p>the next block is not a chat prompt. it goes in your openclaw config file if you want this profile to stick better across long sessions. if you don&#8217;t use a custom config yet, skip it for now. openclaw reads the config from <code>~/.openclaw/openclaw.json</code><strong>. </strong></p><pre><code>{
  agents: {
    defaults: {
      contextInjection: &#8220;always&#8221;,
      compaction: {
        postCompactionSections: [
          &#8220;Session Startup&#8221;,
          &#8220;Red Lines&#8221;,
          &#8220;Decision Framework&#8221;
        ]
      }
    }
  }
}</code></pre><p>here&#8217;s what those files mean in plain english.</p><p>SOUL.md holds tone, voice, bluntness, and behavioral feel.</p><p>USER.md holds who you are, what you&#8217;re building, and how the system should address you.</p><p>AGENTS.md holds the rules for how the agent should think, recommend, ask, stop, and review.</p><p>MEMORY.md holds durable facts and preferences that should stay useful over time.</p><p>memory/YYYY-MM-DD.md holds short-lived context, blockers, and current work that will change soon.</p><p>the routing lines work the same way.</p><p>stronger model means deep reasoning, synthesis, and hard choices.</p><p>cheaper model means repeat drafting, sorting, and low-risk cleanup.</p><p>local model means the data stays on your machine.</p><p>if your openclaw setup cannot save files yet, still run the interview. review the drafts in chat first, then save them manually later.</p><pre><code>then verify the save.

ask the agent to read back what it saved, file by file, and explain why each item belongs there.

ask it which facts it treated as durable and which it treated as temporary.

ask it to restate your top red lines, your decision framework, and the kind of output you hate most.

after a long session, ask again.

if it misses those, the profile is still too fuzzy or the file split is too sloppy.

then run this second prompt.

based on everything you now know about me, give me four next best actions for the next 7 days.

each action needs to be realistic, useful, and small enough to finish.

rank them by likelihood i will follow through, not by how impressive they sound.

tell me which one belongs on a stronger model, which one belongs on a cheaper model, and which one should stay manual until i understand the stack better.

use the strongest lane once for the interview and synthesis.

use the cheaper lane for repeated drafting and sorting.

keep the local lane for data you don&#8217;t want leaving the machine.</code></pre><p>that&#8217;s the cleaner routing rule.</p><p>the right first workflow is usually boring.</p><p>for field sales, start with a transcript-to-action packet. pull a meeting in, turn it into a useful summary, draft the follow-up, add the crm note, then stop for review before anything leaves the system.</p><p>for a higher-ed coordinator, start with a scheduling packet. take one messy thread, turn it into a clean status view, draft the reply, flag what&#8217;s missing, then stop before anything gets sent.</p><p>for the novice with a secure install and no clear north star, start with a decision brief. put one question in, get a structured answer back, look at the tradeoffs, choose one next move, and stop there.</p><p>that&#8217;s where the cold start feeling starts to break.</p><p>once openclaw understands the operator, the next move stops feeling abstract. you stop asking a vague question about automation and start asking something much better.</p><p>what&#8217;s the smallest workflow i&#8217;d finish this week?</p><p>there is a limit here, and it matters.</p><p>a better interview won&#8217;t rescue weak trust boundaries, bad permissions, a messy workspace, or a terrible workflow choice. if the wrong tools are exposed, if the files are chaos, or if you&#8217;re trying to automate something high-stakes before you understand the review points, this won&#8217;t save you.</p><p>but for the question that hits right after install, this is one of the highest-value first sessions you can run.</p><p>because the first thing most people need from openclaw isn&#8217;t more action.</p><p>it&#8217;s a better starting gun.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p><em>upgrading here welcomes you to the team and gets you the operator level stuff + github repo. one of this weekend&#8217;s paid subscriber pieces is the openclaw employee handbook, where you set expectations, write the sops, decide what earns trust, and activate your new hire for multi-modal work. i&#8217;m not telling you to upgrade, there are many of you that shouldn&#8217;t yet.</em></p><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/you-built-your-openclaw-so-now-what">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[the ai lane worth getting into before it gets major crowded]]></title><description><![CDATA[why private ai operations look early.. because it is.]]></description><link>https://openclawunboxed.com/p/the-ai-lane-worth-getting-into-before</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-ai-lane-worth-getting-into-before</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 07 Apr 2026 19:50:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ByiP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ByiP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ByiP!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 424w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 848w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 1272w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ByiP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5311770,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/193503219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ByiP!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 424w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 848w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 1272w, https://substackcdn.com/image/fetch/$s_!ByiP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb721d765-5508-41a8-b2ce-96df31033d83_1200x630.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most that are trying to get ahead in ai are learning the visible layer.</p><p>prompt habits. model picks. chat workflows. whatever trick is getting screenshotted this week essentially.</p><p>that&#8217;s fine.. it&#8217;s also crowded.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>the better bet sits lower in the stack</strong></p><p>learn how ai runs inside a real environment. learn where the model belongs, what data should stay put, where review has to stay, and when a handoff to a stronger hosted model makes sense instead of becoming lazy default behavior.</p><p>that work still feels early because the label hasn&#8217;t settled, even though the need already has.</p><p>some teams call it private ai infrastructure. some treat it like internal ai systems. other teams lump it into edge inference, secure copilots, or local plus cloud routing. the wording moves around. the work doesn&#8217;t.</p><p>google has already built around this reality. its distributed cloud air-gapped offering is built for disconnected environments and supports on-prem ai services such as speech-to-text, translation, and ocr. google also wrote about the same stack being used during mobility guardian for transcription, translation, summarization, and related edge workloads in a disconnected setting. that tells you where this is headed. the useful question is no longer whether ai matters. the useful question is where this runs, under which boundary, with whose approval, and what happens when the answer is wrong.</p><p><strong>that&#8217;s the lane i&#8217;d be chasing</strong></p><p>not generic ai fluency. not &#8220;i know the tools.&#8221;</p><p>the person who knows where the model should live, what context belongs in scope, what stays local, and where a human still owns the last move.</p><p>that person gets harder to ignore once a company stops playing with demos and starts wiring ai into work somebody cares about.</p><p><strong>what this looks like up close</strong></p><p>the strange part is how unglamorous most of this looks up close.</p><p>you end up in transcript cleanup, document intake, routing rules, review gates, boundary mistakes, bad defaults, memory mess, retries, logging, and permissions. no one posts a victory lap because they fixed a handoff problem between a local model and a hosted one. no one looks cool explaining why an agent should stop before touching the crm.</p><p>but that&#8217;s the part that survives.</p><p>a flashy demo buys attention. a boring system that behaves buys trust.</p><p><strong>the first build i&#8217;d make</strong></p><p>if i were starting from zero and wanted a strong first proof of work, i wouldn&#8217;t build a fake ai employee. i&#8217;d pick one ugly job and make the thing hold.</p><p>the first build i&#8217;d make is a private meeting-to-action pipeline.</p><p>audio comes in from calls, meetings, or voice notes. speech-to-text runs locally. the raw transcript stays on hardware i control. a smaller local model cleans the transcript, pulls out tasks, owners, deadlines, and the parts people still disagree on. only the last synthesis step goes up to a stronger hosted model, and only when the output is worth the spend. nothing gets pushed into email, a ticket system, or a crm until a human signs off.</p><p>now there&#8217;s something real on the table.</p><p>a cleaned transcript</p><p>action packet</p><p>task list with owners</p><p>visible approval point</p><p>a routing choice somebody else can inspect.</p><p>that says more about your future value than a folder full of prompt screenshots.</p><p>speech is a strong first wedge for a reason. google is already selling on-prem speech and translation inside secure environments. that matters because it shows the market is not waiting for some perfect future category name before buying the work. it is already buying pieces of the stack.</p><p><strong>the useful career move</strong></p><p>the useful career move isn&#8217;t becoming the smartest person in the room about models.</p><p>the useful move is stranger than that.</p><p>get comfortable with the layer under the model.</p><p>learn enough linux so the box stops feeling hostile. learn enough docker so a service doesn&#8217;t feel magical. run a local runtime long enough to watch what happens when context gets sloppy, latency creeps up, or the workflow starts touching files and state instead of a clean prompt window. then write down what broke.</p><p>that last part matters more than people admit. the good portfolio artifact is rarely the polished screenshot. it&#8217;s the routing decision, the approval step, the trust boundary, and the failure notes that prove you know what happens once real work hits the system.</p><p><strong>where openclaw fits</strong></p><p>openclaw&#8217;s docs frame the gateway as the source of truth for sessions, routing, and channel connections. the docs are also direct about trust. one gateway assumes one trusted operator boundary. that is not the same thing as a safe shared-user environment with clean per-user isolation. the local path is straightforward too, with local-only models supported so data can stay on device, and the docs point to ollama and other local model options as part of that path.</p><p>when you look at openclaw through that lens, the value gets clear</p><p>less magic</p><p>more control</p><p>less of the theater</p><p>more routing, state, review, and explicit boundaries.</p><p><strong>the career lesson hiding in that</strong></p><p>a lot of people still confuse &#8220;works&#8221; with &#8220;safe enough.&#8221;</p><p>those are not the same thing.</p><p>the builder who spots that difference early ends up closer to the work that matters once legal, security, ops, or a real customer enters the room. that builder is the one explaining why a shared agent with broad tool access is a mess, why a local first pass saves money and exposure, or why a human review step belongs between model output and system action.</p><p><strong>who should avoid this lane</strong></p><p>still, this lane is not for everyone.</p><p>some people hate logs. some hate permissions work. some hate cleanup. some want the thrill of the interface and none of the burden underneath it. fair enough. this path has a lot of friction once the work stops being a clean toy and starts behaving like software in the wild.</p><p>but for the people who don&#8217;t mind the messy part, this still looks early enough to matter.</p><p><strong>why i&#8217;d still bet on it</strong></p><p>the tools will get better. the titles will settle. the crowd will get louder.</p><p>right now there&#8217;s still room for the person who learns how to make ai run where it should run, stay inside the boundary it was given, and stop before the risk shifts to a human who never agreed to clean up the aftermath.</p><p>that&#8217;s where i&#8217;d start.</p><h6><em>upgrading gets you the exact build behind articles: deployable files, prompts, configs, install steps, hardening checklists, routing logic, and real workflows you&#8217;ll run, ship, or sell.</em></h6><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[the acp-first claude code bridge openclaw users need now]]></title><description><![CDATA[how to wire claude code into openclaw right now, where the cli fallback still fits, and why tmux + telegram belongs above the core instead of inside the middle]]></description><link>https://openclawunboxed.com/p/the-acp-first-claude-code-bridge</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-acp-first-claude-code-bridge</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 07 Apr 2026 00:00:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6yw7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6yw7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6yw7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6yw7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png" width="1536" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1875572,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/193408740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43084809-7904-47e2-b137-df4e0c8e35a5_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6yw7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!6yw7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc517536-88f3-471c-9f73-a2b2409f907b_1536x804.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>anthropic didn&#8217;t kill the path.</p><p>they honestly just forced a cleaner split.</p><p>openclaw&#8217;s current docs now describe the anthropic side in three lanes.</p><p>api key gives you the clearest billing story and the least ambiguity for a long-lived gateway.</p><p>claude cli reuse on the same host is treated as sanctioned again, and openclaw now prefers that path when available.</p><p>legacy token profiles still work if you already have them, but they are no longer the path i&#8217;d center a fresh build on.</p><p>that changes the build.</p><p>a lot of people saw the billing change, saw claude code getting stronger, and reached for the wrong center. they started sketching tmux rigs, telegram relays, and terminal-first bridges.</p><p>i wouldn&#8217;t try to turn openclaw into claude code.</p><p>i&#8217;d keep openclaw in front.</p><p>i&#8217;d put claude code behind openclaw for repo work.</p><p>i&#8217;d use acp as the bridge.</p><p>that split is the part people keep blurring.</p><p>openclaw still owns the front door. telegram. discord. imessage. slack. the bindings, delivery, and memory conventions that make the whole system useful from any of those channels.</p><p>claude code should own repo work. shell work. file edits. test runs. codebase reasoning. long coding turns where claude code as the execution layer beats a generic agent loop.</p><p>acp is the structured link between those two jobs: the protocol that keeps a live, persistent session open between openclaw and claude code. instead of firing off one message and waiting, the session stays connected, returns structured output, and remembers where the task left off.</p><p>that is the center i&#8217;d build around today. tmux, telegram, and the cli fallback all have a place. none of them belong in the middle.</p><h2>where each path fits</h2><p>acp is the main path for this build.</p><p>openclaw&#8217;s acp docs are direct about that. if you want claude code, codex, gemini cli, or another external coding agent running through openclaw, acp is the intended route. fresh installs ship with acpx, openclaw&#8217;s built-in acp runtime, enabled by default. start with:</p><pre><code>/acp doctor
/acp spawn claude</code></pre><p>then keep working inside the bound conversation or thread.</p><p>the cli backend still matters.</p><p>openclaw has a cli backend: a lighter, text-only mode that runs models without the full persistent session layer. the docs call that runtime a fallback on purpose. conservative. fewer moving parts. that path still earns a place when auth is messy or when you need the smallest thing to debug. still the wrong center if the real goal is claude code doing bound repo work behind openclaw.</p><p>remote control solves a different problem.</p><p>one machine. one live claude code session. you walk away from the desk and want the same local session from your phone or browser. remote control does that cleanly. claude keeps running on your machine. your filesystem stays local. your local mcp servers stay local. the browser or phone becomes a window into the same session.</p><p>channels sit even higher.</p><p>channels are the event-push lane into a running claude code session. telegram, discord, and imessage are included in research preview. channels still need claude.ai login and do not work with console or api key auth. channels are the more native answer to event push than a raw tmux bridge. but channels are not the bridge between openclaw and claude code. they are an operator lane.</p><p>tmux plus telegram still has value.</p><p>you get scrollback. reattach. a visible host-side console. something familiar on your phone.</p><p>but a tmux-first build teaches the wrong habit. state gets inferred from terminal output. parsing gets brittle. ansi junk leaks into the loop. the terminal becomes a poor man&#8217;s protocol.</p><p>that&#8217;s the trap.</p><p>keep tmux above the stack. use telegram for phone-first operator access. don&#8217;t put either one in the middle and call that architecture.</p><h2>the first operator i&#8217;d build this for</h2><p>not a team trying to write a whitepaper.</p><p>not someone farming novelty.</p><p>a solo builder on a mac mini or linux box. openclaw already lives in telegram. there is one repo on the same host. they want to drop a scoped code task from a phone, let claude code do the repo work, and get back something reviewable instead of vague terminal chatter.</p><p>builder-heavy, operator-heavy, local or hybrid, impatient with fluff. they want tutorials, templates, and real workflows. setups that hold up.</p><p>so give that reader one loop worth picturing.</p><p>there is a telegram topic called build queue. openclaw sits in that topic. claude code gets bound into that topic through:</p><pre><code>/acp spawn claude --bind here</code></pre><p>the operator drops a task like this:</p><pre><code>inspect the failing test in packages/api. keep the patch minimal. run the focused test only. return changed files, commands run, remaining risk, and next action.</code></pre><p>claude code does the repo work. openclaw keeps the thread, the delivery, and the operator reach.</p><p>the result is not &#8220;done.&#8221;</p><p>the result is a reviewable patch summary, touched files, commands run, remaining risk, and the next move, all in the same thread where the work started.</p><h2>what the first ten minutes look like</h2><p>install openclaw and claude code on the same host.</p><p>run:</p><pre><code>claude auth login</code></pre><p>on that host.</p><p>if you want openclaw to reuse that login for anthropic-backed runs, run:</p><pre><code>openclaw models auth login --provider anthropic --method cli --set-default</code></pre><p>this build ships a setup wizard here &#128071;</p><p></p>
      <p>
          <a href="https://openclawunboxed.com/p/the-acp-first-claude-code-bridge">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[the claude leak made one thing harder to ignore]]></title><description><![CDATA[what openclaw users should steal from claude code, what to ignore, and where openclaw still gives you a better control layer]]></description><link>https://openclawunboxed.com/p/the-claude-leak-made-one-thing-harder</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-claude-leak-made-one-thing-harder</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Sat, 04 Apr 2026 04:19:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hZMk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hZMk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hZMk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 424w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 848w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 1272w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hZMk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png" width="640" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66130,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/193136956?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd35de943-f0b9-4a9f-afa0-09c024c1b8fe_640x853.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hZMk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 424w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 848w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 1272w, https://substackcdn.com/image/fetch/$s_!hZMk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615c30e4-88df-4d55-9f48-be04adadaf52_640x335.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>so on march 31, anthropic pushed claude code v2.1.88 to npm with a cli.js.map file left inside the package. anthropic said it was a &#8220;release packaging mistake&#8221; caused by human error, not a breach, and that no customer data or credentials were exposed. the security company zscaler&#8217;s analysis put the exposed code at roughly 513,000 lines across 1,906 files. what got exposed wasn&#8217;t model weights or user data. it was a huge amount of the client-side harness around claude code. a part of me actually thinks it was intentionally.. but that&#8217;s just me lol. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>most of the public reaction to the leak has been mainly junk. too much of it has been people gawking at internal names, novelty features, or the usual closed-source drama bait. the better read here is much less theatrical. the leak made the harness legible. it showed how much of a strong coding agent lives in orchestration, tool loops, permissions, context handling, and execution policy.</p><p>none of that should have been shocking if you were already paying attention to anthropic&#8217;s public docs. claude code already documents subagents that run in their own context windows with custom prompts, specific tool access, and independent permissions. it already documents built-in subagents like explore and plan, and positions subagents as a way to preserve context, enforce constraints, and control costs.</p><p>the leak didn&#8217;t suddenly reveal that agent products are becoming control systems. it just made that harder for people to ignore.</p><p>that matters for openclaw users because openclaw&#8217;s strongest angle still isn&#8217;t &#8220;we also have agents.&#8221; it&#8217;s that more of the layer around the model is inspectable, explicit, and easier to reason about when something goes sideways.</p><p>openclaw&#8217;s memory docs make that concrete. durable memory lives in workspace files like memory.md, and daily notes live in memory/yyyy-mm-dd.md. those files sit in the agent workspace instead of disappearing into a black box. if you care about auditability, cleanup, backups, migration, or just knowing why the agent keeps carrying something forward, that&#8217;s a real difference. plenty of products feel smart right up until you need to inspect what they remembered, where it came from, or how to clean it up.</p><p>the same split shows up in repeated work. openclaw&#8217;s lobster docs describe a workflow shell that runs multi-step tool sequences as a single deterministic operation with approval checkpoints and resumable state. that&#8217;s a much better answer to recurring operator work than keeping the same administrative choreography inside a frontier-model loop forever. once a workflow settles down, you usually want less improvisation and fewer paid reasoning turns, not more.</p><p>that&#8217;s also where the claude code versus openclaw framing starts to get sloppy. claude code is still the more polished coding-first harness. if the task is deeply code-centric, claude code is often the right place to do it. openclaw gets more interesting when the job is bigger than one coding session and the real value sits in the layer around the model: memory you can inspect, approvals you can trace, session continuity, routing, and a way to narrow repeated work into something deterministic.</p><p>for some operators, the strongest stack won&#8217;t be openclaw instead of claude code. it&#8217;ll be both.</p><p>openclaw already documents a gateway-backed acp bridge that keeps acp sessions mapped to gateway session keys. that means claude code can handle the coding-heavy part while openclaw sits around it as the broader operator shell when tighter session routing, approval boundaries, or more deliberate orchestration matter. but that comes with a real tradeoff. openclaw also documents that acp sessions run on the host runtime, not inside the openclaw sandbox. using openclaw to orchestrate claude code doesn&#8217;t shrink a trust boundary. it extends one.</p><p>that&#8217;s why openclaw&#8217;s security docs matter more than the usual feature chatter here. they&#8217;re unusually direct. running one gateway for multiple mutually untrusted operators is not the recommended setup. session ids and session keys are routing selectors, not authorization tokens. if several people can message one tool-enabled agent, they are steering the same permission set. that&#8217;s exactly the kind of language you want from an agent platform because it forces you to think about delegated authority before you start pretending you built multi-user ai.</p><p>if you include github references in the article, keep them in their lane.</p><p><a href="https://github.com/rosaboyle/awesome-cc-oss">rosaboyle/awesome-cc-oss</a> is the best repo to link as a map. its own disclaimer says it&#8217;s a curated collection of links and references for educational and archival purposes and that it does not host or distribute proprietary source code. that makes it useful as a reading hub. it does not make it a primary source for every technical claim people are making around the leak.</p><p>if you want to mention the raw archive, <a href="https://github.com/ringmast4r/claw-cli-claude-code-source-code-v2.1.88">ringmast4r/claw-cli-claude-code-source-code-v2.1.88</a> describes itself as an archived snapshot of claude code v2.1.88 and a research artifact for studying real-world ai agent systems. that&#8217;s fine as a read-only reference point. it should not be framed as something readers should download, build, or run. zscaler says threat actors are already using &#8220;leaked claude code&#8221; repositories as social-engineering lures, and it explicitly advises people not to download, fork, build, or run repos claiming to be the leaked claude code.</p><p><strong>the post-leak operator checklist</strong></p><p>if you&#8217;re building with openclaw, ask these now:</p><ul><li><p>where does durable memory actually live?</p></li><li><p>what gets written on purpose, and what only feels remembered?</p></li><li><p>after a bad run, what can you inspect without guessing?</p></li><li><p>which repeated workflow is still wasting expensive model turns?</p></li><li><p>should this task stay inside claude code, or should openclaw own the control layer around it?</p></li><li><p>if you wrap another harness with openclaw, what trust boundary did you just extend?</p></li></ul><p>that&#8217;s the practical short read on this leak. it wasn&#8217;t useful because it exposed drama. it was useful because it made the shape of the harness way harder to ignore, and oc is still one of the more interesting places to build if you care about owning the layer where memory, approvals, routing, replay, and delegated authority actually live.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[the layer openclaw builders should care about next]]></title><description><![CDATA[why minified json between agents matters more than another giant prompt]]></description><link>https://openclawunboxed.com/p/the-layer-openclaw-builders-should</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-layer-openclaw-builders-should</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 31 Mar 2026 19:26:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NDbU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f83d64-e1c8-427c-977f-fcceece59cc3_300x300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6ur2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 424w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 848w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 1272w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6ur2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png" width="567" height="297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35afdc17-99e6-4651-89ff-156696047c8c_567x297.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:297,&quot;width&quot;:567,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27454,&quot;alt&quot;:&quot;Claude Code $200 plan limit reached and cooldown for 4 days : r/ClaudeAI&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Claude Code $200 plan limit reached and cooldown for 4 days : r/ClaudeAI" title="Claude Code $200 plan limit reached and cooldown for 4 days : r/ClaudeAI" srcset="https://substackcdn.com/image/fetch/$s_!6ur2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 424w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 848w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 1272w, https://substackcdn.com/image/fetch/$s_!6ur2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35afdc17-99e6-4651-89ff-156696047c8c_567x297.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most people are still spending their best model on the wrong part of the stack.</p><p>the human asks in natural language.<br>one agent rewrites the request in natural language.<br>another agent summarizes it in natural language.<br>a third agent explains what it plans to do in natural language.<br>then someone has to read a wall of text and figure out what changed.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>that is not orchestration.</p><p>that is expensive narration.</p><p>for openclaw builders, the stronger move is smaller.</p><p>natural language for the human.<br>structured state for the machine.<br>natural language again at the edge where a person needs to review, approve, or act.</p><p>that pattern fits openclaw unusually well because openclaw already behaves more like a control plane than a chat box. the official docs describe the gateway websocket protocol as the single control plane and node transport, with typebox schemas defining the protocol surface and driving runtime validation. your own source docs also frame openclaw around routing, control, repeatable workflows, and operator judgment, not generic ai chatter.</p><p>that matters because once the job is known, prose becomes waste.</p><p>if the planner already knows the task is &#8220;find late orders, score the risk, draft follow-up for the high-risk ones, hold for review,&#8221; the next worker does not need a motivational speech. it needs a compact object with task, inputs, constraints, and required output.</p><p>something like this:</p><pre><code>{&#8221;task&#8221;:&#8221;late_order_triage&#8221;,&#8221;goal&#8221;:&#8221;identify this week&#8217;s at-risk orders and prepare follow-up drafts&#8221;,&#8221;inputs&#8221;:{&#8221;sources&#8221;:[&#8221;gsheet_factory_orders&#8221;,&#8221;salesforce_accounts&#8221;,&#8221;drive_vendor_threads&#8221;]},&#8221;constraints&#8221;:{&#8221;ship_window&#8221;:&#8221;7d&#8221;,&#8221;draft_for&#8221;:&#8221;high_risk_only&#8221;,&#8221;review_required&#8221;:true},&#8221;required_output&#8221;:{&#8221;at_risk_orders&#8221;:true,&#8221;reasons&#8221;:true,&#8221;drafts&#8221;:true},&#8221;route_next&#8221;:&#8221;retrieve&#8221;}</code></pre><p>that object is boring.</p><p>good.</p><p>boring is easier to diff.<br><br>boring is easier to validate.<br><br>boring is easier to retry.<br><br>boring is easier to route to a cheaper model.<br><br>boring is easier to turn into a repeatable workflow later.</p><p>openclaw already has pieces of this pattern. the docs show lobster running yaml and json workflows with args, steps, conditions, and approval fields. they also show schema-driven json extraction through llm-task, where you pass a prompt, an input, and a schema and get structured output back. that is a real clue about where serious builders should think next. not more narration between steps. more typed handoffs between steps. </p><p>this is also where the article gets more practical than theoretical.</p><p>say you run a messy business workflow across sheets, salesforce, docs, and vendor threads. that exact operator shape already shows up across your source stack. your audience is full of builders and operators trying to turn ugly work into inspectable systems, and your article system explicitly treats spreadsheet chaos, routing, cost control, approvals, and &#8220;what should stay manual&#8221; as core lanes.   </p><p>the old flow looks like this.</p><p>you ask the agent to find late orders.<br><br>the planner reads a huge context window.<br><br>the retriever writes a memo.<br><br>the scorer writes a memo about the memo.<br><br>the drafter writes a memo about the risk.<br><br>then you still have to read all of it and decide what matters.</p><p>the cleaner flow looks like this.</p><p>the human still speaks in normal language.</p><p>&#8220;find every order at risk of missing ship date this week, explain why, draft follow-up for the high-risk ones, and hold for approval.&#8221;</p><p>the compiler turns that into structured state.</p><pre><code>{&#8221;task&#8221;:&#8221;late_order_triage&#8221;,&#8221;goal&#8221;:&#8221;identify this week&#8217;s at-risk orders and prepare follow-up drafts&#8221;,&#8221;inputs&#8221;:{&#8221;sources&#8221;:[&#8221;gsheet_factory_orders&#8221;,&#8221;salesforce_accounts&#8221;,&#8221;drive_vendor_threads&#8221;]},&#8221;constraints&#8221;:{&#8221;ship_window&#8221;:&#8221;7d&#8221;,&#8221;draft_for&#8221;:&#8221;high_risk_only&#8221;,&#8221;review_required&#8221;:true},&#8221;required_output&#8221;:{&#8221;at_risk_orders&#8221;:true,&#8221;reasons&#8221;:true,&#8221;drafts&#8221;:true},&#8221;route_next&#8221;:&#8221;retrieve&#8221;}</code></pre><p>the retrieval worker returns a delta, not a diary.</p><pre><code>{&#8221;task&#8221;:&#8221;late_order_triage&#8221;,&#8221;found&#8221;:12,&#8221;at_risk&#8221;:[&#8221;po184&#8221;,&#8221;po211&#8221;,&#8221;po233&#8221;],&#8221;missing&#8221;:[&#8221;vendor_eta_po211&#8221;],&#8221;route_next&#8221;:&#8221;score&#8221;}</code></pre><p>the scoring worker does the same.</p><pre><code>{&#8221;task&#8221;:&#8221;late_order_triage&#8221;,&#8221;risk_scores&#8221;:{&#8221;po184&#8221;:&#8221;high&#8221;,&#8221;po211&#8221;:&#8221;medium&#8221;,&#8221;po233&#8221;:&#8221;high&#8221;},&#8221;reasons&#8221;:{&#8221;po184&#8221;:&#8221;supplier_delay&#8221;,&#8221;po211&#8221;:&#8221;missing_eta&#8221;,&#8221;po233&#8221;:&#8221;inventory_gap&#8221;},&#8221;route_next&#8221;:&#8221;draft&#8221;}</code></pre><p>the drafting worker stays narrow too.</p><pre><code>{&#8221;task&#8221;:&#8221;late_order_triage&#8221;,&#8221;drafts_ready&#8221;:[&#8221;po184&#8221;,&#8221;po233&#8221;],&#8221;hold_reason&#8221;:&#8221;awaiting_human_review&#8221;,&#8221;route_next&#8221;:&#8221;review_packet&#8221;}</code></pre><p>only at the end do you turn it back into normal language for a human.</p><p>two high-risk orders need review.<br><br>one medium-risk order is blocked on missing vendor eta.<br><br>drafts are ready for po184 and po233.<br><br>review before send.</p><p>that is cheaper.<br><br>that is easier to inspect.<br><br>that is easier to test.<br><br>that is easier to move across model tiers.<br><br>that is easier to cache.<br><br>that is easier to route into lobster once the path stabilizes.</p><p>this is the part most people miss.</p><p>minified json is not the point.</p><p>transport discipline is the point.</p><p>json is only useful because it forces a better question:</p><p>what exactly does the next step need</p><p>not:<br><br>what is the prettiest way for one model to explain itself to another</p><p>that shift also makes review boundaries cleaner. when a worker returns structured state, the approval point becomes obvious. you review fields. you review flags. you review missing values. you review the route decision. you review the outbound draft at the end. that fits openclaw&#8217;s actual trust model better than blind autonomy. the official security docs are blunt that openclaw assumes one trusted operator boundary per gateway, not hostile multi-tenant isolation, and your own source docs keep pushing hardening, review design, and what should stay manual as permanent editorial lanes.   </p><p>there is a limit here, and it matters.</p><p>this pattern is not a product claim.</p><p>the json objects in this article are illustrative transport examples, not native documented openclaw websocket frames. the actual gateway protocol has its own request, response, and event framing. this article is about a design pattern builders should apply inside their workflows, not a claim that openclaw already ships these exact internal envelopes. </p><p>there is another limit too.</p><p>over-compression creates its own problems.</p><p>compress too early and you hide context loss.<br><br>compress too hard and you make debugging worse.<br><br>let schemas drift and workers start failing in quieter ways.<br><br>and none of this rescues a bad trust boundary, polluted memory, weak permissions, or a workflow that never got clear in the first place.</p><p>so the rule is narrower than &#8220;convert everything into minified json.&#8221;</p><p>use natural language where ambiguity is still high.<br><br>use structured state where the task is already known.<br><br>use deterministic steps where the path is stable.<br><br>keep human review where money, outbound messaging, code changes, account access, or destructive action are involved.</p><p>that is the move.</p><p>not more natural language everywhere.<br><br>not bigger prompts everywhere.<br><br>not frontier reasoning for every repeated step forever.</p><p>natural language at the human boundary.<br><br>structured state inside the system.<br><br>deterministic flow where the work has matured.</p><p>for openclaw builders, that is one of the cleanest ways to stop paying for narration and start paying for actual work.</p><p>starter asset</p><p>here is the first compiler prompt i&#8217;d test:</p><pre><code>you are a transport compiler.

convert the user request into valid minified json for downstream workers.

rules:
- output json only
- include only fields needed for downstream execution
- remove filler, explanations, and restatement
- when a field is unknown, mark it missing instead of guessing
- set review_required to true for money, outbound messaging, code changes, account access, or destructive actions
- keep keys stable across runs
- prefer short enums and refs over repeated prose

schema:
{
  &#8220;task&#8221;: &#8220;&#8221;,
  &#8220;goal&#8221;: &#8220;&#8221;,
  &#8220;inputs&#8221;: {},
  &#8220;constraints&#8221;: {},
  &#8220;required_output&#8221;: {},
  &#8220;review_required&#8221;: false,
  &#8220;route_next&#8221;: &#8220;&#8221;
}</code></pre><p>and here is the simple test i&#8217;d run before building anything bigger:</p><p>pick one painful loop you already repeat.<br><br>lead triage.<br><br>supplier follow-up.<br><br>support intake.<br><br>meeting notes into action items.<br><br>research into a decision packet.<br><br>crm cleanup after a sales call.</p><p>then force the system through this rule:</p><p>the human speaks in normal language.<br><br>the compiler converts the request into structured state.<br><br>each internal worker receives only the fields needed for its step.<br><br>each worker returns only the delta it produced.<br><br>the final layer converts the result back into normal language for review.</p><p>that is where this gets real.</p><p>not when the agent sounds smarter.</p><p>when the handoffs get smaller.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><em>paid gets you the exact build behind this post: deployable files, prompts, configs, install steps, hardening checklists, routing logic, and real workflows you&#8217;ll run, ship, or sell. free gives you the model. paid gives you the operator-grade assets.</em></p>
      <p>
          <a href="https://openclawunboxed.com/p/the-layer-openclaw-builders-should">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[stop trying to build an ai employee right now]]></title><description><![CDATA[the smaller openclaw workflow that gets the first real business win, plus the github repo serious beginners can start with today, right now.]]></description><link>https://openclawunboxed.com/p/stop-trying-to-build-an-ai-employee</link><guid isPermaLink="false">https://openclawunboxed.com/p/stop-trying-to-build-an-ai-employee</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Sun, 29 Mar 2026 20:39:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dTyA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dTyA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dTyA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dTyA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92781,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/192541206?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c38fbb-b619-4653-be23-8173edb4728a_720x480.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dTyA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dTyA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d81e433-beb9-41d0-82ce-9cd0ea471148_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most openclaw builds start way too big</p><p>they start with the fantasy version.</p><p>one giant agent<br>one giant prompt<br>and a massive promise.</p><p>watch the inbox<br>run the business<br>follow up automatically<br>update every system<br>remember everything please</p><p>that&#8217;s usually the wrong first move 99% of the time no matter if it&#8217;s oc or cowork</p><p>the first real win is way smaller.</p><p>not &#8220;run the company.&#8221;<br>or &#8220;watch every inbox.&#8221;<br>or &#8220;handle every message.&#8221;<br>not &#8220;update every system.&#8221;</p><p>the first win is turning messy inputs into packets.</p><p>that sounds less impressive than the demos out there. it&#8217;s definitely not sexy.</p><p>good.</p><p>demos are where people overpromise. operators get paid when work gets smaller, cleaner, easier to review, and harder to lose.</p><p>here is the legit most simplest version, no bullsh*t.</p><p>before:<br>one sales call creates five loose follow-ups, two half-remembered tasks, one crm update nobody does, and one draft email that never gets sent.</p><p>after:<br>one transcript creates one packet you review in two minutes.</p><p>that packet holds the summary, the decisions, the action items, the draft follow-up email, and the crm note.</p><p>same work.<br>less leakage.<br>less chaos.<br>better odds.</p><p>that is the whole article.</p><p>the packet is the unit of business leverage.</p><h2>why this matters now</h2><p>the pattern inside real operator chatter is not &#8220;give me one giant agent that runs everything.&#8221; the workflows people keep praising are much narrower than that. meeting summaries that turn into action items. call assistants that qualify leads. automations that connect crm, notes, and recurring work without turning the whole business into a science project.</p><p>that lines up with the subscriber base here. the strongest demand in the source docs keeps clustering around first useful workflows, boring business leverage, role-specific real work, and paid drops with something inspectable inside. not theory. not vague ai commentary. not feature tours with no operator value.</p><h2>why openclaw fits this better than chat-only ai</h2><p>chat-only ai is fine for one-off help.</p><p>packet work needs more than one-off help.</p><p>it needs instructions that stick, a workflow runner, structured output, explicit review points, and a scheduler later when the pattern stabilizes.</p><p>openclaw&#8217;s current docs support that stack directly. the current setup guidance points new users to <code>openclaw onboard</code>. lobster is the documented workflow shell for multi-step sequences with approval gates and resumable state. <code>llm-task</code> is the optional json-only plugin step for structured outputs. cron is the built-in scheduler for recurring jobs once one line is stable. the current public release signal is 2026.3.28.</p><p>that matters because the useful shift is not &#8220;the ai got smarter.&#8221;</p><p>the useful shift is &#8220;the work got shaped.&#8221;</p><p>if the work is still buried in transcripts, follow-up, inbox mess, or spreadsheet cleanup, the better move is not a smarter prompt.</p><p>the better move is a smaller unit of work.</p><h2>what a packet is</h2><p>a packet is one small unit of work with:</p><p>source<br>intent<br>key facts<br>recommended next step<br>draft output<br>review status<br>destination</p><p>not a side effect.</p><p>not a giant context blob.</p><p>not another chat transcript you hope the model remembers next week.</p><p>a packet is the object to inspect before anything important happens.</p><p>that distinction sounds small.</p><p>it changes everything.</p><p>once work is packetized, the workflow stops asking the agent to &#8220;do the whole thing.&#8221;</p><p>it asks the system to shape the work first.</p><p>that is easier for a serious beginner to follow.<br>and it is still useful for an advanced reader because it shrinks the control surface, cleans up schemas, improves logging, and makes evals and approvals much easier later.</p><h2>the three packet lines worth building first</h2><h3>transcript to follow-up packet</h3><p>this is the cleanest first win for most teams.</p><p>the call already happened.<br>the transcript already exists.<br>the value leaks out in the handoff.</p><p>the workflow reads the transcript and produces one structured packet with:</p><p>a short summary<br>decisions that were made<br>clear action items<br>a draft follow-up email<br>a crm-ready note</p><p>that is it.</p><p>no autopilot.<br>no mystery.<br>no pretending the agent is now the sales team.</p><p>just one reviewable object with a <code>review_status</code> like <code>needs_review</code> and a destination like <code>owner_review_queue</code>.</p><p>this is the easiest line for a serious beginner to understand because everybody already knows what a missed follow-up costs.</p><p>for advanced users, it is still strong because it creates a tight schema-first workflow with a human approval boundary before any send or write.</p><h3>inbox batch to action packet</h3><p>not live gmail first.</p><p>batch first.</p><p>that detail matters.</p><p>openclaw does support gmail pubsub, but the documented path is still sharper than most beginners expect. the current guide calls for <code>gcloud</code>, <code>gog gmail watch serve</code>, and an exposed handler path, with the supported path built around tailscale funnel. the docs also mark custom public exposure as advanced and unsupported. that is real. it is also the wrong place to start if the goal is one first useful win.</p><p>so start with an inbox batch instead.</p><p>a small json file of messages goes in.</p><p>a packet comes out with:</p><p>classification per item<br>batch priority<br>draft reply suggestions where a reply is actually needed<br>task suggestions<br>calendar suggestions<br>escalation flags for billing, legal, security, or ambiguous items</p><p>the real value is not &#8220;the agent does email.&#8221;</p><p>the real value is that the inbox stops being one big blob and becomes shaped work.</p><h3>csv or crm row to exception packet</h3><p>this one looks boring.</p><p>that is part of the point.</p><p>a lot of businesses do not need more autonomy.<br>they need a cleaner way to find broken rows, missing fields, duplicates, contradictions, and weird records before those errors spread.</p><p>the input is a csv or exported row batch.</p><p>the output is an exception packet that shows which rows need attention, what is missing, what looks wrong, and what the normalized version should probably be, with a confidence rating per exception.</p><p>again, no fake magic.</p><p>just one reviewable object.</p><p>for advanced users, this is where packet thinking gets more interesting because the workflow gets cheaper, easier to audit, and easier to graduate later.</p><h2>what these terms mean in plain english</h2><h3>lobster</h3><p>the workflow runner.</p><p>openclaw&#8217;s docs describe workflow files with fields like <code>name</code>, <code>args</code>, <code>steps</code>, <code>condition</code>, and <code>approval</code>. the docs also show the approval and resume flow directly. that is why lobster fits here. one packet line becomes one controlled operation instead of a pile of improvised chat turns. lobster is optional, so the safe additive pattern is <code>tools.alsoallow: ["lobster"]</code>, and the <code>lobster</code> cli needs to be installed and available on path.</p><p>when lobster reaches an approval step, it pauses and returns a token.</p><p>to approve and continue:</p><pre><code>openclaw.invoke --tool lobster --action resume --args-json &#8216;{&#8221;token&#8221;: &#8220;paste_token_here&#8221;}&#8217;</code></pre><p>to reject and stop without saving:</p><pre><code>openclaw.invoke --tool lobster --action reject --args-json &#8216;{&#8221;token&#8221;: &#8220;paste_token_here&#8221;}&#8217;</code></pre><h3>llm-task</h3><p>the structured output step.</p><p>the docs describe <code>llm-task</code> as an optional plugin tool that runs a json-only llm task and returns structured output. every workflow in the repo passes a json schema for validation. treating validation as optional here means more packet drift. setup needs two steps. enable the plugin under <code>plugins.entries.llm-task.enabled</code>, then allowlist the tool for the agent.</p><p>one note on cost.</p><p>the repo ships with <code>"thinking": "low"</code> in the helper script. on models that bill for thinking tokens, each run adds thinking cost. if a cheaper first pass matters more than extra reasoning, open <code>bin/run_llm_task.py</code> and switch that value to <code>"none"</code>.</p><h3>cron</h3><p>the scheduler.</p><p>not the first thing to hand a beginner, but the right thing to add once one packet line is already boringly reliable. the docs describe cron as the gateway&#8217;s built-in scheduler, with persisted jobs under <code>~/.openclaw/cron/</code>, delivery modes, and isolated runs when needed.</p><h3>trust boundary</h3><p>who gets to do what.</p><p>this matters more than the workflow.</p><p>openclaw&#8217;s current docs are blunt here. gateway-authenticated callers are trusted operators for that gateway. exec approvals reduce accidental execution risk, but they are not a per-user auth boundary. the docs also warn that for agents or surfaces handling untrusted content, persistent control-plane tools like <code>gateway</code> and <code>cron</code> should be denied by default.</p><p>that is why this workflow starts with reviewable packets.</p><h2>what stays manual</h2><p>for v1, external email stays manual.</p><p>critical system writes stay manual.</p><p>destructive actions stay manual.</p><p>anything legal, medical, or financial with real downside stays manual.</p><p>and sloppy shared-team setups stay out.</p><p>that is not caution theater.</p><p>it is the cleaner operating model.</p><p>openclaw&#8217;s security posture still centers on one trusted operator boundary, not a safe mixed-trust shared boundary. the workspace is also the default working directory, not a hard sandbox unless sandboxing is enabled. that means the safe version is explicit about approvals, authority, and which boundary is trusted.</p><h2>what paid unlocks</h2><p>paid gets the full repo for this piece.</p><p>repo link &#128071;</p>
      <p>
          <a href="https://openclawunboxed.com/p/stop-trying-to-build-an-ai-employee">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[the feature quietly draining your openclaw stack]]></title><description><![CDATA[why heartbeat becomes leverage for some people and silent cost for everyone else, plus the calm starter pack i&#8217;d use first]]></description><link>https://openclawunboxed.com/p/the-feature-quietly-draining-your</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-feature-quietly-draining-your</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Fri, 27 Mar 2026 22:22:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ozEN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ozEN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ozEN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ozEN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png" width="1536" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:879759,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/192357789?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56f8b17-ee96-4c0e-8655-fe915904385b_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ozEN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 424w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 848w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 1272w, https://substackcdn.com/image/fetch/$s_!ozEN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42182ecd-d4e8-4044-bd8a-b31930b2bffb_1536x804.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>heartbeat is one of the easiest openclaw features to misread because it looks like free automation. it isn&#8217;t. it&#8217;s a recurring agent turn. use it well and it becomes a quiet monitoring loop. use it badly and it becomes background noise, silent spend, and one more thing you stop believing in.</p><p>heartbeat is not there to make openclaw feel alive.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>it&#8217;s there to notice drift before you do.</p><p>the second you treat heartbeat like a second brain, you start stuffing it with too much context, too many jobs, and too much trust. then the feature that should&#8217;ve made your stack calmer starts acting like a tiny recurring bill with opinions.</p><p><strong>what heartbeat is actually for</strong></p><p>the docs are much narrower than a lot of people assume.</p><p>heartbeat runs periodic agent turns in the main session. the default cadence is 30 minutes, or 1 hour when anthropic oauth or setup-token auth is detected. the default guidance is to read heartbeat.md if it exists and reply heartbeat_ok if nothing needs attention. the default delivery target starts at target: &#8220;none&#8221; unless you change it.</p><p>that should immediately change how you think about it.</p><p>heartbeat is not your exact-time scheduler.</p><p>heartbeat is not your deep research runner.</p><p>heartbeat is not the place to ask for a mini employee every 30 minutes.</p><p>the split is cleaner than most people make it.</p><p>heartbeat is for periodic, context-aware checks that batch well together.</p><p>cron (openclaw&#8217;s exact-time scheduler for isolated tasks) is for exact timing, reminders at a sharp time, or isolated tasks that should not lean on the main conversation.</p><p>if timing matters, use cron.</p><p>if awareness matters, heartbeat is usually the better fit.</p><p>the most useful mental model is this.</p><p>watch. check. escalate.</p><p>watch means look at a surface that changes.</p><p>check means compare it to a condition, threshold, or expectation.</p><p>escalate means speak up only when the difference matters.</p><p>a solo founder running a five-integration PA stack &#8212; gmail, google calendar, slack, notion, transcription &#8212; does not need heartbeat to be &#8220;smart.&#8221;</p><p>they need it to notice a few recurring surfaces without turning the stack into chaos.</p><p>in that setup:</p><p>a good heartbeat</p><ul><li><p>checks the next two hours of calendar</p></li><li><p>surfaces inbox threads that need human input</p></li><li><p>flags one blocked task</p></li></ul><p>a bad heartbeat</p><ul><li><p>tries to summarize the web</p></li><li><p>writes strategy memos</p></li><li><p>saves memory automatically</p></li><li><p>messages multiple channels every half hour</p></li></ul><p>the first version becomes leverage.</p><p>the second version becomes chaos.</p><p><strong>copy this first</strong></p><p>here&#8217;s the smallest heartbeat setup i&#8217;d start with before trying anything more ambitious.</p><p>three pieces:</p><ul><li><p>the instruction file</p></li><li><p>the config</p></li><li><p>two commands to confirm it loaded</p></li></ul><p><strong>step 1: create your heartbeat.md file</strong></p><p>in your openclaw project folder, create a new file called heartbeat.md.</p><p>if you&#8217;re not sure where that is, run:</p><p><code>openclaw config get project.path</code></p><p>paste this into the file and save it:</p><p><code>check inbox for messages that need me in the next 2 hours.</code></p><p><code>check calendar for conflicts or prep needed.</code></p><p><code>check pending tasks that are overdue or blocked.</code></p><p><code>if nothing matters, reply heartbeat_ok.</code></p><p><code>if something matters, send one short alert with:</code></p><p><code>- what changed</code></p><p><code>- why it matters</code></p><p><code>- the next action i should take</code></p><p>that&#8217;s the bare minimum. it gives heartbeat a job without overloading it.</p><p>if you have specific integrations connected like gmail, google calendar, slack, notion &#187; make those explicit.</p><p>heartbeat performs better when it knows exactly where to look:</p><p>check gmail for unread threads that need a reply from me in the next 2 hours.</p><p>check google calendar for meetings in the next 2 hours that need prep or have conflicts.</p><p>check notion for tasks marked overdue or blocked.</p><p>if nothing matters, reply heartbeat_ok.</p><p>if something matters, send one short slack alert with:</p><p>- what changed</p><p>- why it matters</p><p>- the one action i should take</p><p>swap in whichever tools you actually have connected.</p><p>a heartbeat that knows its tools is faster and cheaper than one guessing at them.</p><p><strong>step 2: add this to your openclaw config file</strong></p><p>your config file is called openclaw.yaml and lives in your project root.</p><p>add the heartbeat block under agents: defaults:.</p><p>before you paste:</p><p><strong>change america/new_york to your timezone.</strong></p><p><code>agents:</code></p><p><code>defaults:</code></p><p><code>heartbeat:</code></p><p><code>every: &#8220;60m&#8221;</code></p><p><code>model: &#8220;claude-haiku-3-5-20251001&#8221; # verify this matches your version</code></p><p><code>target: &#8220;none&#8221;</code></p><p><code>lightcontext: true</code></p><p><code>isolatedsession: true</code></p><p><code>activehours:</code></p><p><code>start: &#8220;08:00&#8221;</code></p><p><code>end: &#8220;20:00&#8221;</code></p><p><code>timezone: &#8220;america/new_york&#8221;</code></p><p>the model line matters.</p><p>heartbeat does not need your most capable model.</p><p>haiku-class models handle awareness checks cleanly at a fraction of the cost.</p><p>to verify available models:</p><p><code>openclaw models list</code></p><p><strong>step 3: confirm it loaded</strong></p><p>open your terminal.</p><p>run:</p><p><code>openclaw config get agents.defaults.heartbeat</code></p><p><code>openclaw system heartbeat last</code></p><p>the first confirms config.</p><p>the second confirms execution.</p><p>if both return clean output, you&#8217;re set.</p><p>that starter pack is deliberately conservative.</p><p>it gives you:</p><ul><li><p>a small loop</p></li><li><p>a lean context shape</p></li><li><p>a verification path</p></li></ul><p>before you start getting fancy.</p><p>the best heartbeat.md files are boring on purpose.</p><p>a good heartbeat file should feel almost too small.</p><p>heartbeat works best as a checklist, not a strategy document.</p><p><strong>why heartbeat gets expensive</strong></p><p>heartbeats are full agent turns.</p><p>at a 30-minute cadence with full context, a single turn can run roughly 2,000&#8211;4,000 input tokens before the model writes a word.</p><p>across a 12-hour window, that&#8217;s 24&#8211;48 turns.</p><p>the math compounds fast.</p><p>these settings matter:</p><ul><li><p>isolatedsession: true &#8594; avoids full conversation history</p></li><li><p>lightcontext: true &#8594; keeps bootstrap lean</p></li><li><p>smaller heartbeat.md &#8594; fewer tokens per run</p></li><li><p>cheaper model &#8594; lower per-turn cost</p></li></ul><p>this is where people get it wrong.</p><p>they try to make heartbeat smarter before they make it smaller.</p><p>that&#8217;s how you end up paying tokens to maintain noise.</p><p>one honest limit:</p><p>heartbeat is not the lane for everything.</p><ul><li><p>exact timing &#8594; use cron</p></li><li><p>deep work &#8594; use cron in isolation</p></li><li><p>structured workflows &#8594; use lobster</p></li></ul><p>heartbeat wins when the job is awareness, not ceremony.</p><p><strong>how to verify it&#8217;s working</strong></p><p>don&#8217;t trust heartbeat because it spoke.</p><p>trust it because you verified how it behaves.</p><p><strong>critical rule</strong></p><p>heartbeat_ok only works if placed at the start or end of the reply.</p><ul><li><p>openclaw strips it</p></li><li><p>drops delivery if under ackmaxchars (default 300)</p></li><li><p>ignores it if placed in the middle</p></li></ul><p>this is where most people get tripped up.</p><p>visibility controls:</p><ul><li><p><code>showok</code></p></li><li><p><code>showalerts</code></p></li><li><p><code>useindicator</code></p></li></ul><p>if all three are false:</p><p>heartbeat does not run at all.</p><p>silent &#8800; running.</p><p><strong>general health checks</strong></p><p><code>openclaw status</code></p><p><code>openclaw gateway status</code></p><p><code>openclaw logs --follow</code></p><p><code>openclaw doctor</code></p><p><code>openclaw channels status --probe</code></p><p><strong>heartbeat-specific checks</strong></p><p><code>openclaw cron status</code></p><p><code>openclaw cron list</code></p><p><code>openclaw system heartbeat last</code></p><p><strong>common skip reasons</strong></p><ul><li><p>quiet-hours &#8594; outside active window</p></li><li><p>requests-in-flight &#8594; system busy</p></li><li><p>empty-heartbeat-file &#8594; nothing actionable</p></li><li><p>alerts-disabled &#8594; suppressed output</p></li></ul><p>heartbeat failures often look like silence.</p><p>that&#8217;s why guessing wastes time.</p><p>the interesting part of heartbeat is not that it exists.</p><p>the interesting part is that it forces you to decide:</p><ul><li><p>what deserves recurring attention</p></li><li><p>what should stay manual</p></li><li><p>what is worth paying tokens to notice</p></li></ul><p>if you get it right:</p><ul><li><p>less noise</p></li><li><p>less waste</p></li><li><p>more trust</p></li></ul><p>if you get it wrong:</p><ul><li><p>more messages</p></li><li><p>more spend</p></li><li><p>less belief in the system</p></li></ul><p>the default rule is simple.</p><p>start with:</p><ul><li><p>one surface that changes</p></li><li><p>one condition that matters</p></li><li><p>one alert path you can review safely</p></li></ul><p>then earn your way into anything bigger.</p><p><strong>to start: </strong>drop in the config above, run the verification ladder, and watch one full cycle before you add anything.</p><p>if the cycle is clean and quiet, you&#8217;ve got a heartbeat worth building on.</p><p>the best heartbeat is usually boring.</p><p>it notices drift before drift becomes your job.</p><div><hr></div><p><strong>this is one piece.</strong></p><p><strong>sunday i&#8217;m dropping a full real-world build as a github repo inside the paid subscriber community here. full setup, prompts, configs, and assets for a system you can actually run.</strong></p><p><strong>if you&#8217;re tired of figuring this out alone, that&#8217;s where it goes deeper.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[the unstuck machine (save this)]]></title><description><![CDATA[the 6-step recovery system for when openclaw doctor, logs, and status still don&#8217;t tell you what actually broke]]></description><link>https://openclawunboxed.com/p/the-unstuck-machine-save-this</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-unstuck-machine-save-this</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Thu, 26 Mar 2026 20:43:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!h1pn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h1pn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h1pn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h1pn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47434,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/192245553?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60fba256-c8b4-480d-8fb8-7f4360248c83_720x576.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h1pn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h1pn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83feb08d-e18c-4947-891a-28da6076f79b_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">a real pic of you sitting there frustrated</figcaption></figure></div><p>most that i chat with privately here aren&#8217;t getting stuck in openclaw because the model is too weak.</p><p>they get stuck because their recovery model is weak or doesn&#8217;t even exist.</p><p>something breaks. they run doctor. they restart the gateway. they maybe blame the provider. then they lose an hour chasing the wrong surface.</p><p>that&#8217;s a huge trap</p><p>openclaw already gives you a better first ladder than most people use. the docs point you to openclaw status, openclaw status --all, openclaw gateway probe, openclaw gateway status, openclaw doctor, openclaw channels status --probe, and openclaw logs --follow as the first 60 seconds. that&#8217;s the clue. the real failure is often smaller and more boring than you&#8217;d expect. transport. policy. auth. workspace drift. not &#8220;the whole system is broken.&#8221;</p><p>if you&#8217;re reading this, you&#8217;re probably running openclaw on something real or trying to. a local box, a vps, a pi, a hetzner rig, something hybrid, something you&#8217;ve already sunk time into. and the same pressure points keep showing up: reliability, memory, setup confusion, security, environment fragmentation.</p><p>this is for when it breaks and you need to know where.</p><div><hr></div><h3>what doctor is, and what doctor isn&#8217;t</h3><p>doctor matters.</p><p>it can catch real config and service problems, recommend repairs, and even apply safe fixes or deeper repair flows when needed. but it&#8217;s still one sensor inside the recovery model, not the whole recovery model. the docs are clear that doctor supports safe migrations, repair paths, and deeper scans, not that it replaces judgment.</p><p>and that distinction matters more than it sounds, because of three things most people discover the hard way.</p><p><strong>auth isn&#8217;t one surface.</strong> credentials aren&#8217;t shared automatically across agents. each agent has its own auth profile under its own directory. so when one agent works and another fails, the easy explanation is &#8220;openclaw is inconsistent.&#8221; the real explanation is usually simpler: you&#8217;re not looking at one auth surface. you&#8217;re looking at several.</p><p><strong>memory isn&#8217;t a feature. it&#8217;s files.</strong> openclaw memory is plain markdown in the agent workspace. the files are the source of truth. if the wrong workspace is active, or memory isn&#8217;t getting written to disk, memory will feel broken even when the feature is working correctly. the failure is usually in the workspace path or write layer, not the memory system itself.</p><p><strong>the gateway assumes one trusted operator boundary.</strong> the security docs are blunt about this. it&#8217;s not designed for hostile multi-tenant operation where adversarial users share one agent or gateway. if you need mixed-trust operation, you split trust boundaries with separate gateways and ideally separate os users or hosts. that one design truth explains a lot of &#8220;weird&#8221; behavior people file under instability. sometimes the issue isn&#8217;t the feature. it&#8217;s the boundary.</p><p>when a stack starts feeling fragile, the problem usually isn&#8217;t &#8220;openclaw is broken.&#8221;</p><p>it&#8217;s that you don&#8217;t know which layer failed yet.</p><p>that&#8217;s the real skill gap.</p><div><hr></div><h3>the free version first</h3><p>if you want the lighter version first, start here.</p><p>this is the free unstuck machine. open it in chatgpt, or copy the prompt into your llm of choice and run it there.</p><p><strong><a href="https://chatgpt.com/share/69c58015-c170-8329-bd73-af28f4833acd">free unstuck machine</a></strong></p><div><hr></div><h3>the five-minute model</h3><p>start with the real gateway host.</p><p>not another laptop. not another terminal. not the machine you wish was the source of truth.</p><p>run the base ladder first.</p><pre><code><code>openclaw status
openclaw status --all
openclaw gateway probe
openclaw gateway status
openclaw doctor
openclaw channels status --probe
openclaw logs --follow</code></code></pre><p><strong>if the break smells like auth or routing:</strong> the observable signal is a gateway that responds but model calls return 401, hang on auth, or fail silently on a second agent while the first runs fine. add openclaw models status. if auth still looks ambiguous, escalate to openclaw models status --probe. that one&#8217;s a live probe, so it&#8217;s a sharper tool, not the default one.</p><p><strong>if the break smells like memory:</strong> the observable signal is agent responses that feel stale, wrong-context, or disconnected from recent writes, especially after a workspace change or agent swap. add openclaw memory status --deep. check that the right workspace is active and that memory is writing to disk before you look anywhere else.</p><p><strong>if the break is &#8220;bot is online but nobody gets replies&#8221;:</strong> the observable signal is a clean dashboard with no delivery errors but zero responses reaching users. add the pairing and channel-config checks before you start blaming the model. a channel can be connected and still fail because pairing is pending, allowlists are wrong, mention gating is blocking, or channel policy is tighter than you think. each of those is a different fix.</p><p>one rule makes all of this easier to remember.</p><p>never trust narration.</p><p>trust the smallest piece of evidence that proves where the break really lives.</p><div><hr></div><h3>one operator example</h3><p>take the ml platform engineer building a behavior-aware engineering copilot with context aggregation, secure action execution, and memory across sessions.</p><p>that setup touches every layer this ladder covers. memory has to write correctly across agent sessions. auth has to be clean per-agent or the copilot silently loses access to tools mid-session. the trust boundary has to be set correctly or tool execution behaves unpredictably in multi-agent configs.</p><p>when that stack breaks, &#8220;it stopped working&#8221; isn&#8217;t a diagnosis.</p><p>&#8220;the memory branch shows workspace drift after the last agent restart&#8221; is a diagnosis. that routes to a specific fix. that&#8217;s the difference between five minutes and an hour.</p><p>you&#8217;re not here to guess. you&#8217;re here to know.</p><div><hr></div><h3>what the paid version actually unlocks</h3><p>the paid version isn&#8217;t more commentary.</p><p>it&#8217;s the full recovery asset.</p><p>the full unstuck machine gives you the deeper 6-step recovery flow, tighter branch logic, stronger diagnosis, exact helper-agent prompts, verification steps, and escalation logic.</p><p>it forces the right separation between symptom families.</p><p>no replies aren&#8217;t the same problem as auth drift. auth drift isn&#8217;t the same problem as memory weirdness. memory weirdness isn&#8217;t the same problem as a tools or browser failure.</p><p>it forces evidence capture before diagnosis.</p><p>that sounds obvious.</p><p>it isn&#8217;t.</p><p>this is where most people lose the most time, and the most provider spend. every blind restart, every redundant probe, every &#8220;let me try the model again&#8221; costs real calls. a recovery system that routes you to the right surface in step one pays for itself in the second incident.</p><p>it checks environment and scope.</p><p>one agent is different from many agents. one local mac is different from a remote host. a hybrid setup creates its own kind of confusion.</p><p>whether you&#8217;re on a mac, a pi, a vps, hetzner, mixed linux, or something cloud-adjacent, environment-specific recovery isn&#8217;t optional. it&#8217;s table stakes.</p><p>it checks what changed before the break.</p><p>update. provider swap. new skill. browser mode change. permission drift.</p><p>that&#8217;s often the shortest path to the truth.</p><p>it branches into the right deep probe.</p><p>channel and dashboard problems get pushed toward pairing, allowlists, token drift, mention gating, and delivery policy.</p><p>auth problems get pushed toward per-agent auth, wrong provider names, model alias issues, and service-versus-shell mismatch.</p><p>memory problems get pushed toward workspace path, file-backed truth, retrieval readiness, and whether the right agent is even looking at the right files.</p><p>tools and browser problems get pushed toward policy, approvals, missing binaries, filtered skills, browser profile mode, and workflow logic.</p><p>and it doesn&#8217;t stop at diagnosis.</p><p>it outputs:</p><ul><li><p>diagnosis</p></li><li><p>smallest proven root cause</p></li><li><p>manual recovery plan</p></li><li><p>helper-agent prompt</p></li><li><p>verification checklist</p></li><li><p>escalation point</p></li></ul><p>that last part is the whole game.</p><p>because once you can say &#8220;this is where it broke, this is what healthy looks like, and this is where i stop guessing,&#8221; the stack starts feeling less magical and more usable.</p><p>more control. better odds. less time lost to narrative.</p><p>this is the full unstuck machine. open it in chatgpt, or copy the prompt into your llm of choice and use it there.</p><p><strong>&#128071; the unstuck machine for our paid subscribers</strong></p>
      <p>
          <a href="https://openclawunboxed.com/p/the-unstuck-machine-save-this">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[your agents work. you still don’t trust them]]></title><description><![CDATA[what luffa is, why it integrated with openclaw, and the missing layer between running agents and trusting them in production]]></description><link>https://openclawunboxed.com/p/your-agents-work-you-still-dont-trust</link><guid isPermaLink="false">https://openclawunboxed.com/p/your-agents-work-you-still-dont-trust</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Thu, 26 Mar 2026 04:53:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yiSC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yiSC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yiSC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 424w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 848w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 1272w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yiSC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png" width="1281" height="671" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:671,&quot;width&quot;:1281,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1221958,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/192172101?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4dcdc41-217c-4314-9ec1-18dec54c81ae_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yiSC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 424w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 848w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 1272w, https://substackcdn.com/image/fetch/$s_!yiSC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7843f57-36cb-47cf-abbd-608b0dcd9eb1_1281x671.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>luffa isn&#8217;t widely used yet</p><p>there&#8217;s no meaningful public data showing large adoption honestly</p><p>no proven production footprint across teams or companies.</p><p>this is still early.</p><p>but the idea behind it matters way more than the product itself right now</p><p>because it points directly at a problem you&#8217;re already running into.</p><p><strong>the real problem isn&#8217;t capability</strong></p><p>agents can run</p><p>outputs are decent</p><p>workflows chain together</p><p>tools execute&#8230;</p><p><strong>then things start to matter</strong>.</p><p>progress slows</p><p>more review gets added</p><p>access gets restricted</p><p>manual checks come back</p><p></p><p>that hesitation is the signal</p><p>it&#8217;s not about intelligence.</p><p>it&#8217;s about trust and accountability.</p><h3><strong>what luffa actually is</strong></h3><p><a href="https://www.luffa.im/">luffa</a> isn&#8217;t an agent framework</p><p>or a model</p><p>it&#8217;s not replacing openclaw.</p><p>luffa is a communication and identity layer.</p><p>think <strong>passports for openclaw</strong></p><p>at a high level</p><ul><li><p>an encrypted messaging environment</p></li><li><p>where humans and agents both exist</p></li><li><p>where agents can have identities</p></li><li><p>where certain actions can be traced and governed</p></li></ul><p>instead of talking to a tool</p><p>you&#8217;re interacting with an agent that exists inside a system with identity and boundaries </p><p><strong>how it works with openclaw</strong></p><p>openclaw still does the real work.</p><p>it remains</p><ul><li><p>the execution layer</p></li><li><p>the workflow engine</p></li><li><p>the tool runner</p></li><li><p>the system you host and control</p></li></ul><p>luffa sits on top</p><ul><li><p>a message is sent to a luffa bot</p></li><li><p>that bot connects to an openclaw instance</p></li><li><p>openclaw executes the task</p></li><li><p>luffa adds identity and traceability around that interaction</p></li></ul><p>so openclaw handles execution</p><p>luffa adds the passports and stamps to identity and communication</p><p>according to luffa&#8217;s announcement, this introduces:</p><ul><li><p>decentralized identifiers for agents</p></li><li><p>auditable logs of key behavior</p></li><li><p>permission boundaries that can be defined and observed</p></li></ul><p>important: these are luffa&#8217;s stated capabilities.</p><p>the integration is real.</p><p>the depth of implementation still needs validation through real usage and technical detail over time.</p><h3><strong>why this matters for builders</strong></h3><p>your current focus is correct.</p><ul><li><p>getting openclaw running</p></li><li><p>connecting tools</p></li><li><p>building one useful loop</p></li><li><p>stabilizing memory</p></li><li><p>reducing breakage</p></li></ul><p>but another issue is already present.</p><p>confidence in the system isn&#8217;t there yet.</p><p>you can see it in behavior:</p><ul><li><p>full autonomy feels risky</p></li><li><p>outputs get double checked</p></li><li><p>permissions stay tight</p></li><li><p>edge cases create hesitation</p></li></ul><p>your own peers reflects this:</p><ul><li><p>reliability is inconsistent</p></li><li><p>security boundaries are unclear</p></li><li><p>memory doesn&#8217;t behave predictably</p></li><li><p>agents stall or drift</p></li></ul><p>these aren&#8217;t random issues.</p><p>they point to a missing layer.</p><p>openclaw gives</p><ul><li><p>control</p></li><li><p>real execution</p></li><li><p>multi-surface agents</p></li><li><p>self-hosted ownership</p></li></ul><p>but it assumes a trusted operator boundary.</p><p>what&#8217;s missing in a big way</p><ul><li><p>identity for the agent</p></li><li><p>accountability for actions</p></li><li><p>a clean, verifiable history</p></li></ul><p>when something breaks, the fallback is:</p><p>logs</p><p>partial context</p><p>manual reconstruction</p><p>fine for solo setups.</p><p>fragile for shared or scaled systems.</p><p><strong>what luffa.im is trying to fix</strong></p><p>luffa targets one layer:</p><p>agent identity.</p><p>in practice:</p><ul><li><p>each agent has a defined identifier</p></li><li><p>actions can be traced over time</p></li><li><p>permissions can be scoped and observed</p></li><li><p>key behaviors can be audited</p></li></ul><p>instead of: something ran a task</p><p>you get: <em>this agent, under these permissions, performed this action</em></p><p>that changes how systems are trusted and debugged.</p><h3><strong>when this becomes important</strong></h3><p>this doesn&#8217;t matter on day one.</p><p>it matters when the system crosses a threshold.</p><p><strong>real workflows</strong></p><ul><li><p>email handling</p></li><li><p>crm updates</p></li><li><p>research pipelines</p></li><li><p>content systems</p></li></ul><p>mistakes now cost time or money.</p><p><strong>multi-agent systems</strong></p><p>already happening.</p><p>problems show up fast:</p><ul><li><p>unclear coordination</p></li><li><p>overlapping responsibility</p></li><li><p>difficult debugging</p></li></ul><p>identity becomes useful here.</p><p><strong>client or hosted environments</strong></p><p>this is where it matters most.</p><p>once systems are:</p><ul><li><p>built for clients</p></li><li><p>deployed across teams</p></li><li><p>tied to revenue</p></li></ul><p>questions become unavoidable:</p><ul><li><p>who did what</p></li><li><p>under which permissions</p></li><li><p>why it happened</p></li></ul><p>without clear answers, trust breaks.</p><p></p><p><strong>what this doesn&#8217;t solve</strong></p><p>luffa does not fix</p><ul><li><p>poor workflow design</p></li><li><p>weak memory structure</p></li><li><p>routing mistakes</p></li><li><p>unreliable tools</p></li></ul><p></p><p>openclaw still depends on</p><ul><li><p>clean architecture</p></li><li><p>explicit boundaries</p></li><li><p>operator judgment</p></li></ul><p>identity sits on top of execution.</p><p>it doesn&#8217;t replace it.</p><p></p><p><strong>the shift most people are missing</strong></p><p>two layers are forming.</p><p><strong>execution layer</strong></p><p>what openclaw already provides</p><ul><li><p>tools</p></li><li><p>workflows</p></li><li><p>automation</p></li><li><p>routing</p></li><li><p>memory</p></li></ul><p><strong>governance layer</strong></p><p>what luffa is introducing</p><ul><li><p>identity</p></li><li><p>accountability</p></li><li><p>permissions</p></li><li><p>traceability</p></li></ul><p>most builders are focused on execution.</p><p>governance is largely ignored.</p><p>that&#8217;s why systems feel fragile.</p><p></p><p>attention is still going to</p><ul><li><p>models</p></li><li><p>prompts</p></li><li><p>tools</p></li></ul><p>with very little attention on</p><p><strong>agent governance.</strong></p><p>this includes:</p><ul><li><p>identity systems</p></li><li><p>audit trails</p></li><li><p>permission design</p></li><li><p>behavioral visibility</p></li></ul><p>this is where serious infrastructure gets built.</p><h3><strong>what to do now</strong></h3><p>no need to adopt luffa yet.</p><p>but the thinking should change.</p><p>take one agent.</p><p>define</p><ul><li><p>which actions must be logged</p></li><li><p>where approval is required</p></li><li><p>what should never be autonomous</p></li><li><p>how behavior would be explained to another person</p></li></ul><p>simple rule: if behavior can&#8217;t be explained clearly, the system isn&#8217;t complete.</p><h3><strong>what to takeaway from this</strong></h3><p>openclaw gave you control</p><p>that solved execution</p><p>the next bottleneck is accountability.</p><p>luffa is an early attempt at that layer.</p><p>it&#8217;s not widely adopted.</p><p>it&#8217;s not fully proven.</p><p>but it points in the right direction.</p><p><em>agents without identity are tools.</em></p><p><em>agents with identity are systems.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[which agent should control your computer?]]></title><description><![CDATA[blackbox vs whitebox. managed control versus owned control. session power versus system power. this isn&#8217;t a smart vs dumber debate]]></description><link>https://openclawunboxed.com/p/which-agent-should-control-your-computer</link><guid isPermaLink="false">https://openclawunboxed.com/p/which-agent-should-control-your-computer</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Tue, 24 Mar 2026 22:51:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gub0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gub0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gub0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gub0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gub0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gub0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gub0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86658,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/192030218?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3096176-64a6-4ed9-88a1-848c610fc48c_720x720.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gub0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gub0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gub0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gub0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc021d835-5ed5-49a4-967f-1ab5b4ad550b_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>people keep asking which one&#8217;s better or &#8220;but josh did you see the new claude code update, it just killed openclaw&#8221; (for the 10th time now with every new update that happens)</p><p>look.. <strong>i get it</strong> but it&#8217;s the wrong framing. you basically just told me how little you actually know in the loudest shrill voice imaginable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>claude and openclaw now basically do overlap. this is true.</p><p>claude code reads files, edits code, runs commands, uses tools, and supports remote continuation of local sessions.</p><p>this removed the old gap.</p><p>this isn&#8217;t chatbot versus agent.</p><p>this is how your work runs.</p><h2>the real question</h2><p>do you want answers</p><p>or do you want a system</p><p>claude gives answers.</p><p>openclaw builds systems with a real moat</p><h2>what claude is now</h2><p>claude is a managed agent environment.</p><p>you open a project.</p><p>it reads the codebase.</p><p>it edits files.</p><p>it runs commands.</p><p>it uses tools.</p><p>it continues sessions across devices.</p><p>you get:</p><ul><li><p>fast output</p></li><li><p>no setup</p></li><li><p>fewer moving parts</p></li><li><p>managed boundaries</p></li></ul><p>this is why most people start here.</p><h2>what openclaw is</h2><p>openclaw is a self hosted gateway.</p><p>one long lived process owns:</p><ul><li><p>sessions</p></li><li><p>routing</p></li><li><p>tools</p></li><li><p>memory</p></li><li><p>channels</p></li></ul><p>everything runs through it.</p><p>you define how work moves.</p><p>you define how tools run.</p><p>you define what persists.</p><h2>why this matters</h2><p>your work isn&#8217;t one task.</p><p>your work is:</p><ul><li><p>tabs</p></li><li><p>docs</p></li><li><p>inbox</p></li><li><p>sheets</p></li><li><p>chat apps</p></li><li><p>repeated loops</p></li></ul><p>a better model speeds up tasks.</p><p>a system replaces loops.</p><h2>blackbox versus whitebox</h2><p>claude is the better blackbox.</p><ul><li><p>fast</p></li><li><p>simple</p></li><li><p>managed</p></li></ul><p>openclaw is the better whitebox.</p><ul><li><p>inspectable</p></li><li><p>controllable</p></li><li><p>extensible</p></li></ul><p>blackbox helps you start.</p><p>whitebox lets you scale.</p><h2>what claude does well</h2><p>claude is strong when speed matters.</p><p>use it for:</p><ul><li><p>writing</p></li><li><p>research</p></li><li><p>coding</p></li><li><p>synthesis</p></li></ul><p>you get results immediately.</p><p>you don&#8217;t manage infrastructure.</p><h2>where claude hits a ceiling</h2><p>the limit is ownership.</p><ul><li><p>memory is session based</p></li><li><p>behavior isn&#8217;t fully inspectable</p></li><li><p>routing is limited</p></li><li><p>workflows reset</p></li></ul><p>you repeat work.</p><p>cost grows with usage.</p><h2>what openclaw does well</h2><p>openclaw handles the system layer.</p><p>you get:</p><ul><li><p>file backed memory</p></li><li><p>model routing</p></li><li><p>persistent sessions</p></li><li><p>workflow execution</p></li><li><p>multi channel operation</p></li></ul><p>work stops resetting.</p><p>systems start compounding.</p><h2>the memory difference</h2><p>claude</p><ul><li><p>session memory</p></li><li><p>abstracted</p></li></ul><p>openclaw</p><ul><li><p>memory lives on disk</p></li><li><p>retrieval is explicit</p></li><li><p>nothing persists unless it&#8217;s written</p></li></ul><p>this removes guesswork.</p><p>this adds control.</p><h2>why routing matters</h2><p>cost scales with repetition.</p><p>openclaw lets you split work:</p><ul><li><p>cheap models for repeated steps</p></li><li><p>strong models for judgment</p></li><li><p>local models when needed</p></li></ul><p>you control cost.</p><p>you control performance.</p><h2>simple workflow example</h2><p>weekly research</p><p>claude</p><ul><li><p>paste sources</p></li><li><p>ask for summary</p></li><li><p>copy output</p></li></ul><p>result</p><p>faster thinking<br>same workflow</p><p>openclaw</p><ul><li><p>ingest sources</p></li><li><p>store insights in memory</p></li><li><p>route tasks by cost</p></li><li><p>generate report</p></li><li><p>persist output</p></li></ul><p>result</p><p>workflow becomes system</p><h2>security and trust</h2><p>openclaw assumes a trusted operator.</p><ul><li><p>tools have real access</p></li><li><p>browser acts as you</p></li><li><p>sessions share permissions</p></li></ul><p>you must design:</p><ul><li><p>permissions</p></li><li><p>isolation</p></li><li><p>approvals</p></li></ul><p>claude reduces this burden.</p><p>openclaw gives you control.</p><h2>where nemoclaw fits</h2><p>nvidia released nemoclaw as a reference stack for openclaw.</p><p>it adds:</p><ul><li><p>local models</p></li><li><p>privacy routing</p></li><li><p>security layers</p></li></ul><p>it&#8217;s early.</p><p>it isn&#8217;t production ready.</p><p>the signal matters.</p><p>nvidia is building around openclaw.</p><h2>how jensen frames it</h2><p>jensen called openclaw the operating system for personal ai.</p><p>he grouped claude code and openclaw as the shift from reasoning to action.</p><p>this isn&#8217;t hype.</p><p>this is real direction.</p><h2>why openclaw is a data play in disguise </h2><p>most people see automation.</p><p>that&#8217;s surface level.</p><p>the real advantage is data ownership.</p><p>every workflow creates:</p><ul><li><p>structured outputs</p></li><li><p>memory files</p></li><li><p>system state</p></li><li><p>routing logic</p></li><li><p>execution history</p></li></ul><p>this data compounds.</p><p>over time you build:</p><ul><li><p>reusable workflows</p></li><li><p>proprietary datasets</p></li><li><p>domain specific knowledge</p></li><li><p>systems tuned to your use case</p></li></ul><p>this is not temporary output.</p><p>this is infrastructure.</p><p>claude gives results.</p><p>openclaw builds a system that stores process and data.</p><p>systems like this can be:</p><ul><li><p>reused</p></li><li><p>improved</p></li><li><p>transferred</p></li><li><p>sold</p></li></ul><p>this is digital real estate.</p><p>if you build:</p><ul><li><p>lead systems</p></li><li><p>research pipelines</p></li><li><p>automation flows</p></li><li><p>content systems</p></li></ul><p>you are building assets.</p><p>claude helps you work faster.</p><p>openclaw helps you build something that keeps working and holds value.</p><h2>where each fits</h2><p>choose claude if:</p><ul><li><p>you want speed</p></li><li><p>you&#8217;re exploring</p></li><li><p>workflows are simple</p></li></ul><p>choose openclaw if:</p><ul><li><p>work repeats</p></li><li><p>systems grow</p></li><li><p>cost matters</p></li><li><p>control matters</p></li></ul><h2>how serious builders operate</h2><p>they split roles.</p><p>claude:</p><ul><li><p>reasoning</p></li><li><p>synthesis</p></li></ul><p>openclaw:</p><ul><li><p>orchestration</p></li><li><p>memory</p></li><li><p>execution</p></li></ul><p>one thinks.</p><p>one runs.</p><h2>my final answer (as unbiased as i can be)</h2><p>claude can now control your computer.</p><p>that&#8217;s real.</p><p>it changed the surface comparison.</p><p>it didn&#8217;t remove the system gap one bit though.</p><p>claude gives you access.</p><p>openclaw gives you ownership.</p><p>if you stay at tasks, claude is enough.</p><p>if you build systems, you move beyond it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[give openclaw muscle memory]]></title><description><![CDATA[agents will continue to stay expensive because they never make this switch.]]></description><link>https://openclawunboxed.com/p/i-gave-openclaw-muscle-memory</link><guid isPermaLink="false">https://openclawunboxed.com/p/i-gave-openclaw-muscle-memory</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Mon, 23 Mar 2026 15:43:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dQKc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dQKc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dQKc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 424w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 848w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 1272w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dQKc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png" width="1179" height="617" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:617,&quot;width&quot;:1179,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:615179,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/191861496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3f1488a-4247-4add-be01-fb8ee7e60515_1179x2556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dQKc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 424w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 848w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 1272w, https://substackcdn.com/image/fetch/$s_!dQKc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d67fb61-36aa-40a4-be97-4ee714a7c1c7_1179x617.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>most browser agents are doing the wrong kind of work.</p><p>they&#8217;re getting used like the cpu.</p><p>that&#8217;s why they look brilliant the first time, then slowly turn into overhead.</p><p>the first pass feels magical.</p><p>a few days later it feels noisy.</p><p>a few weeks later you&#8217;re hovering, paying for the same judgment all over again.</p><p>that isn&#8217;t because the model suddenly got worse.</p><p>it&#8217;s because the system never moved past discovery.</p><p>the cleaner split is simple:</p><p><strong>ai teaches.</strong></p><p><strong>software executes without a single api call</strong></p><p>ai steps back in only when something changes.</p><p>that&#8217;s what ClawReflex is built around.</p><p>the full repo you came here for &#128071;</p>
      <p>
          <a href="https://openclawunboxed.com/p/i-gave-openclaw-muscle-memory">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[adding more tools makes your agent worse]]></title><description><![CDATA[most openclaw agents don&#8217;t fail because they&#8217;re missing capability]]></description><link>https://openclawunboxed.com/p/adding-more-tools-makes-your-agent</link><guid isPermaLink="false">https://openclawunboxed.com/p/adding-more-tools-makes-your-agent</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Fri, 20 Mar 2026 17:19:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-OBz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-OBz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-OBz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-OBz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg" width="720" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102951,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://openclawunboxed.com/i/191603443?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b617061-6250-4647-87f2-b03978b9d5d2_720x720.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-OBz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-OBz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd713a6b-745f-433b-b43d-fb4aca489250_720x377.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>i 100% didn&#8217;t believe that at first.</p><p>i kept adding tools thinking i was making the system stronger.</p><p>it looked more powerful.</p><p>it felt more complete.</p><p>but every time i added something new, performance slipped.</p><p>slower runs<br>weirder decisions<br>higher cost<br>less trust</p><p>i blamed the model.</p><p>that was wrong.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>the real problem</h2><p>every tool is a decision.</p><p>and the model has to get that decision right.</p><p>every step.</p><p>not just:</p><p>&#8220;can this be done&#8221;</p><p>but:</p><ul><li><p>should i use a tool</p></li><li><p>which one</p></li><li><p>why this one over the others</p></li><li><p>what inputs</p></li><li><p>when to stop</p></li></ul><p>this is where things break.</p><p>as tool count increases, selection accuracy drops and inefficiency rises</p><p>you are not just adding capability.</p><p>you are increasing the chance of being wrong.</p><h2>the failure you don&#8217;t see</h2><p>it doesn&#8217;t crash.</p><p>it drifts.</p><ul><li><p>it picks a &#8220;good enough&#8221; tool instead of the right one</p></li><li><p>it chains unnecessary steps</p></li><li><p>it ignores better paths</p></li><li><p>it behaves differently across runs</p></li></ul><p>you end up with something that looks smart&#8230;</p><p>but you don&#8217;t trust it.</p><h2>the part most people miss</h2><p>tools are not just actions.</p><p>they are context.</p><p>every tool adds:</p><ul><li><p>description</p></li><li><p>parameters</p></li><li><p>structure</p></li></ul><p>that all gets injected into the prompt.</p><p>and models don&#8217;t process everything equally.</p><p>they prioritize, skip, and compress.</p><p>so what happens:</p><p>important tools get buried<br>irrelevant tools get chosen<br>decisions get noisier</p><p>this is not randomness.</p><p>it&#8217;s overload.</p><h2>the punchline</h2><p>your agent isn&#8217;t failing because it&#8217;s weak.</p><p>it&#8217;s failing because it has too many choices.</p><h2>the moment it clicked</h2><p>i stripped a workflow down.</p><p>didn&#8217;t improve it.</p><p>didn&#8217;t upgrade the model.</p><p>just removed tools.</p><p>and everything got better.</p><p>faster<br>cleaner<br>predictable</p><p>this is not just anecdotal.</p><p>real systems are seeing the same thing.</p><p>one team removed ~80% of their tools and saw:</p><ul><li><p>success rate: 80% to 100%</p></li><li><p>execution time: ~275s to ~77s</p></li><li><p>tokens: ~102k to ~61k</p></li><li><p>steps: ~12 to roughly ~7</p></li></ul><p>they didn&#8217;t add intelligence.</p><p>they removed noise.</p><h2>the money part (this is what actually matters)</h2><p>this is the difference between:</p><p>a workflow that costs cents<br>and one that quietly burns dollars every run</p><p>same task.</p><p>different tool exposure.</p><p>one makes money.</p><p>one leaks it.</p><h2>what&#8217;s actually happening</h2><p>three things compound fast:</p><h3>1. decision overload</h3><p>more tools = more comparisons</p><p>the model spends more time deciding than executing</p><h3>2. context dilution</h3><p>more tools = more noise</p><p>relevant options get buried</p><h3>3. path explosion</h3><p>more tools = more possible chains</p><p>more chains = more failure paths</p><p>this is why performance degrades as systems scale in complexity</p><p>not because models are weak</p><p>because systems get messy</p><h2>the hidden cost nobody tracks</h2><p>bad tool paths don&#8217;t always fail.</p><p>they just become inefficient.</p><p>more steps<br>more retries<br>more tokens</p><p>and you don&#8217;t notice.</p><p>until the bill shows up.</p><h2>the deeper problem</h2><p>tool usage has three failure points:</p><ul><li><p>deciding if a tool is needed</p></li><li><p>selecting the correct one</p></li><li><p>using it correctly</p></li></ul><p>all three get worse as tool count increases.</p><p>and most systems do nothing to reduce that burden.</p><p>they just keep adding more.</p><h2>what actually works</h2><p>not more tools.</p><p>less exposure.</p><p>systems that perform well:</p><ul><li><p>limit visible tools per task</p></li><li><p>merge similar tools</p></li><li><p>hide tools unless needed</p></li><li><p>replace repeatable paths with deterministic logic</p></li></ul><p>there is active work showing that filtering tools before exposure improves both accuracy and efficiency in large tool environments</p><p>the direction is clear.</p><p>not expansion.</p><p>compression.</p><h2>use this immediately</h2><p>run this on any workflow you have.</p><pre><code>act as a systems optimizer for agent workflows.

goal: reduce tool-induced failure without reducing the outcome.

input:
- workflow goal
- current tools
- tool descriptions

tasks:
1. find overlapping tools
2. find tools that create ambiguity
3. find tools that are rarely needed
4. identify tools that should be conditional
5. identify tools that should be replaced with deterministic functions
6. reduce to the minimum viable toolset
7. rank remaining tools by:
   - necessity
   - risk
   - likelihood of incorrect selection

output:
- failure risks
- tools to remove
- tools to merge
- simplified architecture
- why this improves performance</code></pre><h2>the rule i use now</h2><p>before adding anything:</p><ul><li><p>does this really change the outcome</p></li><li><p>is there already overlap</p></li><li><p>will this create confusion</p></li><li><p>can this be merged</p></li><li><p>what happens if it&#8217;s used incorrectly</p></li></ul><p>if the answer isn&#8217;t obvious</p><p>it doesn&#8217;t get added</p><h2>a better starting point</h2><p>start with only three buckets:</p><ul><li><p>retrieval</p></li><li><p>transformation</p></li><li><p>action</p></li></ul><p>force everything into one.</p><p>if it doesn&#8217;t fit cleanly</p><p>you probably don&#8217;t need it yet</p><h2>the uncomfortable truth</h2><p>most people are building agents like feature lists.</p><p>more integrations<br><br>more connectors<br><br>more actions</p><p>it feels like progress.</p><p>it isn&#8217;t.</p><p>real systems don&#8217;t fail because they lack features.</p><p>they fail because they can&#8217;t choose correctly.</p><p>and every tool you add makes that harder.</p><h2>final point</h2><p>the best agents i&#8217;ve seen are not impressive.</p><p>they&#8217;re major boring.</p><p>they do <strong>one thing.</strong></p><p>with very few options.</p><p>and they work every time.</p><p>that&#8217;s what actually wins.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://openclawunboxed.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[the 7 boring openclaw workflows businesses actually pay for]]></title><description><![CDATA[how to pick the right one, where to put boundaries, and the easiest one to sell first]]></description><link>https://openclawunboxed.com/p/the-7-boring-openclaw-workflows-businesses</link><guid isPermaLink="false">https://openclawunboxed.com/p/the-7-boring-openclaw-workflows-businesses</guid><dc:creator><![CDATA[OpenClaw Unboxed]]></dc:creator><pubDate>Thu, 19 Mar 2026 19:10:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NDbU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f83d64-e1c8-427c-977f-fcceece59cc3_300x300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>most people are building the wrong thing.</p><p>they&#8217;re building:</p><p>multi-agent swarms self-improving loops &#8220;autonomous businesses&#8221;</p><p>looks cool.</p><p>breaks immediately.</p><p>the people actually getting value out of openclaw are usually doing something much simpler.</p><p>they&#8217;re building:</p><p>boring workflows</p><p>that run</p><p>every day</p><p>without falling apart.</p><p>lead follow-ups. inbox triage. support routing. report generation. spreadsheet cleanup. scheduling. ops monitoring.</p><p>not sexy.</p><p>but it gets sh*t done.</p><p>that&#8217;s also where the market signal is pointing.</p><p>businesses keep paying for narrow automations that reduce cost, reduce risk, or recover revenue. the stuff that sticks is usually repetitive, measurable, and embedded into day-to-day operations, not a flashy autonomous demo.</p><p>that lines up almost perfectly with who&#8217;s actually reading this.</p><p>your audience isn&#8217;t random ai hobbyists.</p><p>it&#8217;s mostly:</p><p>builders technical founders indie operators saas/product people people trying to turn automation into leverage or revenue</p><p>that&#8217;s very obvious in your subscriber breakdown and your own roll-call replies. people here are building brokerage systems, devops copilots, spreadsheet-heavy ecommerce workflows, higher-ed coordination systems, and memory-heavy personal operators. the repeated blockers are reliability, monetization, fragmentation, memory, evaluation, and time.</p><p>that means the useful question isn&#8217;t:</p><p><code>&#8220;what cool thing can openclaw do?&#8221;</code></p><p>it&#8217;s:</p><p><code>&#8220;what repetitive workflow is expensive enough, common enough, and bounded enough that a business will happily pay to stop doing it manually?&#8221;</code></p><p>that&#8217;s the better question.</p><p>and it leads to much better businesses.</p><div><hr></div><p>the real model</p><p>openclaw isn&#8217;t &#8220;an agent that does things.&#8221;</p><p>it&#8217;s a trigger + workflow system.</p><p>the clean mental model is:</p><p>heartbeat / cron = when something runs lobster = what actually happens memory = what survives</p><p>that&#8217;s not guesswork.</p><p>heartbeat runs periodic turns in the main session. cron is for precise scheduled jobs and isolated runs. lobster is a deterministic workflow runtime with approval gates and resume tokens. memory is plain markdown in the workspace, with MEMORY.md for durable facts and memory/YYYY-MM-DD.md for daily logs.</p><p>if you mix those up, everything gets worse.</p><div><hr></div><p>why most workflows fail</p><p>not because the model&#8217;s weak.</p><p>because the workflow&#8217;s wrong.</p><p>too broad. too vague. too hard to measure. too dependent on the model &#8220;figuring it out.&#8221; too willing to take action without a clean boundary.</p><p>real workflows are:</p><p>repeatable bounded auditable measurable</p><p>bad:</p><p><code>&#8220;check my inbox and handle stuff intelligently&#8221;</code></p><p>good:</p><p><code>&#8220;scan inbox &#8594; classify messages &#8594; surface only stale leads &#8594; draft reply &#8594; wait for approval &#8594; update crm&#8221;</code></p><p>one&#8217;s a vibe.</p><p>one&#8217;s a system.</p><div><hr></div><p>the buying-threshold filter</p><p>before the 7 workflows, use this.</p><p>if a workflow doesn&#8217;t score well here, it&#8217;s probably content.</p><p>not a business.</p><p>score each 1 to 5:</p><p>frequency pain dollar impact error cost approval friendliness integration simplicity source-of-truth clarity measurability</p><p>score guide:</p><p>8 to 16 content idea</p><p>17 to 24 interesting but weak</p><p>25 to 32 worth prototyping</p><p><strong>33 to 40 build this</strong></p><div><hr></div><p>the 7 workflows that actually get bought</p>
      <p>
          <a href="https://openclawunboxed.com/p/the-7-boring-openclaw-workflows-businesses">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>