<script data-pm-proxy="intercept"></script><?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[Agentic AI Decode]]></title><description><![CDATA[I’m endlessly curious about AI — especially the messy, practical stuff that actually works. I write about what I’m learning, building, and randomly obsessing over, so you get something useful (or at least interesting) every time. No jargon, no fluff.]]></description><link>https://agenticaidecode.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!NeJA!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fagenticaidecode.substack.com%2Fimg%2Fsubstack.png</url><title>Agentic AI Decode</title><link>https://agenticaidecode.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 02 Sep 2026 05:09:18 GMT</lastBuildDate><atom:link href="/__u/agenticaidecode.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Agentic AI Decode]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[agenticaidecode@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[agenticaidecode@substack.com]]></itunes:email><itunes:name><![CDATA[Agentic AI Decode]]></itunes:name></itunes:owner><itunes:author><![CDATA[Agentic AI Decode]]></itunes:author><googleplay:owner><![CDATA[agenticaidecode@substack.com]]></googleplay:owner><googleplay:email><![CDATA[agenticaidecode@substack.com]]></googleplay:email><googleplay:author><![CDATA[Agentic AI Decode]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[ox-alpha: The Mystery Model That Out-Designed My Expectations]]></title><description><![CDATA[ox-alpha has no launch post, no benchmark chart, and no known maker &#8212; yet it one-shotted falppy bird clone, built me a portfolio with a UI that actually looks &#8216;designed&#8217;...]]></description><link>https://agenticaidecode.substack.com/p/ox-alpha-the-mystery-model-that-out</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/ox-alpha-the-mystery-model-that-out</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sun, 23 Aug 2026 16:30:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qoLj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.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="/__u/substackcdn.com/image/fetch/$s_!qoLj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!qoLj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1794483,&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://agenticaidecode.substack.com/i/212425987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qoLj!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7568210f-47d7-4e95-b75e-e38dcdce9104_1536x1024.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 aria-hidden="true" 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><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 model launches come with a livestream, a benchmark chart, and a pricing page. ox-alpha got none of that. No announcement post. No model card with an org logo. If you go looking for the team behind it, you will not find one, because the developer is undisclosed. </p><blockquote><p>The model simply exists, it works, and the people using it found it more or less by word of mouth.</p></blockquote><p>This piece is two things at once: a short guide for getting ox-alpha running inside DeepSeek Harness (DSH), and an honest accounting of what we know &#8212; and do not know &#8212; about the model itself.</p><p>Let us start with the mystery, because it is the fun part.</p><h2>What We Actually Know About ox-alpha</h2><p>Here is the complete public footprint, as far as anyone can tell:</p><ul><li><p><strong>It identifies itself only as &#8220;ox-alpha,&#8221; developed by an undisclosed organization.</strong> Ask the model directly who made it and that is the answer. It does not deflect creatively or roleplay an origin story; it just states it and moves on. Whatever the reason &#8212; stealth testing, licensing, an acquisition in progress, or pure brand discipline &#8212; the anonymity appears deliberate rather than accidental.</p></li><li><p><strong>It is a stealth-model generation release.</strong> ox-alpha behaves like the models that show up anonymously before their official reveal: strong tool use, long coherent multi-step sessions, and unusually good judgment about when to stop and ask a human a question instead of guessing.</p></li><li><p><strong>It is agentic by design, not by bolt-on.</strong> The model is clearly built for environments with tools &#8212; file editing, shell access, background tasks, subagent delegation. Its responses read like an operator&#8217;s log, not a chatbot&#8217;s reply. It plans, acts, verifies its own work, and reports back concisely.</p></li></ul><p>That is genuinely most of it. There is no confirmed parameter count, no training-data disclosure, no context-window spec sheet &#8212; and, somehow, no bill. At time of writing, <code>stealth/ox-alpha</code> is listed as a <strong>free</strong> model on OpenRouter, which makes it the strangest bargain in AI: frontier-flavored output, anonymous provenance, zero dollars. In a year when every frontier lab publishes a system card the size of a novella, a model with no paper is either a red flag or the last remaining novelty in AI. I lean toward the second, but hold that loosely.</p><h2>The Setup: Five Minutes and One API Key</h2><p>If you already have DSH installed and running, you are most of the way there. If not, start with my earlier walkthrough on <a href="/__u/agenticaidecode.substack.com/p/dsh-the-deepseek-harness">setting up DeepSeek Harness</a> itself &#8212; this guide picks up right where that one ends.</p><p>Adding ox-alpha is almost comically easy. There is nothing to clone, compile, or configure by hand. It is one API key, one provider, and two fields.</p><h3>Step 1: Create an OpenRouter API key</h3><p>ox-alpha is served through <a href="https://openrouter.ai/">OpenRouter</a>, so that is your access path. Sign in at openrouter.ai, head to <strong>Keys</strong>, create a new API key, and copy it somewhere safe. No credit card required: at time of writing, <code>stealth/ox-alpha</code> sits on OpenRouter&#8217;s free tier, so there is nothing to fund before your first session. Free models are rate-limited, so very heavy all-day use may eventually want a topped-up account &#8212; but for getting started, zero dollars works.</p><h3>Step 2: Add OpenRouter as a provider in DSH</h3><p>Open your DSH web console and go into <strong>Settings &#8594; Models &#8594; Add Provider</strong>. Select <strong>OpenRouter</strong> from the list, paste in your API key, and save. This single connection also unlocks every other model on OpenRouter later, so it is worth doing properly even if ox-alpha is all you care about today.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!iVWY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 424w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 848w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!iVWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png" width="1456" height="1010" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1010,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/212425987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 424w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 848w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iVWY!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028fbd17-29b1-4feb-967a-47e553a39247_1548x1074.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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><h3>Step 3: Register the model</h3><p>Now for the moment of truth. In the provider&#8217;s customized settings, add a new model with exactly these two values:</p><ul><li><p><strong>Model ID:</strong> <code>stealth/ox-alpha</code></p></li><li><p><strong>Display name:</strong> <code>ox-alpha</code></p></li></ul><p>Click <strong>Add Model</strong>. Done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9AI9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 424w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 848w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9AI9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png" width="1148" height="1360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1360,&quot;width&quot;:1148,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:146930,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/212425987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 424w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 848w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9AI9!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa83648-617b-4574-a0d6-3d84d2dad307_1148x1360.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>That is genuinely the entire integration. Type the ID carefully &#8212; lowercase, one slash, no spaces. The <code>stealth/</code> prefix is exactly what it sounds like: an anonymous model slot, the same convention used for unreleased models being tested under wraps. There was no handshake, no approval gate, no config file editing. The first time I did it, I kept waiting for a second step that never arrived.</p><h2>The Vibemark: One-Shot Games and a Portfolio</h2><p>Benchmarks tell you almost nothing about how an agent feels to use, so I ran my own informal gauntlet &#8212; the same starter prompts I throw at every new model.</p><p>First up: <strong>&#8220;clone Flappy Bird.&#8221;</strong> One shot. Complete, playable game on the first pass &#8212; physics, pipes, scoring, collision detection all wired correctly &#8212; and it needed only minor tweaking before I was happy with it. Then <strong>a Mario-style platformer</strong>, another notorious one-shot stress test. Same story: everything came out good on the first attempt, and my entire contribution was small adjustments rather than fixing broken fundamentals.</p><p>But the result that actually surprised me was a different kind of build. I used ox-alpha to create a <strong>portfolio site</strong>, and it came out surprisingly good &#8212; the UI is genuinely awesome. Layout, spacing, typography: the design decisions felt considered rather than templated, which is exactly where most agent-generated frontends fall apart. Getting correct logic from a model is expected in 2026. Getting taste is not.</p><p>That combination &#8212; correct on the first shot <em>and</em> pleasant to look at &#8212; changes the shape of the work. Instead of long debugging loops against a stubborn agent, you spend your time nudging. The iteration cycle shrinks from hours to minutes, and that is the whole ballgame for vibe-coding.</p><h2>Quick Gotchas</h2><p>Four things that bit me, so they do not bite you:</p><ul><li><p><strong>The model ID must match exactly:</strong> <code>stealth/ox-alpha</code>. If the model does not show up in the picker after adding it, the ID string is almost always the culprit.</p></li><li><p><strong>Free means rate-limited.</strong> ox-alpha costs nothing right now, but free-tier routing comes with usage caps. If requests start erroring partway through a busy day, you have probably hit the limit &#8212; wait it out or top up your account.</p></li><li><p><strong>Your workspace choice matters.</strong> It defines where the agent is allowed to read and write, so pick your project root when creating the session.</p></li><li><p><strong>Keep approvals on.</strong> DSH&#8217;s permission prompts rarely fire with this model &#8212; it tends to route risky actions through explicit requests on its own &#8212; but you want the fence up before the first incident, not after.</p></li></ul><h2>Should You Bother?</h2><p>If you enjoy being an early user of things that have not been explained yet &#8212; yes. Five minutes of setup and exactly zero dollars buys you an anonymous but conspicuously capable model, running inside a harness whose guardrails you control, working in your own folders on your own machine.</p><p>If you need a vendor to sue when something goes wrong, wait. There is no roadmap, no SLA, and no support forum. Stealth cuts both ways: nobody can take ox-alpha&#8217;s promises away from you because nobody has made any. The model&#8217;s work is the only claim it makes, and so far, on my repos, the claims are holding.</p><div class="callout-block" data-callout="true"><p><strong>Disclaimer:</strong> ox-alpha is an anonymous model &#8212; its developer is undisclosed, and nothing about its origins, training data, or roadmap has been officially documented. DeepSeek Harness itself is also in early preview, so the settings names, menu flows, and behaviors described here may change between versions. Everything in this piece, including ox-alpha&#8217;s free-tier status on OpenRouter, reflects my setup at the time of writing and may look different by the time you read it.</p></div>]]></content:encoded></item><item><title><![CDATA[DSH - The DeepSeek Harness]]></title><description><![CDATA[DeepSeek&#8217;s modular harness gives V4 Flash the environment it needs&#8212;and OpenRouter makes the combination almost absurdly cheap to run.]]></description><link>https://agenticaidecode.substack.com/p/dsh-the-deepseek-harness</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/dsh-the-deepseek-harness</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sat, 15 Aug 2026 23:16:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Cmqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.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="/__u/substackcdn.com/image/fetch/$s_!Cmqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Cmqe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1832812,&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://agenticaidecode.substack.com/i/211360741?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Cmqe!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6cfa7e5-2d9d-4649-8050-24f84d32a6ce_1672x941.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 aria-hidden="true" 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><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>AI coding has already moved beyond model-only comparisons. The harness&#8212;the tools, context management, permissions, memory, and agent loop surrounding the model has become one of the field&#8217;s biggest talking points. </p><p>Against that backdrop, I tried DeepSeek Harness&#8212;or DSH&#8212;with DeepSeek V4 Flash through OpenRouter. It is one of the clearest examples I have encountered of why the pairing matters as much as the individual components. More bluntly: DeepSeek V4 Flash and DSH are a killer combination.</p><blockquote><p>The model matters. But the harness may matter almost as much.</p></blockquote><p>My early experience with this combination has been genuinely excellent. DSH gives the model a coherent environment in which to inspect a project, use tools, maintain a plan, make changes, and keep working through a task. DeepSeek V4 Flash supplies the speed and reasoning. OpenRouter makes the model easy to route into the setup.</p><p>Connecting a provider is also refreshingly straightforward. For a supported provider&#8212;or a custom OpenAI-compatible service such as OpenRouter&#8212;you mainly provide the API key and select the models you want to use. DSH keeps the harness separate from the model backend, so experimenting with another provider does not require rebuilding the rest of the agent.</p><p>This is not a formal benchmark, and I am not claiming that a few good sessions settle the coding-agent leaderboard. DSH is also explicitly labeled a developer preview. But it already demonstrates something important: raw model intelligence is only one part of an effective agent.</p><h2>The model is not the product</h2><p>A language model can propose code. A useful coding agent has to do much more.</p><p>It needs to understand the workspace, decide which files matter, call tools, inspect their results, recover from mistakes, preserve state, ask for approval when an action is risky, and continue until the task is actually complete. It needs a loop&#8212;not just a prompt.</p><p>That surrounding system is the harness.</p><p>An easy analogy is that the model is an engine. Benchmarks tell us something about horsepower. The harness supplies the steering, transmission, brakes, dashboard, and road connection. A more powerful engine in a weak vehicle can still be frustrating. A well-designed vehicle can make an efficient engine feel remarkably capable.</p><p>DSH makes that surrounding layer unusually visible because its central design principle is simple: <strong>everything is a plugin</strong>.</p><p>According to the project&#8217;s <a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.md">architecture documentation</a>, even the model adapter, tool registry, session log, and agent loop are plugins. There is no sacred core that must be patched every time somebody wants to change the behavior. Components are mounted into a shared Cordis context and can be replaced through configuration.</p><p>That is more than an extensibility slogan. It is a bet on how agent software will evolve.</p><h2>&#8220;Everything is a plugin&#8221; is the real story</h2><p>Most coding agents let you add a tool or connect an MCP server. DSH goes deeper: the agent itself is assembled as a tree of replaceable capabilities.</p><p>The default base layer includes model adapters, tools, persistence, sandboxing, approval policy, settings, credentials, and telemetry. A web bundle adds the browser-based interface. A headless bundle adds a one-shot runner without a server. Profiles compose these pieces, while configuration patches can replace individual rows in the resulting tree.</p><p>In practical terms, this means the model provider is not welded to the rest of the product. Neither is the filesystem, subprocess runner, terminal, sandbox, subagent implementation, or UI.</p><p>That separation matters for three reasons.</p><p>First, it makes experimentation much easier. You can keep the working environment and change the model, or keep the model and change the tools and policies around it. That is a much cleaner way to learn what is actually responsible for an improvement.</p><p>Second, it creates room for specialized agents. A security-review profile does not need the same tools or approval rules as a rapid prototyping profile. A remote sandbox should be swappable without rewriting every tool that depends on it.</p><p>Third, it reduces dependence on a single model vendor. DSH includes catalog providers and supports custom OpenAI-compatible endpoints, which makes a service such as OpenRouter especially useful. Add the provider, enter the API key, select the available models, and they appear in DSH&#8217;s model picker. The surrounding tools, workspace, permissions, and agent loop stay in place while you change the model behind them.</p><p>The architecture also treats the session log as the source of truth. Model-visible context must be reconstructable from durable events. Forking, resuming, transcripts, replay, and persistence can all derive from that stream. This is the sort of plumbing users rarely celebrate, but it is exactly what makes a long-running agent feel dependable rather than magical and fragile.</p><h2>Why DeepSeek V4 Flash and DSH are a killer combination</h2><p>I connected DSH to <code>deepseek/deepseek-v4-flash</code> through OpenRouter. <a href="https://openrouter.ai/deepseek/deepseek-v4-flash">OpenRouter describes V4 Flash</a> as the efficiency-oriented member of the V4 family, with a mixture-of-experts design, 13 billion active parameters out of 284 billion total, and a one-million-token context window.</p><p>At the time of writing, <a href="https://openrouter.ai/deepseek/deepseek-v4-flash-0731">OpenRouter lists the headline price</a> at just <strong>$0.06 per million input tokens and $0.13 per million output tokens</strong>, although the provider selected and effective caching can change the final rate. At that price, DSH can afford to use the model as an agent rather than treating every request as a precious one-shot answer.</p><p>That distinction is crucial. A harness consumes tokens while it explores files, reasons about the next action, reads tool results, revises a plan, and verifies its work. With an expensive model, those loops can turn a modest coding task into a surprisingly large bill. V4 Flash changes the economics: the iterative behavior that makes DSH useful is also behavior you can afford to use freely.</p><p>Those specifications are useful, but they are not what made the setup click for me.</p><p>What stood out was the balance. The model felt quick enough that the tool-use loop did not become tedious, yet capable enough that the loop remained productive. That matters because agentic coding is not one giant answer. It is a sequence: inspect, decide, act, observe, correct, verify. Latency compounds across every step.</p><p>A fast model that constantly needs rescuing is not cheap. A brilliant model that makes every iteration feel heavy is not always pleasant. In my early use, V4 Flash inside DSH landed in a compelling middle ground: fast, capable, and remarkably inexpensive.</p><p>Again, that is an experience report, not a controlled comparison. Different repositories, providers, prompts, and permission settings can produce different results. OpenRouter may also route across providers, so performance and availability can vary. But the combination was good enough that I stopped thinking about whether the model could use the harness and started thinking about what I could build with it.</p><p>That is usually the sign that a tool is working.</p><h2>Getting the same setup running</h2><p>The official quick start is refreshingly small. With a current Node.js installation, launch the web interface with:</p><pre><code><code>npx @deepseek-ai/dsh web</code></code></pre><p>DSH serves the interface locally at </p><p>http://127.0.0.1:3080</p><p> by default.</p><p>For a direct DeepSeek connection, Settings &#8594; Models accepts a DeepSeek API key. Other supported providers follow the same basic pattern: add the provider, supply its API key or native credential, and select the models you want. Model changes take effect on the next request without restarting DSH.</p><p>After saving, choose <code>deepseek/deepseek-v4-flash</code> from the model picker. That is essentially the whole connection process: API key in, models selected, and the provider is ready to use.</p><p>Then choose a workspace and start a new session. DSH can read and edit workspace files, run commands, delegate work, and maintain a plan. Its web interface asks for approval when an operation requires it under the active permission policy.</p><p>The official <a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md">model configuration guide</a> is worth keeping nearby because DSH is changing quickly and configuration details may move.</p><h2>What I would be careful about</h2><p>DSH is promising, but &#8220;developer preview&#8221; should be taken literally. DeepSeek warns that compatibility-breaking changes will happen. This is a project to explore and build on, not yet a tool I would quietly insert into a critical production workflow and forget.</p><p>I would also start with a disposable branch and conservative permissions. Any coding agent that can edit files and run commands deserves the same operational caution as a capable new collaborator: constrain its workspace, review important diffs, protect credentials, and keep destructive actions behind approval.</p><p>Finally, do not confuse a flexible provider layer with identical results across providers. The model name may be the same while latency, caching, tool-call behavior, and uptime differ. If the setup matters to your work, measure the route you actually use.</p><h2>The bigger shift: from model selection to system design</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!iYQr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!iYQr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2411527,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/211360741?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iYQr!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb07472cc-7c51-4b3b-a915-374e4122e6c0_1672x941.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>DSH arrives at the right moment. Open models are improving quickly, and access to them is becoming interchangeable. That makes the surrounding system more valuable, not less.</p><p>The next useful question may not be, &#8220;Which model is best?&#8221;</p><p>It may be:</p><blockquote><p>Which combination of model, tools, memory, permissions, context policy, and agent loop is best for this job?</p></blockquote><p>DeepSeek Harness is an attempt to make that entire combination editable.</p><p>That is why I find it more interesting than another model-specific coding interface. DSH is not merely a shell around DeepSeek. It is a proposal for how agent software should be composed: small capabilities, explicit seams, durable state, and replaceable parts.</p><p>And increasingly, motion is what matters.</p><div><hr></div><p>DeepSeek Harness is <a href="https://github.com/deepseek-ai/deepseek-harness">open source under the MIT license</a>. It is currently in developer preview and evolving rapidly.</p>]]></content:encoded></item><item><title><![CDATA[Open Knowledge Format (OKF): The Markdown Standard Built for AI Agents]]></title><description><![CDATA[Why Google&#8217;s plain-text spec could become the missing knowledge layer for enterprise AI]]></description><link>https://agenticaidecode.substack.com/p/open-knowledge-format-okf-the-markdown</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/open-knowledge-format-okf-the-markdown</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sun, 28 Jun 2026 23:32:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pb_C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.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="/__u/substackcdn.com/image/fetch/$s_!Pb_C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Pb_C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1764080,&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://agenticaidecode.substack.com/i/204033397?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Pb_C!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa1900fe-cd11-4c49-bcf5-bb2a5f111d03_1672x941.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 aria-hidden="true" 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><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>The most important AI infrastructure announcement of the month might not be a new model, a new benchmark, or another &#8220;agent platform.&#8221; It might be a folder full of Markdown files.</p><p>On June 12, Google Cloud introduced the <strong>Open Knowledge Format</strong>, or <strong>OKF</strong>, a draft specification for turning organizational knowledge into plain-text files that both humans and AI agents can read. The pitch is almost aggressively unsexy: <strong>Markdown files, YAML frontmatter, normal links, ordinary folders</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://agenticaidecode.substack.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>And that is exactly why it is interesting.</p><p>The agent boom has created a strange bottleneck. Models are getting better. Tool-calling is getting more reliable. Protocols like MCP are making it easier for agents to connect to external systems. But the knowledge those agents need &#8212; what a metric actually means, which table joins to which, how an internal process works, why a dashboard number changed last quarter &#8212; is still scattered across wikis, data catalogs, shared drives, code comments, Slack archaeology, and the heads of senior employees.</p><p>Google&#8217;s bet with OKF is simple: before every company builds yet another proprietary knowledge layer for agents, maybe we should agree on a boring file format first.</p><h2>What Google Actually Announced</h2><p>Google Cloud published <strong>OKF v0.1</strong> as an open, vendor-neutral specification for representing knowledge as a directory of Markdown documents with YAML metadata at the top.</p><p>The official Google Cloud blog describes OKF as a way to formalize the &#8220;LLM-wiki&#8221; pattern popularized by Andrej Karpathy: a living library of Markdown files that language models can read, update, cross-reference, and maintain over time. If you have seen <code>AGENTS.md</code>, <code>CLAUDE.md</code>, Obsidian vaults connected to coding agents, or internal &#8220;metadata as code&#8221; repos, you already understand the shape.</p><p>OKF tries to make that shape interoperable.</p><p>A compliant OKF bundle is basically:</p><ul><li><p><strong>Just Markdown</strong> &#8212; readable in any editor and renderable on GitHub.</p></li><li><p><strong>Just files</strong> &#8212; shippable as a repo, tarball, zip, or mounted folder.</p></li><li><p><strong>Just YAML frontmatter</strong> &#8212; a small structured metadata block for fields agents may need to filter or route on.</p></li></ul><p>There is no required SDK. No hosted runtime. No central schema registry. No Google account required to read the files. The spec is available in the public <code>GoogleCloudPlatform/knowledge-catalog</code> GitHub repository, under <strong>Apache-2.0</strong>, and the parent repository had <strong>5,496 stars</strong> and <strong>420 forks</strong> at the time I checked.</p><p>Google also shipped more than just a PDF-style proposal. The repo includes:</p><ul><li><p>The <strong>OKF v0.1 draft specification</strong>.</p></li><li><p>A <strong>reference enrichment agent</strong> that can walk a BigQuery dataset and generate OKF concept documents.</p></li><li><p>A <strong>static HTML visualizer</strong> that turns an OKF bundle into an interactive graph.</p></li><li><p><strong>Three sample bundles</strong>: GA4 e-commerce, Stack Overflow public data, and Bitcoin public datasets.</p></li><li><p>Integration work showing Google Cloud&#8217;s <strong>Knowledge Catalog</strong> ingesting OKF and serving it to agents.</p></li></ul><p>That last bullet matters. Google is not only saying &#8220;here is a neat open format.&#8221; It is also making OKF legible to its own data/agent stack.</p><h2>The Problem: Agents Are Context-Starved</h2><p>The easiest mistake in AI right now is assuming the model is the product.</p><p>In practice, the model is often the least company-specific part of the system. The real value lives in context:</p><ul><li><p>What does &#8220;active user&#8221; mean in this company?</p></li><li><p>Which BigQuery table is the source of truth?</p></li><li><p>Which dashboard is deprecated but still indexed by search?</p></li><li><p>What API endpoint should an internal agent call for refunds?</p></li><li><p>Which incident runbook applies when the data freshness alert fires?</p></li><li><p>Why should nobody join table A to table B without filtering deleted records?</p></li></ul><p>Humans learn these things through onboarding, tribal knowledge, scars, and long-running Slack threads. Agents do not. They need the knowledge written down in a form they can consume.</p><p>Today that context is fragmented across systems with different permissions, formats, exports, and APIs. Every agent builder ends up solving the same context-assembly problem: scrape the wiki, query the catalog, chunk the docs, index the PDFs, ask a senior engineer, pray the answer is current.</p><p>Google&#8217;s framing is useful here: the missing piece is not necessarily another knowledge service. It is a <strong>format</strong>.</p><p>If knowledge can be represented in a stable, portable way, then producers and consumers can separate. A data catalog can export OKF. A documentation team can maintain OKF. An agent can consume OKF. A visualizer can render OKF. A search system can index OKF. None of them have to be the same vendor.</p><p>That is the dream, at least.</p><h2>How OKF Works in Plain English</h2><p>An OKF bundle is a folder. Inside that folder are Markdown files. Each Markdown file represents one &#8220;concept.&#8221;</p><p>A concept can be a table, dataset, metric, API, playbook, runbook, policy, business definition, or any other unit of knowledge worth naming.</p><p>Each concept file starts with YAML frontmatter:</p><pre><code><code>---
type: BigQuery Table
title: Customer Orders
description: One row per completed customer order across all channels.
resource: https://console.cloud.google.com/bigquery?p=acme&amp;d=sales&amp;t=orders
tags: [sales, orders, revenue]
timestamp: 2026-05-28T14:30:00Z
---

