<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saltorious</title>
    <description>The latest articles on DEV Community by Saltorious (@saltorious).</description>
    <link>https://dev.to/saltorious</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4058575%2Fe95ada26-dba3-4853-bff4-bbbe0df07e21.webp</url>
      <title>DEV Community: Saltorious</title>
      <link>https://dev.to/saltorious</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saltorious"/>
    <language>en</language>
    <item>
      <title>what a turn actually costs me</title>
      <dc:creator>Saltorious</dc:creator>
      <pubDate>Thu, 13 Aug 2026 20:46:13 +0000</pubDate>
      <link>https://dev.to/saltorious/what-a-turn-actually-costs-me-36ce</link>
      <guid>https://dev.to/saltorious/what-a-turn-actually-costs-me-36ce</guid>
      <description>&lt;p&gt;Four models read every frame Harness sees. CLIP embeds it. PaddleOCR pulls the text. A dense-text model embeds that. A reranker sorts results when you search. None of them bill me. They run in the tab, on your machine.&lt;/p&gt;

&lt;p&gt;That's the cost structure. That's the strategy.&lt;/p&gt;

&lt;p&gt;Screen capture and a MAD gate decide which frames survive. CLIP (&lt;code&gt;clip-vit-base-patch16&lt;/code&gt;) for image and text embedding. PaddleOCR for text, same-origin, because CSP blocks CDNs. &lt;code&gt;bge-base-en-v1.5&lt;/code&gt; at eight-bit for memory embeddings. A 23MB &lt;code&gt;ms-marco-MiniLM-L-6-v2&lt;/code&gt; reranker. Whisper for tab audio. LFM2.5, a 2.6B quantized to Q4_K_M, resident at 1.2GB, writing condensed conversation context. Postgres as PGlite for the memory store in the browser. Watchers compile to on-device predicates, so "tell me when I get outbid" costs nothing while it waits.&lt;/p&gt;

&lt;p&gt;Look at a screen. Remember it. Search it. Keep watching. Those verbs run constantly and cost me nothing. Free tier is free. Your usage doesn't move my bill.&lt;/p&gt;

&lt;p&gt;You pay in RAM, battery, and a 1.7GB download. On an M2 Pro the 2.6B prefills at 110-140 tok/s and decodes at 20-35. Below a measured floor, interactive roles stand down and only background work stays up.&lt;/p&gt;

&lt;p&gt;Frontier turns are the other half. Research, multi-step reasoning, anything a 2.6B would butcher.&lt;/p&gt;

&lt;p&gt;I buy those on a market. &lt;a href="https://surplusintelligence.ai" rel="noopener noreferrer"&gt;Surplus Intelligence&lt;/a&gt; resells surplus provider quota over an OpenAI-compatible relay, below list, to the cheapest healthy seller. Buyer-savings endpoint had me at 46% off &lt;code&gt;gemini-3-5-flash&lt;/code&gt; and 66% averaged across what I was running. Harness charges list, executes on surplus. Spread is bridge margin. Disclosed. Not the business. Settlement is USDC on Base behind a capped approval, never max-uint. Otherwise I'm writing blank cheques to counterparties I can't name.&lt;/p&gt;

&lt;p&gt;A model with no healthy discounted seller doesn't 404. It hangs. That's what made specific models look broken for a week. Fix: liquidity gate on a public markets endpoint, cached sixty seconds. Model rides surplus only with discounted liquidity and a healthy seller. Everything else goes direct to Venice at list. Header timeout and a circuit breaker catch sellers that rot inside the cache window. No model attestation on the marketplace, so a seller can advertise one SKU and serve another. I only resell from my own managed catalog.&lt;/p&gt;

&lt;p&gt;High-frequency work costs nothing and scales on your hardware. Low-frequency work costs real money at half of list. No middle where volume eats me alive.&lt;/p&gt;

&lt;p&gt;A competitor doing perception in the cloud can't copy the first half without rebuilding around the browser. Can't copy the second without joining a market most teams have never heard of. If you want the landscape instead of the ledger, I keep notes on &lt;a href="https://dev.to/what-is-screen-aware-ai"&gt;what screen-aware AI means&lt;/a&gt; and &lt;a href="https://dev.to/best-screen-aware-ai"&gt;how the cloud-side tools compare&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Best line item is the one that never shows up.&lt;/p&gt;




&lt;p&gt;Originally published on the &lt;a href="https://tryharness.ai/blog/what-a-turn-actually-costs" rel="noopener noreferrer"&gt;Harness blog&lt;/a&gt;. Harness is a screen-aware assistant that runs its perception stack in your browser: &lt;a href="https://tryharness.ai" rel="noopener noreferrer"&gt;tryharness.ai&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>inference</category>
      <category>localmodels</category>
    </item>
  </channel>
</rss>
