<?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[CloudCast]]></title><description><![CDATA[Every week we share what we're building, distilled research on frontier tech, the hottest open-source tooling, and how you can use them to level up your cloud governance (FinOps) game; subscribe to stay up to date.  ]]></description><link>https://bluearch.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!to-p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65d5832e-06ce-488f-bc1c-fbb8c7d92356_145x145.png</url><title>CloudCast</title><link>https://bluearch.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 09 Jun 2026 16:11:25 GMT</lastBuildDate><atom:link href="https://bluearch.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Joel Proctor]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[bluearch@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[bluearch@substack.com]]></itunes:email><itunes:name><![CDATA[Joel Proctor]]></itunes:name></itunes:owner><itunes:author><![CDATA[Joel Proctor]]></itunes:author><googleplay:owner><![CDATA[bluearch@substack.com]]></googleplay:owner><googleplay:email><![CDATA[bluearch@substack.com]]></googleplay:email><googleplay:author><![CDATA[Joel Proctor]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Route LLM calls by cost, not just quality]]></title><description><![CDATA[How intelligent model routing cuts inference spend without sacrificing output accuracy for your workloads.]]></description><link>https://bluearch.substack.com/p/route-llm-calls-by-cost-not-just</link><guid isPermaLink="false">https://bluearch.substack.com/p/route-llm-calls-by-cost-not-just</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Mon, 08 Jun 2026 16:42:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TCac!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>LLM bills behave like cloud bills used to: easy to start, hard to attribute, surprisingly large by the end of the quarter. Most teams pick one frontier model and route every call to it &#8212; coding, summarization, classification, "what's 2+2." That's the spend leak. The fix isn't a cheaper model; it's <em>picking</em> the model per request.</p><p>Below: three tools that turn "which model" into a routing decision instead of a hardcoded constant. One academic OSS router, one proxy/gateway that's become the de facto control plane, and one commercial marketplace that prices the decision for you.</p><div><hr></div><h3>RouteLLM</h3><p><strong>Summary.</strong> <a href="https://github.com/lm-sys/RouteLLM">RouteLLM</a> is a framework for serving and evaluating LLM routers &#8212; small models that decide whether a query should go to a strong (expensive) model or a weak (cheap) one.</p><ul><li><p>Maintained by <a href="https://github.com/lm-sys">LMSYS</a>, the group behind Chatbot Arena.</p></li><li><p>Ships pretrained routers plus a benchmark harness so you can tune the strong/weak threshold on your own traffic.</p></li><li><p>Drop-in OpenAI-compatible server: point your SDK at the RouteLLM endpoint, get back a routed response.</p></li><li><p>Exposes a single knob &#8212; the cost/quality threshold &#8212; that you can move based on observed quality on <em>your</em> prompts, not someone else's leaderboard.</p></li></ul><p><strong>Use case.</strong> Anywhere a single application sends a mix of hard and easy prompts to the same model.</p><ul><li><p>Imagine a support-ticket summarizer that currently hits GPT-4-class models for every message, including one-line "thanks, resolved" replies. With RouteLLM in front, you could route the trivial ones to a small open model and reserve the expensive call for genuinely ambiguous tickets.</p></li><li><p>Imagine a code assistant where 70% of completions are boilerplate. With a tuned router you could send those to a 7B model and only escalate the architectural questions.</p></li><li><p>The FinOps shape: cost per request becomes a <em>distribution</em>, not a flat rate, and you get a dial to shift the distribution without redeploying app code.</p></li></ul><p>No invented savings numbers here &#8212; the actual ratio depends entirely on your prompt mix. Benchmark before you believe a vendor's headline figure.</p><div><hr></div><h3>LiteLLM</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TCac!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TCac!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!TCac!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!TCac!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!TCac!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TCac!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;BerriAI/litellm&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="BerriAI/litellm" title="BerriAI/litellm" srcset="https://substackcdn.com/image/fetch/$s_!TCac!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!TCac!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!TCac!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!TCac!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9a1951b-1bd5-401b-b865-78264bc37e62_1200x600.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/BerriAI/litellm">LiteLLM</a> is a proxy and SDK that gives you one OpenAI-compatible interface in front of ~100 model providers (OpenAI, Anthropic, Bedrock, Vertex, Azure, local Ollama, and a long tail).</p><ul><li><p>Maintained by <a href="https://github.com/BerriAI">BerriAI</a>.</p></li><li><p>Two ways to run it: as a Python SDK inside your app, or as a standalone proxy server your services hit over HTTP.</p></li><li><p>Built-in features that matter for cost control: per-key budgets, rate limits, fallback chains, spend tracking, and request/response logging to your own datastore.</p></li><li><p>Routing rules support cost-aware fallbacks (e.g. "try cheaper model first, fall back to stronger one on failure") and load-balanced model groups.</p></li></ul><p><strong>Use case.</strong> The control plane for multi-model spend. Most teams don't need a clever router first &#8212; they need <em>attribution</em> and <em>guardrails</em>.</p><ul><li><p>Imagine three product teams sharing a single OpenAI org with no per-team budget. With LiteLLM you could mint a virtual key per team, set monthly spend caps, and get cost reports without waiting for the provider's invoice.</p></li><li><p>Imagine a "use Claude for long context, GPT for tool calls" policy enforced by app-level if/else scattered across five services. With LiteLLM's model groups you could centralize that rule and change provider without a deploy.</p></li><li><p>Imagine a provider outage. With fallback chains configured, traffic spills to the next model in the group instead of paging on-call.</p></li></ul><p>If you only adopt one tool from this edition, this is the one with the broadest surface area. It doesn't make routing decisions for you &#8212; it makes routing decisions <em>possible</em>.</p><div><hr></div><h3>OpenRouter</h3><p><strong>Summary.</strong> <a href="https://openrouter.ai">OpenRouter</a> is a commercial SaaS that aggregates hundreds of models behind one API and one bill, with public per-token pricing and live latency/throughput stats.</p><ul><li><p>Single API key, OpenAI-compatible endpoints, normalized model IDs across providers.</p></li><li><p>Routes around provider outages and (optionally) chooses the cheapest available host for open-weights models served by multiple providers.</p></li><li><p>Pricing is transparent on the model catalog page &#8212; useful if you want to <em>see</em> the cost delta between candidate models before you wire up A/B tests.</p></li><li><p>Pay-as-you-go credits; no commit. Trade-off: you're adding a vendor in the path and a margin on top of underlying model cost.</p></li></ul><p><strong>Use case.</strong> Quick way to compare models on real traffic without onboarding to each provider separately.</p><ul><li><p>Imagine you want to test whether a Llama or Mistral variant is "good enough" for a classification job currently on GPT-4o. With OpenRouter you could swap the model ID in one config, run a shadow traffic split, and read cost-per-call straight off the dashboard.</p></li><li><p>Imagine procurement says "no new vendor contracts this quarter." OpenRouter lets you reach a dozen model families under one existing commercial relationship &#8212; useful for evaluation, less useful once you're at volume and direct contracts beat the markup.</p></li><li><p>No direct FinOps mapping for production scale: at high volume, going direct to the underlying provider is almost always cheaper. Treat OpenRouter as a comparison harness, not a forever-home.</p></li></ul><div><hr></div><h2>The pattern worth stealing</h2><p>These three tools occupy different layers of the same stack:</p><ul><li><p><strong>RouteLLM</strong> = the <em>decision</em> (which model for this prompt).</p></li><li><p><strong>LiteLLM</strong> = the <em>control plane</em> (keys, budgets, fallbacks, logging).</p></li><li><p><strong>OpenRouter</strong> = the <em>catalog</em> (try many models without many contracts).</p></li></ul><p>The mistake is reaching for the router first. Without per-team attribution and spend logs, you can't tell whether routing helped &#8212; you just see the next invoice and hope. Start with the control plane. Get cost per team, per feature, per endpoint. <em>Then</em> decide where intelligent routing earns its keep.</p><p>A few honest cautions before you go shopping:</p><ul><li><p>"Cheap model + retry" can be more expensive than "good model once" when retries cascade. Measure end-to-end cost per <em>successful</em> response, not per call.</p></li><li><p>Quality regressions from routing are often invisible until users complain. Log inputs, outputs, and which model handled them, so you can audit later.</p></li><li><p>Routers add latency. A 50ms classification step in front of a 400ms generation is fine; the same 50ms in front of a 60ms call is not.</p></li><li><p>Any savings percentage a vendor quotes was measured on <em>their</em> benchmark. Yours will differ. Plan to A/B before you plan the win.</p></li></ul><h2>One decision for this week</h2><p>Pick the layer you're missing. If you have no per-team or per-feature attribution on LLM spend, stand up <a href="https://github.com/BerriAI/litellm">LiteLLM</a> as a proxy and mint scoped keys &#8212; that single change makes every later optimization measurable. If attribution is already solved, point a shadow stream at <a href="https://github.com/lm-sys/RouteLLM">RouteLLM</a> and find out what fraction of your traffic actually needs the expensive model.</p>]]></content:encoded></item><item><title><![CDATA[One CLI to Rule Your AI Agents]]></title><description><![CDATA[ASM centralizes skills across Claude, Cursor, Windsurf, and 10+ agents &#8212; no more scattered directories.]]></description><link>https://bluearch.substack.com/p/one-cli-to-rule-your-ai-agents</link><guid isPermaLink="false">https://bluearch.substack.com/p/one-cli-to-rule-your-ai-agents</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Sun, 07 Jun 2026 17:32:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gZQo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI coding agents are multiplying faster than the directories that configure them. Claude Code wants skills in one place. Cursor wants them somewhere else. Windsurf, Codex, Cline &#8212; every agent has its own conventions, and your <code>~/.config</code> turns into a graveyard of half-synced YAML. This week: three OSS tools that try to make agent tooling tractable for engineers who'd rather ship than babysit dotfiles.</p><h3>asm (agent-skill-manager)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gZQo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gZQo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 424w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 848w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 1272w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gZQo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png" width="1456" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165054,&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://bluearch.substack.com/i/201017051?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gZQo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 424w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 848w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 1272w, https://substackcdn.com/image/fetch/$s_!gZQo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224d0956-85ac-4de4-a13b-c60d203b1f1f_1772x664.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/luongnv89/asm">asm</a> is a CLI and TUI for managing skills across every AI coding agent you run.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>One tool to install, search, audit, and organize skills for Claude Code, Codex, Cursor, Windsurf, and 10+ other agents</p></li><li><p>Ships a catalog the project advertises as 2,800+ skills, browsable in a web UI</p></li><li><p>TUI for interactive work, CLI for scripts and CI</p></li><li><p>Replaces the per-tool skill directories that each agent ships with its own format</p></li></ul><p>The pitch on the README is blunt: stop juggling skill directories. If you've ever copied a prompt template from Cursor into Claude and edited the frontmatter by hand, you know the tax.</p><p><strong>Use case.</strong> Centralized agent configuration with an auditable inventory.</p><ul><li><p>Imagine you run a 40-engineer org where half the team uses Cursor and half uses Claude Code. Skills drift. Reviews drift. Costs drift, because nobody knows which prompt is firing which model.</p></li><li><p>With asm you could pin a curated skill set per team, audit which skills are installed where, and treat the agent layer like any other managed dependency.</p></li><li><p>For FinOps specifically: every skill is a potential token-spend pattern. A centralized manifest is the first step toward attributing agent spend to teams and projects, instead of letting it dissolve into "AI tools" on the invoice.</p></li><li><p>The 2,800-skill catalog is a double-edged sword &#8212; discoverability is great, but governance is now your problem. A <code>skills allowlist</code> is something you'll want before week two.</p></li></ul><h3>cmux</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JlL7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JlL7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JlL7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;manaflow-ai/cmux&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="manaflow-ai/cmux" title="manaflow-ai/cmux" srcset="https://substackcdn.com/image/fetch/$s_!JlL7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!JlL7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cfaab81-4bdc-4690-b5ef-5f09f6edebcc_1200x600.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/manaflow-ai/cmux">cmux</a> is a Ghostty-based macOS terminal built for AI coding agents and remote development.</p><ul><li><p>Vertical tabs, notification rings, integrated browser support</p></li><li><p>Built on <a href="https://ghostty.org">Ghostty</a>, so you get the rendering performance of a modern terminal with workflow features layered on top</p></li><li><p>Notification system: panes get a blue ring and tabs light up when an agent finishes a task in the background</p></li><li><p>README is translated into 20+ languages, which says something about who's actually using it</p></li><li><p>Top contributors include <a href="https://github.com/lawrencecchen">lawrencecchen</a>, <a href="https://github.com/austinywang">austinywang</a>, and <a href="https://github.com/azooz2003-bit">azooz2003-bit</a></p></li></ul><p>The thesis is simple: agents run long, and you're not going to sit and watch the terminal. You need the terminal to tell you when something's done &#8212; or broken.</p><p><strong>Use case.</strong> A terminal optimized for supervising long-running agent sessions in parallel.</p><ul><li><p>Imagine you've got Claude Code refactoring one service, an agent running migrations on a staging cluster, and a third tab tailing logs from a remote box. Without notifications you context-switch every 30 seconds. With cmux you could let panes run, get pinged when they need you, and stop the productivity bleed of compulsive tab-checking.</p></li><li><p>FinOps angle: agent runtime is agent spend. Every minute a Claude session sits idle waiting for human approval is tokens you've already paid for and a context window you'll pay to rebuild. A notification-aware terminal is, weirdly, a cost-efficiency tool.</p></li><li><p>Limits: macOS only, Ghostty-based. If your fleet is mostly Linux workstations, this isn't your tool.</p></li></ul><h3>codegraph</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9smf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9smf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!9smf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!9smf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!9smf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9smf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;colbymchenry/codegraph&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="colbymchenry/codegraph" title="colbymchenry/codegraph" srcset="https://substackcdn.com/image/fetch/$s_!9smf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!9smf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!9smf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!9smf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097c9887-efa6-4d74-af3d-55fc8b25bd8e_1200x600.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/colbymchenry/codegraph">codegraph</a> was shared in the channel as a code-structure tool relevant to the agent-tooling thread.</p><ul><li><p>No further detail was captured in the session material beyond the link</p></li><li><p>Treat the link as a lead, not a recommendation &#8212; verify the README before adding it to your workflow</p></li></ul><p><strong>Use case.</strong> No direct FinOps mapping; this is general-purpose code-intelligence tooling worth a look if you're building agent context-injection pipelines.</p><ul><li><p>Imagine an agent that consistently burns tokens loading the wrong files because it doesn't understand the call graph. With a code-graph layer in the prompt context, you could route the agent to the 200 relevant lines instead of dumping 20,000.</p></li><li><p>The token economics here are real: context windows are the most expensive thing about modern coding agents, and selective context is the cheapest optimization you'll make this quarter.</p></li></ul><h2>The pattern worth noticing</h2><p>Three tools, three layers of the same stack:</p><ul><li><p><strong>asm</strong> manages what the agent knows (skills, prompts, configuration)</p></li><li><p><strong>cmux</strong> manages how you supervise the agent (terminal, notifications, parallelism)</p></li><li><p><strong>codegraph</strong> manages what the agent sees (code structure, context)</p></li></ul><p>If you're treating AI coding agents as a serious line item &#8212; and you should be, because the bill is already arriving &#8212; these are the three surfaces where you control spend. Skills determine which models fire and how often. Supervision determines how much idle time you pay for. Context determines token consumption per task.</p><p>None of this shows up in your cloud-cost dashboard. It shows up on your Anthropic, OpenAI, and Cursor invoices, usually under one undifferentiated line. The org that wins on agent FinOps over the next year is the org that has a manifest of skills, a measurable supervision workflow, and a context strategy &#8212; not the org with the most clever prompts.</p><h2>Your move this week</h2><p>Pick one. If you have more than three engineers using more than two agents, install <a href="https://github.com/luongnv89/asm">asm</a> and start with a single shared skill list. If you've ever lost an hour because you didn't notice an agent finished, try <a href="https://github.com/manaflow-ai/cmux">cmux</a> on one machine before rolling it wider.</p><p>cmux is built by a small team &#8212; if it shaves real hours off your week, the <a href="https://github.com/sponsors/manaflow-ai">GitHub Sponsors page</a> is where you say thank-you in the currency maintainers actually care about.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Graph Your Codebase, Shrink Your Bill]]></title><description><![CDATA[Pre-indexed knowledge graphs cut tool calls by 70% and keep context local&#8212;no model changes required.]]></description><link>https://bluearch.substack.com/p/graph-your-codebase-shrink-your-bill</link><guid isPermaLink="false">https://bluearch.substack.com/p/graph-your-codebase-shrink-your-bill</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Sat, 06 Jun 2026 17:07:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!asBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>LLM API spend is the new shadow cloud bill. Every tool call your agent makes is metered tokens &#8212; context in, completion out &#8212; and most of that context is repeated file reads and shell output the model already saw five minutes ago. The three tools below attack that waste at the source: cache it, graph it, or compress it before it ever hits the wire.</p><h3>CodeGraph</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!asBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!asBo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!asBo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!asBo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!asBo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!asBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;colbymchenry/codegraph&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="colbymchenry/codegraph" title="colbymchenry/codegraph" srcset="https://substackcdn.com/image/fetch/$s_!asBo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!asBo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!asBo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!asBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635269e6-f504-4e9f-9c6a-3c67e2c8c4ad_1200x600.png 1456w" sizes="100vw" loading="lazy" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/colbymchenry/codegraph">CodeGraph</a> pre-indexes your repository into a semantic knowledge graph that Claude Code, Cursor, Codex, OpenCode, and Hermes Agent can query instead of grepping the filesystem token by token.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Maintained by <a href="https://github.com/colbymchenry">colbymchenry</a>.</p></li><li><p>Pitches <strong>~35% cheaper</strong> runs and <strong>~70% fewer tool calls</strong> per the project README.</p></li><li><p><strong>100% local</strong> &#8212; the graph lives on your machine, no third-party index service.</p></li><li><p>One-line installer for macOS, Linux, and Windows. No Node.js required.</p></li></ul><p><strong>Use case.</strong> Cut the per-prompt context tax on AI coding agents by replacing fan-out file reads with a single graph lookup.</p><p>Imagine a 400-file service repo where every "find the callers of X" question in Cursor triggers a dozen <code>grep</code> and <code>read_file</code> tool calls. With CodeGraph indexing the symbol graph ahead of time, the agent asks the graph once, gets a structured answer, and pays for the tokens of that answer instead of the tokens of twelve speculative reads. If your team is on Bedrock, Anthropic, or OpenAI pay-per-token plans, that delta lands directly on the AWS or vendor invoice you reconcile each month &#8212; not in some hand-wavy "developer productivity" bucket.</p><p>The honest FinOps test: turn on usage tracking for one sprint, install CodeGraph for half the team, and compare token spend per merged PR. If the README numbers hold even loosely, the savings should be obvious in the billing console.</p><h3>lean-ctx</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IuID!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IuID!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!IuID!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!IuID!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!IuID!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IuID!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;yvgude/lean-ctx&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="yvgude/lean-ctx" title="yvgude/lean-ctx" srcset="https://substackcdn.com/image/fetch/$s_!IuID!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!IuID!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!IuID!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!IuID!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdb24a1a-48ae-4bcb-b28d-89d1fe7697d9_1200x600.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/yvgude/lean-ctx">lean-ctx</a> is a Rust binary that compresses file and shell output before it ever reaches Cursor, Claude Code, Copilot, Windsurf, Codex, or Gemini.</p><ul><li><p>Maintained by <a href="https://github.com/yvgude">yvgude</a>, with contributions from <a href="https://github.com/glemsom">glemsom</a> and <a href="https://github.com/frpboy">frpboy</a>.</p></li><li><p>Ships as a single Rust binary &#8212; shell hook <strong>or</strong> MCP server, your pick.</p></li><li><p>README claims <strong>60&#8211;95% token reduction</strong>, <strong>up to 99% on cached reads</strong>.</p></li><li><p><strong>59 tools, 10 read modes, 95+ compression patterns</strong> per the project description.</p></li></ul><p><strong>Use case.</strong> Sits between your terminal and your agent and strips the cruft &#8212; ANSI codes, repeated lines, low-signal stack frames &#8212; before tokens get billed.</p><p>Imagine an agent debugging a CloudFormation deploy. It tails the stack events, runs <code>aws cloudformation describe-stack-events</code>, then re-reads a 4,000-line Lambda log. Three calls, easily 50k tokens, half of it whitespace and ANSI escape sequences. With lean-ctx in the path, the agent sees a compressed view and the model bill drops accordingly. The Rust binary keeps the hook itself cheap &#8212; no Node process tax per shell invocation.</p><p>If you're running a small platform team where every engineer has Cursor or Claude Code wired to a corporate Anthropic key, this is the lowest-effort intervention on the list. Drop the binary in, point your shell hook at it, watch the daily token graph.</p><h3>Graphify</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rf-a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rf-a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rf-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;safishamsi/graphify&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="safishamsi/graphify" title="safishamsi/graphify" srcset="https://substackcdn.com/image/fetch/$s_!Rf-a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!Rf-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F232b1d8e-8916-417f-b9f7-ea089342fe9d_1200x600.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Summary.</strong> <a href="https://github.com/safishamsi/graphify">Graphify</a> turns any folder &#8212; app code, SQL schemas, R scripts, shell scripts, docs, papers, images, video &#8212; into a queryable knowledge graph your AI coding assistant can hit with a <code>/graphify</code> slash command.</p><ul><li><p>Maintained by <a href="https://github.com/safishamsi">safishamsi</a>.</p></li><li><p>Works with Claude Code, Codex, OpenCode, Cursor, Gemini CLI, and others.</p></li><li><p>Unique angle: <strong>one graph spans app code + database schema + infrastructure</strong> &#8212; not just source.</p></li><li><p>Mixed-media input set is broader than the other two tools in this post.</p></li></ul><p><strong>Use case.</strong> Give the agent one place to ask "what touches this table?" or "what infra backs this endpoint?" instead of letting it shotgun-read your Terraform, your migrations, and your handlers separately.</p><p>Imagine answering "if we drop column <code>customer_status</code>, what breaks?" The naive agent loop reads every <code>.sql</code>, every model file, every IaC module, then re-reads them when it loses focus. With a pre-built Graphify index, that's a graph traversal, not a tour of your repo. For cost-attribution work specifically &#8212; mapping a workload to its team, its Terraform module, and its CloudWatch namespace &#8212; having app + schema + infra in one graph is genuinely useful, because the relationships exist whether you've modeled them or not.</p><p>There is no published token-reduction number in the material, so don't promise leadership a percentage. Treat it as a structural bet: less re-reading, fewer tool calls, smaller invoice.</p><div><hr></div><p><strong>Pattern, not coincidence.</strong> All three tools attack the same FinOps problem from slightly different angles:</p><ul><li><p><strong>lean-ctx</strong> compresses the bytes after the agent decides what to look at.</p></li><li><p><strong>CodeGraph</strong> changes what the agent decides to look at in the first place.</p></li><li><p><strong>Graphify</strong> widens "look at" to include schema and infra, not just code.</p></li></ul><p>You can stack them. A graph-aware agent that also runs its shell output through a compressor is paying for the smallest possible surface area of tokens.</p><p><strong>One decision this week.</strong> Pick the repo where AI-assisted spend is highest &#8212; usually the largest monorepo with the most active Cursor or Claude Code users &#8212; and run a one-week A/B with CodeGraph on half the team. Measure tool-call count and token spend per PR. If the numbers land anywhere near the README's claims and the tool saved your org real figures on the Anthropic or Bedrock invoice, <a href="https://github.com/sponsors/yvgude">sponsor yvgude</a> for lean-ctx while you're at it; this category of work only continues if the maintainers can afford to keep shipping.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The fourth input: why energy ties cloud FinOps together]]></title><description><![CDATA[Labor, capital, data &#8212; and energy. How grid simulation thinking reframes capacity planning and infrastructure cost models.]]></description><link>https://bluearch.substack.com/p/the-fourth-input-why-energy-ties</link><guid isPermaLink="false">https://bluearch.substack.com/p/the-fourth-input-why-energy-ties</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Wed, 03 Jun 2026 13:59:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!to-p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65d5832e-06ce-488f-bc1c-fbb8c7d92356_145x145.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Labor, capital, land. The three pillars of every econ 101 textbook. A Slack thread this week added a fourth &#8212; data &#8212; and pointed out that energy is the thread tying all four together. The question that followed: can we borrow simulation methods from building and grid energy planning to forecast and optimize cloud architectures?</p><p>That question deserves a serious answer, because most FinOps tooling still treats cost as accounting, not as a system to simulate.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Pan et al., "Building energy simulation and its application for building performance optimization"</h3><p><strong>Summary.</strong> <a href="https://www.sciencedirect.com/science/article/pii/S2666792423000148">The 2023 review in </a><em><a href="https://www.sciencedirect.com/science/article/pii/S2666792423000148">Advances in Applied Energy</a></em> is a peer-reviewed survey of building energy simulation as a discipline.</p><ul><li><p>Authored by Yiqun Pan, Mingya Zhu, Yan Lv, Yikun Yang, Yumin Liang, Ruxin Yin, Yiting Yang, Xiaoyu Jia, Xi Wang, Fei Zeng, Seng Huang, Danlin Hou, and Lei Xu</p></li><li><p>Published as <em>Advances in Applied Energy</em>, Volume 10, June 2023, article 100135</p></li><li><p>Covers methods, tools, and case studies for building performance simulation</p></li><li><p>Scope spans design, retrofit, operations, and urban-scale energy planning</p></li><li><p>Includes digital-twin approaches</p></li></ul><p><strong>Use case.</strong> The paper itself is a reference, not a deployable tool. But for FinOps practitioners, it reads like a parallel-universe playbook: the energy-engineering world has spent decades doing what cloud cost teams are only starting to attempt &#8212; simulating a stock of assets against time-varying demand, with retrofit options scored against a status quo. Imagine you are forecasting next year's spend across regions, instance families, and reserved-vs-spot mix. With a simulation-first frame borrowed from this literature, you would treat your fleet the way energy engineers treat a building stock: model the loads, model the supply curve, model the retrofits, then run the policy against "weather" &#8212; traffic patterns, seasonal demand, AI workload bursts.</p><h2>Why energy is the binding input</h2><p>Labor pays the engineers. Capital buys the hardware and the reservations. Data is the product. Energy is what makes the data move &#8212; and on GPU-heavy workloads, it is increasingly what dominates the marginal cost of an inference call or a training step.</p><p>Most cost dashboards still treat compute as the unit and ignore the watt. That was defensible when watts were buried inside the EC2 price and somebody else's problem. It is less defensible when accelerator pricing is explicitly energy-shaped and hyperscaler regions vary in carbon intensity by an order of magnitude. A FinOps practice that cannot reason about kilowatt-hours per workload is going to mis-forecast both the dollar and the carbon line.</p><p>This is the point the Slack thread was driving at. If you accept data as the fourth input, energy is what connects all four. Engineers consume energy. Capital expenditure is recouped over an energy-consuming life. Data is produced by burning watts. The economic geometry of cloud is starting to look much more like the economic geometry of a grid.</p><h2>What grid-style simulation actually buys you</h2><p>The Pan review is worth reading end-to-end, but the broad strokes that translate cleanly to cloud:</p><ul><li><p><strong>Bottom-up load modeling.</strong> Building simulators model at the zone and equipment level, not the meter level. The cloud equivalent is modeling at the service, pod, or queue level &#8212; not the account level. Most FinOps reports still aggregate at the account.</p></li><li><p><strong>Weather-driven scenarios.</strong> Energy engineers run a typical meteorological year against a building. Cloud engineers should run a representative year of traffic and request mix against a fleet plan. The data exists in CloudWatch and the billing export. Almost nobody uses it that way.</p></li><li><p><strong>Retrofit vs new-build comparison.</strong> Energy modelers compare keeping a chiller against replacing it, with payback periods. FinOps should compare keeping a Reserved Instance footprint against committing to Savings Plans, against migrating to Graviton, against re-architecting to serverless &#8212; using the same payback discipline.</p></li><li><p><strong>Co-simulation.</strong> Buildings co-simulate HVAC, lighting, and occupancy because they interact. Cloud workloads should co-simulate compute, storage, egress, and queue depth &#8212; because those interact too, and pricing the parts in isolation gives you the wrong answer.</p></li><li><p><strong>Digital twins.</strong> A live model that updates against telemetry, instead of a quarterly spreadsheet. The cloud equivalent is the gap between a static forecast and a model wired to actual usage data.</p></li></ul><h2>What this changes about FinOps tooling</h2><p>The honest answer: most FinOps tools today are reporting tools, not simulators. They tell you what you spent, what you will spend next month if nothing changes, and which resources are idle. They mostly do not let you ask "what if traffic doubles, 40% of inference moves to a smaller instance family at off-peak hours, and we move the batch job to a lower-carbon region."</p><p>A grid engineer would call that a missing capability, not a power feature. It is the basic question their tools answer.</p><p>There is an opening here for OSS. The energy world has open simulators &#8212; EnergyPlus and its lineage &#8212; built over decades of public investment. The cloud world has Kubecost, OpenCost, Cloud Carbon Footprint, and a long tail of vendor dashboards, but no widely adopted equivalent of a co-simulation engine. The thesis the Slack note implies is that someone is going to build it, and the methods will look a lot like the ones Pan et al. survey.</p><h2>One decision this week</h2><p>Read the <a href="https://www.sciencedirect.com/science/article/pii/S2666792423000148">Pan review</a> &#8212; or at least the methods section &#8212; and then pick your single largest workload and write down its demand curve as if you were handing it to a simulation engineer. Hour of day on the x-axis, requests or GPU-seconds on the y-axis. Everything grid-style planning does starts from that one artifact, and almost no FinOps team has it written down.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bluearch.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">CloudCast is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Cloudy, with a chance of rain. ]]></title><description><![CDATA[2023-01-08]]></description><link>https://bluearch.substack.com/p/cloudy-with-a-chance-of-rain</link><guid isPermaLink="false">https://bluearch.substack.com/p/cloudy-with-a-chance-of-rain</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Tue, 10 Jan 2023 05:19:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X6XI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33efc861-6242-4bb5-82d3-0daae060466d_1146x448.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every week we review AWS market trends; who is hiring for what, which roles and positions are most in demand, and where growth is likely to take place in the near future; subscribe to stay up to date.</p>
      <p>
          <a href="https://bluearch.substack.com/p/cloudy-with-a-chance-of-rain">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is CloudCast.]]></description><link>https://bluearch.substack.com/p/coming-soon</link><guid isPermaLink="false">https://bluearch.substack.com/p/coming-soon</guid><dc:creator><![CDATA[Joel Proctor]]></dc:creator><pubDate>Mon, 09 Jan 2023 05:56:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!to-p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65d5832e-06ce-488f-bc1c-fbb8c7d92356_145x145.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is CloudCast.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://bluearch.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://bluearch.substack.com/subscribe?"><span>Subscribe now</span></a></p>
      <p>
          <a href="https://bluearch.substack.com/p/coming-soon">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>