# Schema

| Column | Type | Description |
|---|---|---|
| order_id | STRING | Unique order identifier. |
| customer_id | STRING | Links to the customers table. |
| total_usd | NUMERIC | Order total in US dollars. |

# Joins

Joined with [customers](/tables/customers.md) on `customer_id`.

# Citations

[1] [BigQuery table schema](https://console.cloud.google.com/)
</code></code></pre><p>The only required field is <code>type</code>. Everything else &#8212; title, description, resource, tags, timestamp &#8212; is recommended but optional.</p><p>That is a subtle but important design choice. Google is not trying to define a universal taxonomy for every kind of business knowledge. It is saying: every concept should at least identify what kind of thing it is, but producers can invent their own types, sections, and fields.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KWRo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KWRo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1797699,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/204033397?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KWRo!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524bccf9-270b-45e6-8af7-c30c01e90a84_1672x941.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>Consumers are expected to be tolerant. Unknown types should not break a bundle. Missing optional fields should not break a bundle. Broken links should not break a bundle. That permissive model makes OKF feel less like a strict enterprise schema and more like a web-native convention.</p><p>The folder can also include two reserved filenames:</p><ul><li><p><code>index.md</code> &#8212; a directory listing that helps humans or agents browse progressively instead of loading everything at once.</p></li><li><p><code>log.md</code> &#8212; an optional chronological history of updates.</p></li></ul><p>Concepts link to one another with ordinary Markdown links. Over time, those links create a lightweight knowledge graph without requiring a graph database.</p><p>That is the whole trick.</p><h2>Why &#8220;Just Markdown&#8221; Is Not a Cop-Out</h2><p>It is tempting to dismiss OKF as too simple. Markdown plus frontmatter? We have had that forever. Obsidian users are already doing this. Static site generators have done this for years. Developer docs have lived this way since before &#8220;agentic AI&#8221; was a job title.</p><p>But that is also the point.</p><p>The most successful infrastructure standards often look obvious in hindsight. They win because they reduce coordination cost, not because they are technically exotic.</p><p>OKF&#8217;s appeal comes from a few practical properties:</p><p><strong>1. It is human-readable.</strong> An engineer, analyst, or technical writer can open the file without special tooling. That matters because agent knowledge should not become an invisible embedding soup nobody can audit.</p><p><strong>2. It is version-controllable.</strong> Put OKF in Git and suddenly knowledge has diffs, reviews, blame, rollback, and pull requests. &#8220;Why did the agent think weekly active users excluded trial accounts?&#8221; becomes a reviewable knowledge-change question, not a mystery inside a vector database.</p><p><strong>3. It is portable.</strong> A folder can move between systems. A proprietary catalog export often cannot.</p><p><strong>4. It is agent-friendly.</strong> Markdown gives models headings, lists, tables, code blocks, citations, and links. YAML gives tools enough structure to filter and route without over-engineering the content model.</p><p><strong>5. It keeps prose and metadata together.</strong> This is underrated. Many enterprise systems split structured metadata from the explanation humans actually rely on. OKF puts the machine-readable and human-readable layers in the same artifact.</p><p>For AI agents, this matters because the hard part is rarely &#8220;can the model read a paragraph?&#8221; The hard part is &#8220;can the model find the right paragraph, understand its relationship to other concepts, and update the knowledge without destroying the structure?&#8221;</p><p>OKF is trying to make that boring workflow normal.</p><h2>The Bigger Pattern: AI Needs Shared Knowledge Surfaces</h2><p>OKF fits into a wider shift in agent infrastructure.</p><p>Over the past year, the industry has started separating three layers that were previously jammed together:</p><ul><li><p><strong>Tools:</strong> What can the agent do?</p></li><li><p><strong>Protocols:</strong> How does the agent access tools and communicate?</p></li><li><p><strong>Knowledge:</strong> What does the agent know before it acts?</p></li></ul><p>MCP helps with the &#8220;how does the agent access tools?&#8221; question. Agent-to-agent protocols try to answer &#8220;how do agents coordinate?&#8221; OKF is aimed at a different layer: <strong>what portable knowledge representation should agents consume?</strong></p><p>That distinction is useful. OKF does not replace MCP. It complements it. An MCP server could expose an OKF bundle. A coding agent could read an OKF bundle before touching a repo. A data assistant could consult OKF documents before generating SQL. A governance tool could scan OKF for stale resources or missing citations.</p><p>The interesting possibility is not that Google owns the agent knowledge layer. It is that Markdown-based knowledge bundles become a shared artifact across tools.</p><p>If OKF catches on, a company could maintain one curated knowledge base and let many agents consume it: Gemini, Claude, Cursor-style coding agents, internal assistants, BI copilots, search systems, and visualizers.</p><p>That is the part worth paying attention to.</p><h2>The Honest Caveats</h2><p>OKF is promising, but it is not magic.</p><p>First, <strong>v0.1 is a draft</strong>, not a mature standard. Google explicitly calls it a starting point. The spec is short, permissive, and intentionally minimal. That is good for adoption, but it also means teams will still make many local decisions: naming conventions, type taxonomies, body sections, review workflows, freshness policies, and permission models.</p><p>Second, <strong>Markdown does not solve knowledge quality</strong>. If your internal docs are stale, contradictory, or politically contested, OKF will faithfully preserve that mess in a nicer folder. A portable wrong answer is still a wrong answer.</p><p>Third, <strong>security and access control are outside the format</strong>. A folder of Markdown files is easy to move, but enterprise knowledge often contains sensitive data, internal URLs, customer context, and operational runbooks. OKF can fit into a secure workflow, but it does not provide one by itself.</p><p>Fourth, <strong>&#8220;no SDK required&#8221; does not mean &#8220;no tooling needed.&#8221;</strong> At small scale, humans can maintain OKF manually. At enterprise scale, you will want exporters, validators, link checkers, review policies, freshness checks, and probably agents that draft updates. Google&#8217;s reference agent and visualizer are useful proofs of concept, but they are not a full knowledge-management product.</p><p>Fifth, <strong>the Google Cloud connection is both a strength and a risk</strong>. Google publishing OKF in the open gives it credibility and distribution. But for a vendor-neutral standard to become truly neutral, it needs adoption outside Google&#8217;s ecosystem: other clouds, catalog vendors, agent frameworks, documentation tools, and open-source communities.</p><p>The good news: the spec is licensed openly, designed around ordinary files, and explicitly welcomes alternative implementations. That gives it a real chance.</p><h2>What This Means for Builders</h2><p>If you are building agents, OKF is worth studying even if you never adopt the spec directly.</p><p>The underlying lesson is that agents need <strong>curated, navigable, reviewable context</strong> &#8212; not just a bigger context window and a pile of embeddings.</p><p>A practical OKF-style workflow might look like this:</p><ol><li><p>Start with one painful domain: analytics definitions, incident runbooks, product APIs, customer-support policies, or repo-specific engineering knowledge.</p></li><li><p>Create one folder of Markdown concept files.</p></li><li><p>Add only the metadata that matters: type, title, description, tags, source URI, timestamp.</p></li><li><p>Link related concepts with normal Markdown links.</p></li><li><p>Store the bundle in Git.</p></li><li><p>Review knowledge changes like code changes.</p></li><li><p>Let agents read from the bundle before acting.</p></li><li><p>Add automation only after the human-maintained version proves useful.</p></li></ol><p>That last point matters. The fastest way to ruin a knowledge system is to over-automate before the structure is trusted. OKF is most compelling when it starts as a readable wiki and gradually becomes an agent-maintained knowledge substrate.</p><h2>The Takeaway</h2><p>Google&#8217;s Open Knowledge Format is not flashy. It will not demo like a new image model or trend like an autonomous coding agent. It is a draft spec for Markdown files with YAML frontmatter.</p><p>But in the agent era, boring standards may be where the leverage is.</p><p>Models are improving fast. Agents are getting tools. What they still lack is a shared, portable, inspectable way to carry organizational knowledge across systems. OKF is one serious attempt to define that layer before every vendor locks it into their own platform.</p><p>The claim is modest: knowledge should be readable by people, parseable by agents, versioned like code, and portable across tools.</p><p>The implication is much bigger: the next competitive advantage in AI may not be who has the biggest model. It may be who has the cleanest, most current, most agent-readable knowledge base.</p><p>And if that knowledge base is just a folder of Markdown files, maybe that is not boring at all.</p><div><hr></div><p><strong>Sources:</strong> Google Cloud&#8217;s announcement, <a href="https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing">&#8220;How the Open Knowledge Format can improve data sharing&#8221;</a>; the public <a href="https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf">GoogleCloudPlatform/knowledge-catalog OKF repository</a>; OKF <a href="https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md">SPEC.md</a>; coverage from <a href="https://www.searchenginejournal.com/google-cloud-announces-the-open-knowledge-format/579253/">Search Engine Journal</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://agenticaidecode.substack.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[Why I Switched from Claude Design to OpenDesign (And Never Looked Back)]]></title><description><![CDATA[Claude Design is the shiny new tool everyone is talking about.]]></description><link>https://agenticaidecode.substack.com/p/why-i-switched-from-claude-design</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/why-i-switched-from-claude-design</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sat, 06 Jun 2026 21:04:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tf9c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.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="/__u/substackcdn.com/image/fetch/$s_!tf9c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!tf9c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1835530,&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://agenticaidecode.substack.com/i/200935276?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tf9c!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51c088ab-a02b-42d4-b622-43a0098973f6_1672x941.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 aria-hidden="true" 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><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>Claude Design is the shiny new tool everyone is talking about. Launched by Anthropic in April 2026, it turns conversation into polished visuals: pitch decks, landing pages, prototypes, social assets. It is slick. It is also locked behind a Claude Pro subscription and locked to Anthropic models. If you want to use a cheaper model, a local model, or even just keep your design files on your own machine, you are out of luck.</p><blockquote><p>I wanted an alternative that gave me the same creative power without the walls. So I downloaded OpenDesign, connected my own Kimi API key, and used it to prototype Pulse &#8212; a personal finance and subscription tracking app. No terminal commands. No IDE plugins. Just a desktop app, an API key, and a brief.</p></blockquote><p>The results were genuinely promising.</p><h2>What Is OpenDesign?</h2><p>OpenDesign is a free, open-source desktop app that turns AI agents into design collaborators. It is built by the team behind open-design.ai and licensed under Apache-2.0, which means anyone can use it, fork it, or extend it without paying a license fee.</p><p>At the time of writing, the latest stable release is <strong>v0.9.0</strong> (released June 2, 2026). The app is available for macOS (both Apple Silicon and Intel), Windows, and Linux. There is no subscription required. You download it, install it, and bring your own API keys. That is it.</p><p>Here is what ships inside the box:</p><ul><li><p><strong>155 built-in skills</strong> &#8212; these are file-based instruction bundles the agent loads mid-task. They cover everything from copywriting and color theory to creative direction, brainstorming, code migration, and exporting your work to Next.js, React, or Vue.</p></li><li><p><strong>150 portable design systems</strong> &#8212; think Linear, Vercel, Stripe, Apple, Cursor, Figma-style systems, all packaged as portable DESIGN.md files. Drop one in and your agent knows your brand rules instantly.</p></li><li><p><strong>17 agent adapters</strong> out of the box &#8212; the app connects to Claude Code, Codex, Cursor, Gemini CLI, Kimi, DeepSeek, Qwen, GitHub Copilot CLI, Grok, Hermes, Devin for Terminal, OpenCode, Pi, Mistral Vibe, Kiro, Kilo, and Qoder. If you already use one of these, OpenDesign plugs right in.</p></li><li><p><strong>5 deterministic visual directions</strong> &#8212; when you start a project, the app surfaces five structured visual routes. You pick the palette, typography, density, and layout posture up front so the agent is not guessing.</p></li><li><p><strong>Export to HTML, PDF, PPTX, ZIP, or Markdown</strong> &#8212; whatever you generate is a real file on your machine, not a hosted document in someone else&#8217;s cloud.</p></li></ul><h2>Setting Up OpenDesign in Under 10 Minutes</h2><p>Getting started is surprisingly simple. I downloaded the macOS DMG directly from open-design.ai. It is a 238 MB download for Apple Silicon. Double-click, drag to Applications, and launch.</p><p>When the app first opens it asks you to connect an agent. This is where OpenDesign differs from Claude Design. Instead of forcing you into one provider, it shows a list of adapters and asks you to drop in your own API key.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!qYz5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 424w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 848w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!qYz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png" width="1198" height="836" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:836,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/200935276?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 424w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 848w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qYz5!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e726a12-8269-48fc-8fa8-34501a58859f_1198x836.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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 already had a Moonshot Kimi API key from a previous project. I pasted it into the OpenAI compatible adapter field, hit save, and the daemon connected immediately. There was no credit card required for OpenDesign itself. The only cost is whatever the LLM provider charges you for tokens.</p><p>If you prefer DeepSeek, Qwen, Claude, or even a self-hosted model running on your own server, the process is identical. OpenDesign speaks the standard OpenAI-compatible API format, so any provider that supports that protocol works. You can even switch models mid-project by swapping the adapter in settings.</p><h2>Building Pulse: From Idea to Prototype</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!k8Gs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 424w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 848w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 1272w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!k8Gs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:995768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/200935276?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 424w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 848w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 1272w, /__u/substackcdn.com/image/fetch/$s_!k8Gs!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a7a067-c50e-4305-8061-e50f49bbea17_3008x1718.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>Pulse is a smartphone app concept I have been kicking around for a while. The idea is simple: a clean, personal finance dashboard that tracks subscriptions, upcoming renewals, and monthly burn rate. I wanted something that felt modern, mobile-first, and genuinely useful.</p><p>In OpenDesign, I started a new project and selected the Prototype use case. Turn one is a short question form: surface, audience, tone, scale, and brand context. I filled it out in about thirty seconds &#8212; mobile app, personal finance, calm and trustworthy, high fidelity, no existing brand.</p><p>Using the <strong>interactive prototype</strong> skill, it built a working, clickable HTML prototype that behaved like a real app. The output included:</p><ul><li><p>A dashboard view with upcoming subscription charges and countdown timers</p></li><li><p>Category breakdown cards for spending visualization</p></li><li><p>A monthly burn rate summary with color-coded urgency flags</p></li><li><p>Settings and profile views accessible through tab navigation</p></li><li><p>Touch targets sized properly for actual thumbs (minimum 44px)</p></li></ul><p>The entire prototype was a self-contained HTML file I could open in any browser, share via a link, or hand off to a developer as a reference. Because OpenDesign runs the agent locally and writes files directly to my project directory, I owned the output from minute one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!y7lo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 424w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 848w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!y7lo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png" width="1104" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:488598,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/200935276?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 424w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 848w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y7lo!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d950b19-519d-47cd-9e93-d833927d85d6_1104x1456.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>What impressed me most was the taste. The agent did not default to generic rounded-corner cards with gradient overload. Instead it matched the visual direction I selected and held the palette and typography consistent across every screen. When I asked for a second variant with lighter tones, it preserved the component structure and just swapped the CSS variables</p><h2>Why I Connected Kimi Instead of Claude</h2><p>The obvious question: why not just use Claude Design with Claude? Three reasons, and they all come down to flexibility and cost.</p><p><strong>Price.</strong> Kimi charges a fraction of what Claude costs for the same design-generation workload. For prototyping and exploration, where you might iterate ten or twenty times before landing on a direction, that gap adds up fast. OpenDesign passes your API costs straight through with no markup, so the savings are real.</p><p><strong>No lock-in.</strong> With Claude Design, you are tied to Anthropic. If they change pricing, sun a feature, or experience an outage, you have no alternative. With OpenDesign, I can switch from Kimi to DeepSeek to Qwen to a local model without reinstalling anything. It is a settings change, not a platform migration.</p><p><strong>Local models.</strong> OpenDesign supports self-hosted endpoints. If you are running vLLM, SGLang, or any OpenAI-compatible server on your own hardware and generate designs without ever sending a prompt to the cloud. For sensitive projects or air-gapped environments, that is a game-changer.</p><p>If you are curious about the Kimi workflow specifically, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;The Agentic Review&quot;,&quot;id&quot;:501100897,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c518d150-9d03-47c7-8308-dfa109251b9d_1254x1254.png&quot;,&quot;uuid&quot;:&quot;a19f0348-371b-42f6-837c-a9f856be2e2f&quot;}" data-component-name="MentionToDOM"></span> has a practical walkthrough on getting the most out of Kimi for design and coding tasks: <a href="/__u/substack.com/@theagenticreview/p-199959856?utm_source=profile&amp;utm_medium=reader2">How to Use Kimi K2.6 &#8212; The Best Open-Source LLM in the World (And Why Most Knowledge Workers Should)</a>. It is what pointed me toward using Kimi as a creative agent in the first place.</p><h2>The Numbers That Matter</h2><p>When I compare tools I like to look at hard figures. Here is how OpenDesign stacks up in my experience:</p><ul><li><p><strong>Setup time:</strong> Under 10 minutes from download to first generated artifact.</p></li><li><p><strong>Skills available:</strong> 155 file-based skills, auto-loaded when the daemon boots.</p></li><li><p><strong>Design systems:</strong> 150 portable DESIGN.md systems, including major tech and editorial brands.</p></li><li><p><strong>Agent adapters:</strong> 17 first-party BYOK adapters, plus any OpenAI-compatible provider.</p></li><li><p><strong>Supported models:</strong> 20+ flagship models via the optional AMR gateway, including GPT, Claude, Gemini, DeepSeek, and Kimi.</p></li><li><p><strong>Export formats:</strong> HTML, PDF, PPTX, ZIP, Markdown.</p></li><li><p><strong>Cost:</strong> The app is free (Apache-2.0). You only pay for the API tokens you consume.</p></li></ul><h2>How the Workflow Actually Feels</h2><p>OpenDesign follows a four-step loop: Detect, Discover, Direct, Deliver.</p><p><strong>Detect.</strong> The daemon scans your system for installed agents, loads all 155 skills and 150 design systems, and presents them in the web UI. Everything is local. Nothing phones home to an OpenDesign server.</p><p><strong>Discover.</strong> Turn one of any project is a structured intake form. Instead of throwing a vague prompt at a black box, you answer specific questions about audience, tone, fidelity, and brand. It takes under a minute and eliminates the &#8220;make it look professional&#8221; ambiguity that usually wastes three rounds of revision.</p><p><strong>Direct.</strong> You pick one of five deterministic visual directions. Palette is defined in OKLch color space. Font stack, layout posture, and density cues are locked in. The agent now has a concrete brief instead of a guessing game.</p><p><strong>Deliver.</strong> The agent writes files to disk. You preview them in a sandboxed iframe inside the app. When you are happy, you export. There is no waiting for a cloud render, no export watermarks, and no file format restrictions.</p><h2>Who Is This For?</h2><p>OpenDesign is built for solo builders, designers, engineers, product managers, and marketers who want AI-generated design without giving up ownership. If you fit any of these descriptions, it is worth a look:</p><ul><li><p>You want to prototype fast without learning a new design tool.</p></li><li><p>You already use Claude Code, Cursor, Codex, or Kimi and want a visual layer on top.</p></li><li><p>You care about cost and want to use cheaper models for exploration.</p></li><li><p>You need to keep your work local for privacy or compliance reasons.</p></li><li><p>You want editable files (HTML, PPTX, PDF) instead of locked cloud documents.</p></li></ul><h2>Getting Started Yourself</h2><p>If you want to try OpenDesign, the path is simple:</p><ol><li><p>Go to <strong>open-design.ai</strong> and download the desktop app for your platform.</p></li><li><p>Launch it and connect your preferred agent adapter. Kimi, DeepSeek, Claude, Qwen, or a local endpoint all work.</p></li><li><p>Start a new project, answer the intake form, pick a visual direction, and let it run.</p></li><li><p>Preview the output, iterate in chat, and export when you are done.</p></li></ol><p>No terminal required. No IDE plugin. No subscription.</p><h2>The Bottom Line</h2><p>Claude Design proved that AI-driven design generation is ready for mainstream use. OpenDesign proves that you do not need to rent that capability from a single vendor.</p><p>Building Pulse with OpenDesign was the first time I felt like I had a professional design collaborator on my machine, working with the model I chose, generating files I owned, at a cost I controlled. The prototype came out clean, cohesive, and ready to hand off.</p><p>If you are currently paying Claude Pro just to access design features, or if you want to experiment with cheaper models like Kimi and DeepSeek without platform lock-in, OpenDesign is the most credible open alternative available today. Download it, plug in your API key, and see what you can build in the next ten minutes.</p>]]></content:encoded></item><item><title><![CDATA[MiniMax M3: The Open-Weights Promise at the Frontier Table]]></title><description><![CDATA[MiniMax, the Shanghai-based AI company behind the M-series models, launched a 1M-context, natively multimodal, sparse-attention model at a fraction of closed-frontier pricing.]]></description><link>https://agenticaidecode.substack.com/p/minimax-m3-the-open-weights-promise</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/minimax-m3-the-open-weights-promise</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sat, 06 Jun 2026 11:11:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H504!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every few months, an open-weights model claims it has caught the frontier. Most of the time, the claim thins out once people actually use the model: the benchmarks look good, the demos look good, and then real tasks reveal the familiar gap between marketing and production.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!H504!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!H504!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1161563,&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://agenticaidecode.substack.com/i/200874430?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H504!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c699d41-cfc8-44bc-a741-32d4d0ffe7b6_1672x941.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 aria-hidden="true" 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><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><blockquote><p>MiniMax M3, launched June 1, 2026, is more interesting than the usual launch cycle. It combines three things that normally do not arrive together in an open-weights release: strong coding and agentic benchmarks, a 1 million token context window, and native multimodal input across text, images, and video.</p></blockquote><p>The careful wording matters. At launch, M3 was not yet downloadable as weights. MiniMax said it would release the technical report and model weights within roughly ten days, and its Hugging Face organization still did not list an M3 model in the first week. So the right claim is not &#8220;open weights have shipped.&#8221; It is: MiniMax has launched the hosted M3 API and made a near-term open-weights commitment.</p><p>That is still a big deal if the promise lands cleanly.</p><p>Here is the story, with the caveats left visible.</p><h2>What M3 Actually Is</h2><p>MiniMax M3 is a hosted, natively multimodal model that accepts text, image, and video input and outputs text. MiniMax positions it as the first open-weight model to combine frontier coding, efficient 1M-token context, and native multimodality in one system.</p><p>The headline spec is the <strong>1 million token context window</strong>, but the more important engineering claim is how MiniMax makes that window usable.</p><p>The key feature is <strong>MiniMax Sparse Attention (MSA)</strong>. Previous MiniMax M2-series models, including M2.7, leaned away from sparse attention because the production infrastructure was not mature enough. M3 brings sparse attention back with a block-selection design: a lightweight index path scores incoming tokens, identifies the key-value blocks most relevant to each query, and runs the expensive attention computation only on those selected blocks.</p><blockquote><p>Simple analogy: instead of rereading an entire 1,500-page book every time you answer a question, MSA first checks the index, finds the 20 pages that probably matter, and reads those carefully.</p></blockquote><p>MiniMax says this preserves attention over real, uncompressed key-values rather than compressing the key-value cache into a latent representation. The intended tradeoff is straightforward: keep much of the precision of ordinary attention, but cap how many tokens each query must attend to.</p><p>At 1M context, MiniMax claims M3 reduces per-token compute to roughly one-twentieth of the prior generation, with <strong>more than 9x faster prefill and more than 15x faster decode</strong>. Those are MiniMax numbers, not yet independently reproduced at scale, but they are central to why M3 is worth watching. A 1M window on a spec sheet is not the same thing as a 1M window you can afford to use interactively.</p><p>Together AI, MiniMax&#8217;s preferred cloud partner for M3, published an engineering deep dive on what it took to serve the model. Their work included a KV-Block-Major sparse attention kernel, a paged-attention integration for MSA, a Rust-based multimodal preprocessing gateway, and an optimized index-scoring kernel. Together reports <strong>81-125% throughput improvements</strong> across concurrency levels versus its unoptimized baseline.</p><p>That is partner-authored evidence rather than neutral verification, but it is still useful: it shows M3 is not just a model-card announcement. There is real serving work behind it.</p><h2>The Three-Frontiers Claim</h2><p>MiniMax markets M3 as the first open-weight model to bring together three frontier capabilities:</p><ol><li><p><strong>Coding and agentic performance</strong> competitive with strong closed models</p></li><li><p><strong>1M-token context</strong> made practical through sparse attention</p></li><li><p><strong>Native multimodality</strong> across text, image, and video input</p></li></ol><p>The coding claim is the easiest to scrutinize, because it has benchmarks and public evaluations. The long-context and multimodal claims are harder, because they depend heavily on serving infrastructure, latency, reliability, and real workloads.</p><h2>The Benchmark Numbers, Carefully Read</h2><p>MiniMax&#8217;s launch reporting puts M3 at:</p><ul><li><p><strong>SWE-Bench Pro:</strong> 59.0%</p></li><li><p><strong>SWE-Bench Verified:</strong> 80.5%</p></li><li><p><strong>Terminal-Bench 2.1:</strong> 66.0%</p></li></ul><p>On MiniMax&#8217;s own comparison, the SWE-Bench Pro score puts M3 behind Claude Opus 4.7, close to GPT-5.5, and ahead of Gemini 3.1 Pro. That is a serious result for an open-weights-designated model.</p><p>But this is where the squint belongs. MiniMax discloses that several evaluations were run on internal infrastructure, often with agent scaffolding such as Claude Code, Mini-SWE-Agent, or Terminus. Some baselines were taken from official leaderboards, while others were tested by MiniMax. That does not make the numbers fake. It does mean they are not the same as a clean, independent, apples-to-apples leaderboard run.</p><blockquote><p>Independent coverage is starting to appear. Artificial Analysis now lists MiniMax-M3 at 7th on its Intelligence Index, with a score of 55, while also noting that the model is unusually verbose and expensive to evaluate. That is an important outside signal, but some vendor-claimed benchmark results remain marked as not yet independently verified. LMArena and other neutral boards are still worth watching over the next few weeks.</p></blockquote><p>One more caution: M3 should not be treated as proven across all reasoning domains. Early third-party and community feedback points to familiar risks for reasoning-heavy agent tasks: verbosity, slow loops, and token-heavy self-correction. That does not erase its coding performance, but it does suggest the model is better described as a strong coder and agent than as a general novel-reasoning breakthrough.</p><h2>The Pricing Disruption</h2><p>Here is the number that changes the economics: <strong>$0.60 per million input tokens and $2.40 per million output tokens</strong> at standard pricing, with a 50% launch discount visible through some providers in the first week.</p><p>OpenRouter and Qubrid list M3 at <strong>$0.30 per million input tokens and $1.20 per million output tokens</strong> during the promotional period. OpenRouter shows a 1M context window. Qubrid also exposes M3 through an OpenAI-compatible endpoint with image input examples.</p><p>Compared with closed frontier models, the gap is large. OpenAI lists GPT-5.5 at $5 per million input tokens and $30 per million output tokens. Anthropic lists Claude Opus 4.7 and Opus 4.8 at $5 per million input tokens and $25 per million output tokens. On raw token price, M3 is dramatically cheaper.</p><p>The catch is effective cost per task. A model that loops, over-plans, or emits long reasoning traces can burn a lot of tokens even if each token is cheap. For agentic workloads, you should measure completed task cost, not just input and output rates.</p><p>The other pricing caveat is context length. MiniMax says requests up to 512K input tokens use the standard rate, while longer requests are billed at a higher long-context rate. The 1M window is real as a capability claim, but the cheapest advertised rate may not apply to every 1M-token workload.</p><h2>How to Access MiniMax M3</h2><p><strong>MiniMax API &#8211; direct from the source.</strong><br>MiniMax&#8217;s official examples use <em>https://api.minimax.io</em> for M3. This is the right path if you want direct access to MiniMax&#8217;s own hosted model and native multimodal features.</p><p><strong>OpenRouter &#8211; fastest testing path.</strong><br>OpenRouter lists <em>minimax/minimax-m3</em> with promotional pricing, a 1M context window, and OpenAI-compatible access. If you want to test quickly without adding another vendor integration, this is the cleanest route.</p><p><strong>Together AI &#8211; production serving once weights are public.</strong><br>Together AI says it is MiniMax&#8217;s preferred cloud partner and will host the open-weights model as a developer endpoint after public release. Given the amount of inference engineering Together has already published, this is the infrastructure path to watch for scale.</p><p><strong>Qubrid AI &#8211; another hosted endpoint.</strong><br>Qubrid lists <em>MiniMaxAI/MiniMax-M3</em>, OpenAI-compatible access, image input examples, and promotional pricing. It is a viable hosted option if Qubrid already fits your stack.</p><p><strong>OpenCode / Pi &#8211; free trial lane, with limits.</strong><br>MiniMax M3 Free appears in the OpenCode/Pi ecosystem, but the listed free model has a <strong>200K context window</strong>, not the full 1M window. It is useful for trying the model, not for validating the full long-context claim.</p><p><strong>Quick integration checklist:</strong></p><ul><li><p>Start with OpenRouter if you want to test in minutes.</p></li><li><p>Use MiniMax directly if you need first-party multimodal behavior.</p></li><li><p>Watch Together AI once the weights are public and you need optimized serving.</p></li><li><p>Treat OpenCode/Pi free access as a limited trial lane, not a full 1M-context evaluation.</p></li></ul><h2>The Strategic Implication</h2><p>The important thing M3 suggests is that the capability gap between closed and open models may be narrowing faster than the pricing gap.</p><p>If MiniMax releases the weights on schedule, if the license is usable, and if independent benchmarks broadly support the launch numbers, M3 becomes an obvious candidate for hybrid AI stacks: route cost-sensitive, long-context, bulk coding and document work to M3, then reserve GPT-5.5, Claude Opus, or Gemini for tasks where their last few quality points are worth the premium.</p><p>That is a real threat to closed-model pricing, but not because M3 has conclusively beaten the closed frontier. It has not. The threat is subtler: once an open-weights model is close enough on valuable work, the premium model has to justify every extra dollar.</p><h2>The Bottom Line</h2><p>The combination of coding quality, 1M-context architecture, native multimodality, and low token pricing is genuinely unusual. If the weights and license arrive cleanly, MiniMax will have done more than publish another strong model. It will have made open-weights routing a serious production question.</p><p>For years, the open-weights conversation was mostly about catching up. M3 suggests the next phase may be about allocation: which model you use for which job, based on latency, modality, context length, license, and total task cost.</p><p>The frontier did not get overthrown this week. But it did get a much cheaper neighbor with a very large context window.</p><div><hr></div><p><em>Have you run M3 through your own tasks? Share your real-world results in the comments.</em></p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[JetBrains’ Mellum 2 Feels Like a Practical Bet on AI for Developers]]></title><description><![CDATA[A practical coding model for the quieter, more useful future of developer AI.]]></description><link>https://agenticaidecode.substack.com/p/jetbrains-mellum-2-feels-like-a-practical</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/jetbrains-mellum-2-feels-like-a-practical</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Tue, 02 Jun 2026 01:29:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!97d0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff166881-38cd-463f-ab6d-e1fa06cf4dcc_2642x547.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>JetBrains has open-sourced Mellum 2, its new AI model for software engineering. And what I find interesting is not simply that there is another coding model in the world. We have plenty of those.</p><p>What feels more important is the philosophy behind it.</p><p>Mellum started as a model focused on code completion inside JetBrains IDEs. Mellum 2 is broader: it can help with code generation, debugging, editing, tool use, routing, and agent-style workflows. But JetBrains is not trying to pitch it as the biggest, most magical model on the market.</p><p>Instead, the pitch is more grounded: make a model that is fast, efficient, open, and useful inside real developer workflows.</p><p>That feels right to me. A lot of AI tooling still behaves as if every problem should be sent to one giant model. But software work is full of smaller tasks: summarize this context, choose the right tool, check this change, explain this function, help an agent take the next step. Those jobs do not always need the largest model. They need something quick and reliable.</p><p>That is where Mellum 2 is interesting. It points toward a future where developer AI is not one big chatbot sitting next to the IDE, but a system of smaller, specialized pieces working quietly inside the tools we already use.</p><p>JetBrains has always cared about the shape of a developer&#8217;s day: autocomplete, refactoring, navigation, inspections, tests. Mellum 2 feels like an extension of that same instinct. Not AI as theater. AI as part of the workflow.</p><p>And honestly, that might be the version of AI developers actually keep using.</p><p>Sources: <a href="https://blog.jetbrains.com/ai/2026/06/mellum2-goes-open-source-a-fast-model-for-ai-workflows/">JetBrains&#8217; Mellum2 announcement</a></p>]]></content:encoded></item><item><title><![CDATA[LiteParse + Gemma 4 ⚡ Building a Lightning-Fast Local RAG]]></title><description><![CDATA[Most AI document apps sound simple at first.]]></description><link>https://agenticaidecode.substack.com/p/liteparse-gemma-4-building-a-lightning</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/liteparse-gemma-4-building-a-lightning</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sun, 31 May 2026 14:17:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!97d0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff166881-38cd-463f-ab6d-e1fa06cf4dcc_2642x547.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most AI document apps sound simple at first.</p><p>&#8220;Upload a PDF and ask questions.&#8221;</p><p>But anyone who has tried to build that locally knows the truth: the hard part is not always the LLM. Very often, the hard part is getting clean, useful text out of messy documents.</p><p>PDFs are especially annoying. They come with headers, footers, page numbers, tables, scanned pages, broken lines, and strange spacing. And real life is not only PDFs either. People have Word files, PowerPoint decks, spreadsheets, CSVs, images, notes, and manuals.</p><p>That is why I wanted to try <strong>LiteParse</strong>.</p><p>LiteParse gives the project a fast local document parsing layer. It can handle PDFs and other common document types without needing to send files to a cloud service. That matters a lot if you care about privacy, speed, or just having a workflow that runs on your own machine.</p><p>Once the documents are parsed, the rest of the app becomes much easier to reason about. The text can be split into smaller pieces, embedded, stored locally, and searched when a user asks a question.</p><p>For storage and search, I used <strong>Zvec</strong>. It keeps the project lightweight because I do not need to run a separate vector database server.</p><p>For answers, I used <strong>Gemma 4</strong> through Ollama.</p><p>I like this setup because each tool has a clear role. LiteParse handles the messy documents. Zvec handles local retrieval. Gemma 4 turns the retrieved context into a readable answer.</p><p>The result is a small local RAG app that feels practical instead of overbuilt.</p><h2>What It Feels Like to Use</h2><p>The workflow is simple.</p><p>Put documents in the docs folder, ingest and then run in CLI:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!CbAr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 424w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 848w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 1272w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!CbAr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png" width="1456" height="217" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:217,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110057,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticaidecode.substack.com/i/199984035?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 424w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 848w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 1272w, /__u/substackcdn.com/image/fetch/$s_!CbAr!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e6a3cb2-bb9d-4a7f-9a06-ce3433bcf043_2330x348.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>That is the whole idea. No hosted API. No cloud document parser. No separate vector database service.</p><h2>Why LiteParse Makes a Difference</h2><p>Parsing is one of those steps that sounds small until it slows everything down.</p><p>If parsing is slow, re-indexing becomes annoying. If parsing is messy, retrieval gets worse. If retrieval gets worse, the LLM has poor context and starts giving weaker answers.</p><p>LiteParse helps because it makes document parsing feel like a normal part of the workflow instead of a heavy preprocessing chore.</p><p>That is especially useful when documents change. If I replace a file and run ingestion again, the app replaces the old embeddings for that file path. So the local index can stay fresh without me manually cleaning up old entries.</p><h2>Why I Like This Stack</h2><p>This stack feels good because it stays small.</p><p>LiteParse is fast and local.<br>Zvec is lightweight.<br>Ollama makes local models easy to run.<br>Gemma 4 gives the app a useful answer layer.</p><p>For personal notes, manuals, textbooks, PDFs, slides, spreadsheets, and other everyday documents, this is enough to build something genuinely useful.</p><p>Not every RAG app needs to become a platform.</p><p>Sometimes the best version is a local tool that reads your files, builds a searchable index, and lets you ask questions without sending your documents anywhere.</p><p>You can check out the repo here: <a href="https://github.com/aiplainandsimple/rag-with-liteparse-zvec-ollama">aiplainandsimple/rag-with-liteparse-zvec-ollama</a></p><p>Suggested links:</p><ul><li><p><a href="https://github.com/run-llama/liteparse">LiteParse GitHub</a></p></li><li><p><a href="https://gemma4.dev/docs/models">Gemma 4 model reference</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[LiteParse v2.0: The Small Parser That Wants to Run Everywhere]]></title><description><![CDATA[LlamaIndex rewrote LiteParse in Rust. The interesting part is not just that it got faster. It is that document parsing is becoming local, portable infrastructure for agents.]]></description><link>https://agenticaidecode.substack.com/p/liteparse-v20-the-small-parser-that</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/liteparse-v20-the-small-parser-that</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sat, 30 May 2026 20:44:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_Omc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.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="/__u/substackcdn.com/image/fetch/$s_!_Omc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_Omc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2059540,&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://agenticaidecode.substack.com/i/199908250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_Omc!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a39e7cf-306c-4372-8a5d-a7a988a9b3df_1672x941.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 aria-hidden="true" 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><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>There is a boring sentence hiding inside almost every AI product:</p><blockquote><p>First, we parse the document.</p></blockquote><p>It sounds like plumbing. It sounds like the thing you do before the real work begins.</p><p>The model will reason. The agent will plan. The retrieval system will surface context. The workflow will take action.</p><p>But anyone who has built with real documents knows the unpleasant truth: parsing is where the system either earns the right to be intelligent or quietly poisons everything downstream.</p><p>If the parser drops a table header, the agent answers from the wrong column. If it mangles reading order, the summary sounds confident and wrong. If it loses page position, you cannot trace a number back to where it came from. If every document lookup requires a remote service call, latency creeps into the loop until the agent feels less like a collaborator and more like a batch job with a typing animation.</p><p>That is why LiteParse v2.0 is worth more attention than a typical library release.</p><p>It is not a new model. It is not a shiny agent demo. It is the less glamorous layer underneath: a fast local parser that can turn PDFs and office documents into usable text, page structure, screenshots, and spatial information without sending the file to an LLM.</p><p>And in v2.0, LlamaIndex rebuilt that layer in Rust.</p><p>That one decision changes the shape of the project. LiteParse is no longer just a Node package sitting in one corner of the ecosystem. It now has a portable core that can show up in Python, Node/TypeScript, Rust, the command line, and WebAssembly.</p><p>In other words: the parser wants to run wherever the agent runs.</p><h2>Why Parsing Became an Agent Problem</h2><p>Document parsing used to feel like ETL work.</p><p>You took a file, ran OCR or conversion, dumped the result into text or JSON, stored it somewhere, and moved on. That is still fine for plenty of pipelines.</p><p>Agents behave differently.</p><p>An agent may not know what it needs from a document until halfway through a task. It might skim the file, then zoom into page 17, then compare a table cell against a footnote, then ask for the original screenshot because the plain text looks suspicious. It might need text most of the time and visual evidence some of the time. It might need to do this again and again inside one reasoning loop.</p><p>That changes parsing from a preprocessing step into an interactive capability.</p><p>This is where LiteParse is interesting. It is designed for the common path: fast local extraction, spatial text, bounding boxes, screenshots, JSON or text output, and enough layout awareness that an agent is not forced to treat every document as a flat string.</p><p>That spatial layer matters more than people like to admit.</p><p>Documents are visual objects pretending to be text files. A PDF invoice, policy document, government form, scientific paper, slide deck, or financial table often communicates meaning through placement. A number in a column is not just a number. Its meaning comes from the header above it, the section around it, and sometimes the tiny note sitting below the table.</p><p>Flatten the page badly and the model has to guess.</p><p>Keep enough structure and the model gets to reason.</p><p>LiteParse&#8217;s sweet spot is not &#8220;understand every possible document perfectly.&#8221; It is: make the cheap local pass good enough, fast enough, and portable enough that developers can use it constantly.</p><p>That is a powerful place to sit.</p><h2>What Actually Changed in v2.0</h2><p>The headline is the Rust rewrite.</p><p>The old version had a practical ceiling: it came from the Node/TypeScript world. That was fine if your app lived there, less fine if you wanted the same parser inside Python workflows, Rust services, desktop apps, browser contexts, edge runtimes, or agent tools.</p><p>Rust gives LiteParse a more durable center of gravity. Instead of wrapping one runtime from another, the project can expose the same parsing core through several surfaces:</p><pre><code><code># Node library + CLI
npm i @llamaindex/liteparse

# Python library + CLI
pip install liteparse

# Rust library + CLI
cargo install liteparse

# Browser / edge WASM package
npm i @llamaindex/liteparse-wasm
</code></code></pre><p>The same <code>lit</code> command can be used from native installs. Python users get a normal library. TypeScript users get their package. Rust users get a crate. Browser and edge developers get a WASM path.</p><p>That distribution story is the real product move.</p><p>A parser that only works in one runtime is a library. A parser that works in the places developers already build starts to look like infrastructure.</p><p>The browser piece is especially telling. LiteParse can parse file bytes locally in WebAssembly. OCR is handled through a callback there, because the browser cannot simply bundle the same native system dependencies as a desktop or server environment.</p><p>That is not a weakness so much as a sign of serious portability. Native environments can lean on PDFium and Tesseract-backed OCR. Browser environments can still parse locally and bring their own OCR strategy.</p><p>This is what &#8220;runs everywhere&#8221; tends to mean in real software: not that every environment is identical, but that the core abstraction survives the trip.</p><h2>The Speed Part</h2><p>The number everyone will notice is &#8220;up to 100x.&#8221;</p><p>Small files benefit the most because the old path paid runtime startup costs. Bigger files still get a meaningful improvement. One of the benchmark examples floating around the release is a 457-page, 100 MB document parsed in under a second.</p><p>Do you need to believe every document you touch will be 100x faster?</p><p>No.</p><p>That is not the useful question.</p><p>The useful question is what becomes possible when parsing is fast enough that you stop designing around it.</p><p>When parsing is slow, developers avoid it. They pre-parse everything. They cache aggressively. They send files to specialized services. They limit how often an agent can inspect source material. These choices are often reasonable, but they also make the agent less adaptive.</p><p>The agent cannot cheaply say, &#8220;Wait, show me the original page again.&#8221;</p><p>Fast local parsing changes that product feel. Suddenly it is more reasonable to:</p><ul><li><p>Parse a document immediately when a user uploads it.</p></li><li><p>Give an agent text first, then let it request screenshots for tricky pages.</p></li><li><p>Keep sensitive documents on-device for first-pass extraction.</p></li><li><p>Run parsing in a desktop app, browser app, server process, or edge workflow.</p></li><li><p>Use local parsing as the default and escalate only the hard cases.</p></li></ul><p>That last point is the architecture I find most compelling.</p><p>LiteParse does not need to replace heavier document AI systems. It just needs to make the default path cheaper.</p><p>For clean PDFs, straightforward office docs, basic screenshots, page ranges, and common extraction jobs, local parsing should be boring. For dense tables, handwriting, scanned messes, charts, multi-column layouts, and high-stakes extraction, you can still reach for a stronger parser like LlamaParse.</p><p>That is not a contradiction. It is a stack.</p><h2>Local First Is a Product Feature</h2><p>There is a privacy story here, but it is not only about privacy.</p><p>Yes, local parsing is useful when documents are sensitive. Contracts, invoices, medical records, financial statements, internal decks, customer files. Not every first pass should require uploading the file somewhere.</p><p>But local also means fast iteration.</p><p>It means an agent can inspect a file as part of its working memory, not as a separate cloud job. It means a developer can build a tool that feels immediate. It means a desktop app can parse documents without inventing a backend. It means a browser app can do useful work before a file ever leaves the machine.</p><p>Local is not just a compliance posture. It is a user experience.</p><p>When tools move closer to the user, they become available in more moments. And agents need tools that are available in the moment.</p><h2>The Boring Commands Are the Point</h2><p>LiteParse is not trying to make parsing feel magical.</p><p>That is part of the appeal.</p><p>You can use the CLI:</p><pre><code><code>lit parse document.pdf
lit parse document.pdf --format json -o output.json
lit parse document.pdf --target-pages "1-5,10,15-20"
lit parse document.pdf --no-ocr
lit batch-parse ./input-directory ./output-directory
lit screenshot document.pdf -o ./screenshots</code></code></pre><p>You can use Python:</p><pre><code><code>from liteparse import LiteParse

parser = LiteParse()
result = parser.parse("document.pdf")
print(result.text)

for page in result.pages:
    print(page.page_num, len(page.text_items))</code></code></pre><p>And you can install it as an agent skill:</p><pre><code><code>npx skills add run-llama/llamaparse-agent-skills --skill liteparse</code></code></pre><p>None of this is cinematic. Good.</p><p>The best infrastructure usually looks boring from the outside. It gives you simple commands, predictable outputs, and a few sharp options when you need them: page ranges, screenshots, OCR control, batch parsing, JSON output.</p><p>That is exactly the kind of tool an agent should be able to call without drama.</p><h2>The Bigger Lesson</h2><p>The AI world keeps rediscovering that models are not enough.</p><p>For a while, it was tempting to imagine that bigger multimodal models would swallow document processing whole. Just hand the PDF to the model. Let it see everything. Let it extract the answer.</p><p>Sometimes that is exactly the right move.</p><p>But it is not always cheap. It is not always private. It is not always fast. And it is not always necessary.</p><p>The better pattern is layered:</p><ol><li><p>Use deterministic local tools for the easy parts.</p></li><li><p>Preserve layout and provenance so the model gets better context.</p></li><li><p>Escalate to heavier parsing or multimodal reasoning only when the document demands it.</p></li><li><p>Keep visual access available so the agent can recover when plain text is not enough.</p></li></ol><p>That is the world LiteParse v2.0 fits into.</p><p>It is not trying to be the one parser to rule them all. It is trying to be the parser you can afford to use all the time.</p><p>And that distinction matters.</p><h2>Why Rust Matters Here</h2><p>Rust is easy to overhype, so let me put it plainly: Rust matters here because distribution matters.</p><p>If your parser is fast but trapped in one ecosystem, adoption gets awkward. If your parser is portable, embeddable, and exposed through the languages and runtimes developers already use, it can disappear into products.</p><p>That is the kind of success infrastructure wants.</p><p>Nobody wants to think about the parser every day. They want to trust that when a user uploads a PDF, the system can quickly produce usable text, page structure, and evidence. They want the agent to have enough context to avoid silly mistakes. They want the easy documents to stay easy.</p><p>Rust gives LiteParse a shot at being that kind of quiet layer.</p><h2>The Caveat</h2><p>Parsing is still hard.</p><p>&#8220;Local&#8221; does not mean &#8220;perfect.&#8221; &#8220;Model-free&#8221; does not mean &#8220;magical.&#8221; Anyone who has fought a scanned table, a sideways invoice, a weird two-column report, or a chart embedded in a slide knows the pain.</p><p>So the right question is not:</p><blockquote><p>Should I use LiteParse or LlamaParse?</p></blockquote><p>The better question is:</p><blockquote><p>Which parts of my workflow deserve a fast local first pass, and which parts need heavier document understanding?</p></blockquote><p>For a lot of products, the answer will be both.</p><p>LiteParse for the common path. LlamaParse or a stronger multimodal workflow for the hard path. The model for reasoning. The parser for giving the model something sane to reason over.</p><p>That is a much healthier architecture than throwing every document directly at the most expensive layer and hoping the bill, latency, and audit trail work themselves out later.</p><h2>The Quiet Takeaway</h2><p>AI agents do not just need better brains. They need better hands.</p><p>They need tools that are fast enough to use repeatedly, local enough to trust with sensitive files, portable enough to run wherever the workflow lives, and structured enough to preserve the evidence behind an answer.</p><p>LiteParse v2.0 is one of those tools.</p><p>It is easy to underestimate because it lives below the model layer. But the best agent systems are not built from models alone. They are built from small, sharp, reliable tools that make the model&#8217;s job easier.</p><p>Parsing documents is one of those jobs that looks boring until it breaks.</p><p>LiteParse v2.0 is LlamaIndex trying to make it boring again.</p><div><hr></div><h3>Further Reading</h3><ul><li><p>LlamaIndex: <a href="https://www.llamaindex.ai/blog/liteparse-v2-0-runs-everywhere">LiteParse v2.0 Runs Everywhere</a></p></li><li><p>GitHub: <a href="https://github.com/run-llama/liteparse">run-llama/liteparse</a></p></li><li><p>PyPI: <a href="https://pypi.org/project/liteparse/">liteparse</a></p></li><li><p>GitHub: <a href="https://github.com/run-llama/ParseBench">run-llama/ParseBench</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[I Built a Fully Local RAG with Zvec and Ollama]]></title><description><![CDATA[A small experiment in chatting with local documents without sending them to the cloud.]]></description><link>https://agenticaidecode.substack.com/p/i-built-a-fully-local-rag-with-zvec</link><guid isPermaLink="false">https://agenticaidecode.substack.com/p/i-built-a-fully-local-rag-with-zvec</guid><dc:creator><![CDATA[Agentic AI Decode]]></dc:creator><pubDate>Sun, 24 May 2026 18:46:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SqjJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.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="/__u/substackcdn.com/image/fetch/$s_!SqjJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!SqjJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1674960,&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://aiplainandsimple.substack.com/i/199096765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SqjJ!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d617a7-5d43-4717-95b1-e707d12a7bef_1672x941.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 aria-hidden="true" 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><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 have been playing with a small local RAG project: a command-line chatbot that reads a folder of documents, retrieves the most relevant chunks, and asks a local model to answer from that context.</p><p>The stack is intentionally small:</p><ul><li><p>Zvec for local vector search</p></li><li><p>Ollama for local embeddings and answer generation</p></li><li><p>Rich for a nicer terminal experience</p></li></ul><p>The goal was not to build a giant production platform. I wanted something simpler:</p><blockquote><p><em>Can I build a useful RAG loop that runs on my own machine, with my documents staying local?</em></p></blockquote><p>The answer is yes. And the nice part is that the system is understandable. Each piece has one job.</p><h2>The Shape of the App</h2><p>RAG stands for Retrieval-Augmented Generation. The idea is simple: before asking a language model to answer, first retrieve the pieces of your data that are likely to matter.</p><p>In this project, the flow looks like this:</p><ol><li><p>Read `.txt`, `.md`, and `.pdf` files from a local folder.</p></li><li><p>Break the documents into chunks.</p></li><li><p>Use Ollama to create embeddings for those chunks.</p></li><li><p>Store the chunks and vectors in Zvec.</p></li><li><p>When I ask a question, embed the question too.</p></li><li><p>Ask Zvec for the closest chunks.</p></li><li><p>Send those chunks to a local Ollama model.</p></li><li><p>Print the answer with citations.</p></li></ol><p>That is the whole loop. No hosted embedding API, no remote vector database, no document text leaving the machine.</p><h2>Why I Used Zvec</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!e-nC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!e-nC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2342704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://aiplainandsimple.substack.com/i/199096765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!e-nC!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F603f0bde-a47e-412e-8727-c1ab06717ab1_1672x941.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>Zvec is the retrieval layer in this project. The Zvec is a lightweight, in-process vector database built for high-performance semantic search. That caught my attention because most RAG examples quickly become a pile of services: one thing for embeddings, one thing for vector storage, another thing for generation, sometimes a web server on top.</p><p>For this project, I wanted the vector database to feel more like a local library than an infrastructure project.</p><p>Zvec fits that nicely. It runs inside the Python process and persists its data locally under:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;dbc80349-42d0-4950-b032-d35ed1312279&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">./rag_store</code></pre></div><p>For each document chunk, I store:</p><ul><li><p>the chunk text</p></li><li><p>the embedding vector</p></li><li><p>the source filename</p></li><li><p>the chunk id</p></li><li><p>a content hash</p></li><li><p>the file modification time</p></li></ul><p>The metadata matters. It lets the CLI cite where an answer came from, and it gives the ingestion step enough information to replace stale chunks when a file changes.</p><p>When I ask a question, the CLI embeds the question, queries Zvec, and gets back the top matching chunks. Only those chunks go to the LLM.</p><p>That is the part of RAG I like most: the model is not being asked to magically know everything. It is being given a small packet of relevant context and asked to answer from that.</p><h2>Why I Used Ollama</h2><p></p><p>Ollama is the local model runtime. It gives the app a simple local API for model calls.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hEpS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_webp, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hEpS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/debd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1982867,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://aiplainandsimple.substack.com/i/199096765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_424, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_848, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_1272, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hEpS!, /__u/agenticaidecode.substack.com/w_1456, /__u/agenticaidecode.substack.com/c_limit, /__u/agenticaidecode.substack.com/f_auto, /__u/agenticaidecode.substack.com/q_auto:good, /__u/agenticaidecode.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebd73d8-92a7-4cdd-beef-cd0ee3a6d25d_1672x941.png 1456w" sizes="100vw" loading="lazy"></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 aria-hidden="true" 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><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>That means Ollama handles model inference, while Zvec handles retrieval.</p><p>I like that split because it keeps the project easy to reason about:</p><ul><li><p>If retrieval is bad, inspect the chunks Zvec returned.</p></li><li><p>If the answer is bad, inspect the prompt and model response.</p></li><li><p>If documents change, re-run ingestion.</p></li></ul><p>There is no mystery service in the middle.</p><p>In practice, retrieval is fast. Generation is the slower part, as expected, because the local LLM has to actually write the response.</p><h2>What I Learned</h2><p>The biggest lesson is that local RAG becomes much easier to understand when the architecture is small.</p><p>Zvec keeps retrieval close to the app. Ollama keeps model calls local. Rich makes the terminal less painful to look at. Together, they make a compact loop that is easy to test, break, inspect, and rebuild.</p><p>The current version is still simple, but that is the point. It is a local RAG system that fits in one small Python project.</p><h2>Final Thoughts</h2><p>I like tools that have a clear shape.</p><p>There is plenty that could be added later: better chunking, reranking, hybrid search, a small web UI, document watchers, or model selection per session. But the core loop already works:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;1260b2f1-4b31-4d3f-a646-0fdf1cfcc060&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">local documents &#8212;&gt; local retrieval &#8212;&gt; local generation &#8212;&gt; cited answer</code></pre></div><p>That is a satisfying place to start.</p><h2>Links</h2><ul><li><p>Zvec: <a href="https://zvec.org/en/">https://zvec.org/en/</a></p></li><li><p>Ollama docs: <a href="https://docs.ollama.com/">https://docs.ollama.com/</a></p></li><li><p>Project repo: <a href="https://github.com/aiplainandsimple/rag-with-zvec-ollama">https://github.com/aiplainandsimple/rag-with-zvec-ollama</a></p></li></ul>]]></content:encoded></item></channel></rss>