<?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: Ian Khasky</title>
    <description>The latest articles on DEV Community by Ian Khasky (@khasky).</description>
    <link>https://dev.to/khasky</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%2F141402%2Fefb56248-90d4-46a0-8c60-e473fc4cb987.jpg</url>
      <title>DEV Community: Ian Khasky</title>
      <link>https://dev.to/khasky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/khasky"/>
    <language>en</language>
    <item>
      <title>What Does a 1 Million Token Context Window Actually Look Like?</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 01:03:03 +0000</pubDate>
      <link>https://dev.to/khasky/what-does-a-1-million-token-context-window-actually-look-like-4ocg</link>
      <guid>https://dev.to/khasky/what-does-a-1-million-token-context-window-actually-look-like-4ocg</guid>
      <description>&lt;p&gt;"1M context" is now a normal line in model specifications. But it is a terrible human-scale unit. Most of us cannot look at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1,000,000 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and immediately understand how much information that represents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.1millioncontext.com/" rel="noopener noreferrer"&gt;One Million Tokens&lt;/a&gt; is an interactive site that fixes that problem.&lt;/p&gt;

&lt;p&gt;🧠 It visualizes one million tokens as a huge stack of text and then walks through the history of context-window growth from GPT-3 onward.&lt;/p&gt;

&lt;h2&gt;
  
  
  The basic scale
&lt;/h2&gt;

&lt;p&gt;The site uses the following approximate conversions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1M tokens
~ 750K words
~ 3,000 printed pages
~ 83 hours of conversation
~ 75,000 lines of code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those numbers are meant to be intuitive rather than universal. Tokenization varies significantly by content. But they give us the right order of magnitude.&lt;/p&gt;

&lt;p&gt;A million-token window is not merely "a very long prompt."&lt;/p&gt;

&lt;p&gt;It is a small library.&lt;/p&gt;

&lt;h2&gt;
  
  
  The timeline starts at 2,048 tokens
&lt;/h2&gt;

&lt;p&gt;The site's story begins in June 2020.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GPT-3
2,048 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is visualized as roughly six pages. Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ChatGPT
Nov 2022
4,096 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GPT-4 32K
Mar 2023
32,768 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Claude
May 2023
100,000 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The graph starts getting steep.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini crosses the million-token line
&lt;/h2&gt;

&lt;p&gt;The site marks February 2024 as the point where Gemini 1.5 Pro reached 1M tokens.&lt;/p&gt;

&lt;p&gt;Google's own launch material from 2024 also described Gemini 1.5 Pro as supporting up to a 1 million-token context in preview.&lt;/p&gt;

&lt;p&gt;That was the moment "million-token context" stopped being a research curiosity and became a product capability.&lt;/p&gt;

&lt;p&gt;The site then continues into models with multi-million-token windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  From 2K to 10M
&lt;/h2&gt;

&lt;p&gt;The visualization's complete timeline reaches a cited 10,000,000-token window.&lt;/p&gt;

&lt;p&gt;It calculates the increase from GPT-3's 2,048 tokens to 10M as roughly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4,883x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a six-year change in the amount of information a model can accept in its working context.&lt;/p&gt;

&lt;p&gt;The visual curve is more revealing than the number. For several years, context capacity barely moves. Then it starts climbing by orders of magnitude.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why context matters for software development
&lt;/h2&gt;

&lt;p&gt;For developers, context length changes the amount of a system that an AI can inspect at once.&lt;/p&gt;

&lt;p&gt;A rough progression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2K:
small snippet / short conversation

32K:
large file or several files

100K+:
substantial subsystem

1M:
large code collections / potentially repo-scale input
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The site's rough 1M-token code equivalent is &lt;strong&gt;75,000 lines&lt;/strong&gt; at ~13 tokens per line.&lt;/p&gt;

&lt;p&gt;That number should not be treated as a hard engineering rule. Code token density varies dramatically.&lt;/p&gt;

&lt;p&gt;Python, minified JavaScript, JSON, comments, generated source, and strongly typed languages will all behave differently.&lt;/p&gt;

&lt;p&gt;But the order of magnitude is still useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does long context replace RAG?
&lt;/h2&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;A larger window reduces one reason we use retrieval: the inability to fit all relevant source material.&lt;/p&gt;

&lt;p&gt;But retrieval also solves other problems. It helps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;remove irrelevant material
lower input cost
reduce latency
focus the model
update source data independently
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So long context and retrieval are complementary.&lt;/p&gt;

&lt;p&gt;A 1M-token window lets you &lt;em&gt;choose&lt;/em&gt; to include far more source material.&lt;/p&gt;

&lt;p&gt;It does not mean including everything is always optimal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context window != perfect memory
&lt;/h2&gt;

&lt;p&gt;This is the biggest conceptual mistake I see in discussions of long context.&lt;/p&gt;

&lt;p&gt;Maximum context length is a &lt;strong&gt;capacity limit&lt;/strong&gt;. It is not a guarantee of perfect use. A model with a 1M-token window may still:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;miss a fact that appears in the prompt&lt;/li&gt;
&lt;li&gt;perform differently depending on where information appears&lt;/li&gt;
&lt;li&gt;degrade on complicated cross-document reasoning&lt;/li&gt;
&lt;li&gt;become slower or more expensive with huge inputs&lt;/li&gt;
&lt;li&gt;retrieve some details better than others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why long-context benchmarks test retrieval and reasoning quality, not merely whether the tokenizer accepts the input.&lt;/p&gt;

&lt;p&gt;I would phrase it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;context size = size of the desk

reasoning/retrieval quality = how well the model uses what is on the desk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A larger desk is useful. It does not automatically make the worker better.&lt;/p&gt;

&lt;h2&gt;
  
  
  The page comparison is approximate
&lt;/h2&gt;

&lt;p&gt;The site uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 page ~ 333 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and therefore:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3,000 pages ~ 1M tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a visualization convention. Real documents vary. Tokenizers vary. Languages vary.&lt;/p&gt;

&lt;p&gt;The site's 83-hour conversation estimate similarly assumes around 150 spoken words per minute.&lt;/p&gt;

&lt;p&gt;These are reference points, not exact conversions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The open-vs-closed view is interesting too
&lt;/h2&gt;

&lt;p&gt;The timeline can be filtered between:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALL
OPEN
CLOSED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That makes it easy to see how long-context capabilities moved from closed frontier APIs into open-weight models.&lt;/p&gt;

&lt;p&gt;The page credits Hassan at Together AI as the creator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I like the project
&lt;/h2&gt;

&lt;p&gt;Model cards are full of abstract specifications.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;128K context
1M context
2M context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This site converts those numbers into something human.&lt;/p&gt;

&lt;p&gt;The next time someone asks what a million-token context window actually means, I would rather send them this visualization than another table.&lt;/p&gt;

&lt;p&gt;Because after scrolling through 3,000 pages, the number finally feels real.&lt;/p&gt;

&lt;p&gt;How much of a million-token window have you actually been able to use?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Tencent/TeamAI puts your team's agent config behind a merge request</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:47:53 +0000</pubDate>
      <link>https://dev.to/khasky/teamai-puts-your-teams-agent-config-behind-a-merge-request-421p</link>
      <guid>https://dev.to/khasky/teamai-puts-your-teams-agent-config-behind-a-merge-request-421p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkdss95e27yve91y6hhq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkdss95e27yve91y6hhq3.png" alt="A tilted photograph of a curved roller conveyor carrying boxes through a warehouse, set under the headline: Push a rule, get it reviewed, and everyone pulls it. The conveyor stands for the distribution step, where a merged change to the team's agent config is carried to every member's machine by a hook that runs when their next session starts." width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I run three coding agents depending on the task, and I have never once managed to keep their rule files identical. They start as copies of each other. One picks up a new convention, another gets edited on a bad afternoon, and a few weeks later there is no answer to the question of which version the team actually agreed on. The agent reading the stalest copy is the one that argues confidently for last quarter's conventions in a review. 😅&lt;/p&gt;

&lt;p&gt;Tencent published a CLI called teamai-cli that stops treating this as a discipline problem and treats it as distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What lives in the repo
&lt;/h2&gt;

&lt;p&gt;One git repo holds the whole harness, and each resource has a fixed home:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Path in the team repo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Skills&lt;/td&gt;
&lt;td&gt;&lt;code&gt;skills/&amp;lt;name&amp;gt;/SKILL.md&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rules&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rules/*.md&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents&lt;/td&gt;
&lt;td&gt;&lt;code&gt;agents/&amp;lt;name&amp;gt;.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hooks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hooks/hooks.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mcp/mcp.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docs&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Culture&lt;/td&gt;
&lt;td&gt;&lt;code&gt;culture.md&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;culture.md&lt;/code&gt; is the one I did not expect. It carries the team's mission, values and working principles, and it gets injected into each agent's &lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;AGENTS.md&lt;/code&gt;, so every session inherits them without anybody pasting anything. &lt;code&gt;docs/&lt;/code&gt; is not all loaded by default, which the project calls progressive disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; teamai-cli
teamai init https://github.com/yourorg/yourrepo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Project scope is the default and installs the resources under the project directory. &lt;code&gt;--scope user&lt;/code&gt; puts them under your home directory instead. The store can be GitHub, GitLab, GitCode, CNB, TGit or a git server you run yourself, so the repo can sit wherever your code already does.&lt;/p&gt;

&lt;h2&gt;
  
  
  The flow, which is the actual product
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;teamai push -&amp;gt; branch + MR -&amp;gt; reviewer approves and merges
                                       |
                                       v
             SessionStart hook -&amp;gt; teamai pull -&amp;gt; local agent config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is it. A change to a rule goes through the gate a change to code already goes through. Prompt configuration gets edited by everybody on a team and reviewed by nobody, and it has the widest blast radius in the tree, because a bad rule is wrong in every session on every machine at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nobody has to take all of it
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;teamai roles&lt;/code&gt; maps a role to a namespace so a member syncs only the skills their role needs. &lt;code&gt;teamai tags&lt;/code&gt; lets people subscribe to the pieces they want. &lt;code&gt;teamai source&lt;/code&gt; subscribes to another group's skill repo on top of your own, which is how a shared internal library arrives without a fork. And &lt;code&gt;learnings/&lt;/code&gt; at the repo root is shared with everyone while &lt;code&gt;learnings/&amp;lt;project-id&amp;gt;/&lt;/code&gt; stays project-private, so one client's notes stay out of the general pool.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I counted before installing it
&lt;/h2&gt;

&lt;p&gt;What decides whether any of this arrives on your machine is which agents the project actually covers, so I counted: 11 agents against 13 capability columns. Skills and docs are filled on all 11. Hooks, MCP and rules come in at 8 each. Usage, sessions and dashboard come in at 7. 🧐&lt;/p&gt;

&lt;p&gt;The split decides something, because the automatic delivery runs off a hook. The project says every session pulls the latest with no manual sync, and its own flow diagram routes that through SessionStart, while three rows (OpenClaw, Hermes and DeepSeek Harness) show a dash in the hooks column. The project draws no conclusion from that and I am the one drawing it, but on those three the pull is something a person remembers to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  The caveat
&lt;/h2&gt;

&lt;p&gt;It sits one table away from the good part. Look at the &lt;code&gt;env/&lt;/code&gt; row: it offers "Shared team-level environment variables and switches" and then tells you not to put secrets in it. So the settings that cost the most to keep aligned, the keys and the endpoints, are the ones the repo will not hold. You still need whatever you were already using for that.&lt;/p&gt;

&lt;p&gt;The architecture table labels two of its three layers beta: the recall that searches accumulated team experience, and the usage reporting. The distribution layer above is the one that is not.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Tencent/teamai-cli" rel="noopener noreferrer"&gt;https://github.com/Tencent/teamai-cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which pieces of your agent config would you actually want a reviewer to gate, and which would that just slow down?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>git</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Edge0 streams MoE experts off SSD to fit 35B in 3 GB</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Sat, 12 Sep 2026 05:22:37 +0000</pubDate>
      <link>https://dev.to/khasky/edge0-streams-moe-experts-off-ssd-to-fit-35b-in-3-gb-3308</link>
      <guid>https://dev.to/khasky/edge0-streams-moe-experts-off-ssd-to-fit-35b-in-3-gb-3308</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffhui273ifl487dm4sqno.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffhui273ifl487dm4sqno.jpg" alt="A 35B model that fits in 2.9 GB of RAM" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Where does a 35B model go when it only takes 2.9 GB of RAM? I went into Edge0 to find out, and I came out with a different mental model of what a local model costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What shipped
&lt;/h2&gt;

&lt;p&gt;Edge0-AI open-sourced Edge0 the other day: a streaming inference engine under Apache 2.0, plus two preview models built on open sparse MoE bases. Edge0-35B-A3B sits on Qwen3.5-MoE 35B-A3B, 40 layers and 256 experts. Edge0-8B-A1B sits on inclusionAI's Ling 3.0 tiny, a hybrid that pairs multi-head latent attention (MLA) with MoE, 24 layers and 128 experts, about 1.2B active out of 7.9B. Both ship as 4-bit checkpoints, 19.6 GB and 4.55 GB on disk by the model cards. The clip of a 35B model answering on an iPhone at about 1 GB of peak memory is what made the rounds 🤯&lt;/p&gt;

&lt;h2&gt;
  
  
  The mechanism
&lt;/h2&gt;

&lt;p&gt;In a mixture-of-experts model most of the parameters live in the experts, and the router only calls a few of them per token: 4 out of 256 here, about 3B active parameters out of 35B. A dense runtime loads every weight because every weight is used for every token. A MoE runtime has a choice, and Edge0 takes the aggressive one. The whole checkpoint stays on the SSD, the expert weights are memory-mapped, and only the routed experts are read as each token comes through. The project's own line is that peak memory is bounded by the active set rather than by the parameter count.&lt;/p&gt;

&lt;p&gt;The numbers, all from the project and measured on a Mac mini M4 Pro with 24 GB of unified memory:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;edge0-35b&lt;/th&gt;
&lt;th&gt;edge0-8b&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Peak active memory, short context&lt;/td&gt;
&lt;td&gt;2.9 GiB&lt;/td&gt;
&lt;td&gt;1.0 GiB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decode&lt;/td&gt;
&lt;td&gt;14.9-17.7 tok/s&lt;/td&gt;
&lt;td&gt;23.9-25.3 tok/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prefill&lt;/td&gt;
&lt;td&gt;113 / 140 tok/s&lt;/td&gt;
&lt;td&gt;500 / 1428 tok/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkpoint on disk&lt;/td&gt;
&lt;td&gt;19.6 GB&lt;/td&gt;
&lt;td&gt;4.55 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The footnote on the memory row matters more than the row. It is a short-context figure: the KV cache sits in RAM, so a long prompt grows it, 3.3 GiB at 3.3k tokens on the 8B by the project's own note. Whatever you plan around, plan around that line moving.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sums the table stops short of
&lt;/h2&gt;

&lt;p&gt;Three things I worked out on top of the table. First, 35B at 4 bits is 17.5 GB of weights, so the 19.6 GB checkpoint carries about 2 GB at higher precision, presumably the embeddings, the attention weights and the quantisation scales. Second, 3B active at 4 bits is about 1.5 GB, so roughly half of the 2.9 GB peak is the routed experts and the other half is shared weights plus cache. Third, and this is the one I would watch: at 15 to 18 tokens a second, pulling a full 1.5 GB active set cold off the drive per token would need over 20 GB/s, and no consumer SSD does that.&lt;/p&gt;

&lt;p&gt;So most expert reads must be served from the operating system's file cache, and my reading of "peak active memory" is that it counts the process's resident set while the mmapped pages the OS keeps cached sit outside it. A 24 GB Mac mini can hide a large share of the 19.6 GB checkpoint in that cache. A Mac with less memory cannot, and that is where the drive starts doing real work. I have not checked this against the code, so treat it as a reading, and as the first thing to measure on your own machine 🧐&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying it
&lt;/h2&gt;

&lt;p&gt;Install is a Python package, and the project wants Python 3.10 or newer on an Apple Silicon Mac. The one-liner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s1"&gt;'git+https://github.com/Edge0-AI/edge0.git#egg=edge0[fetch]'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside a checkout the project's own line is this, with the &lt;code&gt;fetch&lt;/code&gt; extra pulling the checkpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.12 &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; .venv/bin/pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s1"&gt;'.[dev,fetch]'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Budget the 19.6 GB before you start, and put it on the drive you want reading from on every token, because that is what it will do.&lt;/p&gt;

&lt;p&gt;One thing I hit in the repo rather than on a machine: garbled, mixed-language output on Apple A18 and A18 Pro is listed as a symptom of an older mlx. That is the only chip-level mention of an iPhone anywhere in the repo, and it points at a library version rather than at a build you can install on a phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs
&lt;/h2&gt;

&lt;p&gt;RAM is what you save. Disk, cache and speed are what you spend. The 35B checkpoint sits on the SSD for the whole session, decode is 14.9-17.7 tok/s on a desktop-class M4 Pro, and each token is a storage or cache read. I would want to know what that does to a drive over a few months before making it a daily driver, and the project does not say.&lt;/p&gt;

&lt;h2&gt;
  
  
  The caveat that matters most
&lt;/h2&gt;

&lt;p&gt;The phone is in the demo video. The project says the MLX backend runs on macOS with Apple Silicon (M1 through M4) and that no other platform is supported yet, CUDA included. The "iPhone 15 Pro and newer" floor circulating in reposts appears nowhere in the README or the model cards, and what you can run today is a Python package on a Mac with 20 GB free.&lt;/p&gt;

&lt;p&gt;Both models are also previews. The project's own eval has the 35B pipeline at 79.2 against 83.2 for the fp16 base, and tool use, multi-step planning and long-horizon autonomy are called weak. So this is a chat model that fits in a small RAM budget, and an agent backbone it is not yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;p&gt;Anyone with an Apple Silicon Mac that has more disk than RAM, which is most laptops. The mental model I took away: once expert weights stream from storage per token, the ceiling on a local model is your disk size, and RAM becomes a working-set budget, the way it is for a database. Repo: &lt;a href="https://github.com/Edge0-AI/edge0/" rel="noopener noreferrer"&gt;https://github.com/Edge0-AI/edge0/&lt;/a&gt; and the 35B card: &lt;a href="https://huggingface.co/Edge0/Edge0-35B-A3B-preview" rel="noopener noreferrer"&gt;https://huggingface.co/Edge0/Edge0-35B-A3B-preview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you run MoE models locally: do you already keep them on SSD with mmap through another runtime, and how did decode hold up past a few thousand tokens of context?&lt;/p&gt;

</description>
      <category>llm</category>
      <category>machinelearning</category>
      <category>opensource</category>
      <category>apple</category>
    </item>
    <item>
      <title>AI Video Just Became Programmable Television</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Thu, 10 Sep 2026 03:18:42 +0000</pubDate>
      <link>https://dev.to/khasky/ai-video-just-became-programmable-television-jkg</link>
      <guid>https://dev.to/khasky/ai-video-just-became-programmable-television-jkg</guid>
      <description>&lt;p&gt;A strange thing happened when fal made H3 Max faster than realtime.&lt;/p&gt;

&lt;p&gt;The obvious benchmark story was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;a 5-second video can render in under 3 seconds.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The more interesting story is what developers started building once generation became faster than playback.&lt;/p&gt;

&lt;p&gt;They built television.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first demo got banned
&lt;/h2&gt;

&lt;p&gt;Fal engineer Rehan Sheikh connected H3 Max to a livestream inspired by the "interdimensional cable" idea from Rick and Morty.&lt;/p&gt;

&lt;p&gt;The important technical property was simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;generation time &amp;lt; playback time
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the system can finish the next segment before the current one ends, the stream does not need to stop.&lt;/p&gt;

&lt;p&gt;The experiment went viral.&lt;/p&gt;

&lt;p&gt;It was removed from Twitch and then Kick.&lt;/p&gt;

&lt;p&gt;Rehan later said both platforms banned the stream within an hour.&lt;/p&gt;

&lt;p&gt;Instead of continuing to move between platforms, fal built its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  fal.live is interactive AI television
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fal.live/" rel="noopener noreferrer"&gt;fal.live&lt;/a&gt; is fal's experimental streaming platform.&lt;/p&gt;

&lt;p&gt;It currently exposes generated channels such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chaos&lt;/li&gt;
&lt;li&gt;Sitcom&lt;/li&gt;
&lt;li&gt;Anime&lt;/li&gt;
&lt;li&gt;Soap Opera&lt;/li&gt;
&lt;li&gt;Popcorn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Availability is still experimental, and individual channels can pause or reconnect.&lt;/p&gt;

&lt;p&gt;The interesting part is the interaction model.&lt;/p&gt;

&lt;p&gt;Viewers are not just watching.&lt;/p&gt;

&lt;p&gt;They influence what happens next through prompts and voting.&lt;/p&gt;

&lt;p&gt;That turns the stream into a feedback loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;audience
-&amp;gt; direction
-&amp;gt; model
-&amp;gt; generated scene
-&amp;gt; audience reaction
-&amp;gt; next direction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📺 That loop is much closer to a game engine than a traditional video file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infinite Slop makes the idea even clearer
&lt;/h2&gt;

&lt;p&gt;Pieter Levels (&lt;a class="mentioned-user" href="https://dev.to/levelsio"&gt;@levelsio&lt;/a&gt;) built &lt;a href="https://infiniteslop.ai/" rel="noopener noreferrer"&gt;Infinite Slop&lt;/a&gt; with fal.&lt;/p&gt;

&lt;p&gt;The site describes itself very accurately:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;an endless AI-generated TV channel&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;People type what they want to see next.&lt;/p&gt;

&lt;p&gt;Suggestions enter a queue.&lt;/p&gt;

&lt;p&gt;The system generates new scenes continuously.&lt;/p&gt;

&lt;p&gt;It is chaotic and often absurd, but I think the roughness makes the underlying shift easier to see.&lt;/p&gt;

&lt;p&gt;The audience is moving from spectator to input device.&lt;/p&gt;

&lt;h2&gt;
  
  
  H3 Max Director is the real technical story
&lt;/h2&gt;

&lt;p&gt;The important release underneath these demos is &lt;a href="https://fal.ai/h3-max-director" rel="noopener noreferrer"&gt;H3 Max Director&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A normal video generation endpoint behaves roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prompt -&amp;gt; request -&amp;gt; finished clip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Director behaves more like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;open session
-&amp;gt; start stream
-&amp;gt; send direction
-&amp;gt; continue scene
-&amp;gt; send another direction
-&amp;gt; continue again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The session is carried over WebRTC.&lt;/p&gt;

&lt;p&gt;According to fal's documentation, each generated segment continues with 39 frames of carried context.&lt;/p&gt;

&lt;p&gt;Director also retains previous direction prompts as memory: 12 by default, configurable up to 50.&lt;/p&gt;

&lt;p&gt;That matters because continuity is not being approximated only by giving the next request the previous final frame.&lt;/p&gt;

&lt;p&gt;The model keeps a running context and evolves the same stream.&lt;/p&gt;

&lt;p&gt;Fal's public Director sessions currently run up to 2 minutes. Longer sessions are being enabled gradually for approved use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  This changes what a video API can be
&lt;/h2&gt;

&lt;p&gt;Most video APIs today produce assets.&lt;/p&gt;

&lt;p&gt;You request something and receive a file.&lt;/p&gt;

&lt;p&gt;Director starts looking more like a runtime.&lt;/p&gt;

&lt;p&gt;That enables a different class of product.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive stories
&lt;/h3&gt;

&lt;p&gt;A viewer can choose what a character does next while the story is already playing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Generative games
&lt;/h3&gt;

&lt;p&gt;Game state can be converted into directions for the model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Live visual agents
&lt;/h3&gt;

&lt;p&gt;Speech, sensor data, an LLM or any other source of text can steer the visual stream.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adaptive marketing
&lt;/h3&gt;

&lt;p&gt;A live experience can react to the audience rather than playing one prerecorded creative.&lt;/p&gt;

&lt;h3&gt;
  
  
  Synthetic channels
&lt;/h3&gt;

&lt;p&gt;Instead of storing a fixed content library, the channel continuously produces the next segment.&lt;/p&gt;

&lt;p&gt;This is why I think "AI video generation" is starting to become too narrow a phrase.&lt;/p&gt;

&lt;p&gt;The interesting system is not a generator.&lt;/p&gt;

&lt;p&gt;It is an interactive visual process.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cost is already calculable
&lt;/h2&gt;

&lt;p&gt;Director currently bills by generated video time.&lt;/p&gt;

&lt;p&gt;During its launch discount:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$0.02 / second
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the promotion:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$0.08 / second
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If I naively kept a Director feed generating 24/7 at the current promotional rate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$1,728 / day
$51,840 / 30 days
$630,720 / year
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At the $0.08/sec list price:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$6,912 / day
$207,360 / 30 days
$2,522,880 / year
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is obviously not a casual hobby stream.&lt;/p&gt;

&lt;p&gt;But I also do not think the right comparison is with a YouTube subscription.&lt;/p&gt;

&lt;p&gt;The comparison is with the cost of producing, operating and continuously supplying content for a real channel or interactive visual experience.&lt;/p&gt;

&lt;p&gt;From that perspective, the economics are already interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is the worst version of this medium
&lt;/h2&gt;

&lt;p&gt;fal.live and Infinite Slop are rough.&lt;/p&gt;

&lt;p&gt;That is exactly why I am paying attention.&lt;/p&gt;

&lt;p&gt;The first websites looked bad.&lt;/p&gt;

&lt;p&gt;The first streamed video looked bad.&lt;/p&gt;

&lt;p&gt;The first mobile games looked primitive.&lt;/p&gt;

&lt;p&gt;The first useful version of a medium usually arrives before the polished version.&lt;/p&gt;

&lt;p&gt;H3 Max Director gives developers a new primitive:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a visual world that can keep running and accept new instructions while it runs.&lt;/strong&gt; ⚡&lt;/p&gt;

&lt;p&gt;That sounds much more consequential than another "best video model" leaderboard result.&lt;/p&gt;

&lt;p&gt;2026 might be remembered as the year generative video stopped being a file and started becoming a process.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>videogeneration</category>
      <category>generativeai</category>
      <category>devtools</category>
    </item>
    <item>
      <title>FreeToken Runs Frontier-Scale MoE Models by Treating the Whole PC as the Inference Platform</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Tue, 08 Sep 2026 18:23:11 +0000</pubDate>
      <link>https://dev.to/khasky/freetoken-runs-frontier-scale-moe-models-by-treating-the-whole-pc-as-the-inference-platform-54pf</link>
      <guid>https://dev.to/khasky/freetoken-runs-frontier-scale-moe-models-by-treating-the-whole-pc-as-the-inference-platform-54pf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbk90i5zzlj6sq2c6m5la.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbk90i5zzlj6sq2c6m5la.jpg" alt="FreeToken benchmark card: 39.3 tok/s for Qwen3.6-35B on an 8 GB RTX 4060 laptop, 284B DeepSeek-V4-Flash at 22-25 tok/s on one RTX 5090" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most interesting FreeToken benchmark is easy to summarize:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen3.6-35B-A3B
RTX 4060 Laptop
8 GB VRAM
39.3 tok/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then it gets more unusual:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DeepSeek-V4-Flash
284B parameters
single RTX 5090
22-25 tok/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/FlashML-org/FreeToken" rel="noopener noreferrer"&gt;FreeToken&lt;/a&gt; is an open-source serving engine designed specifically for Mixture-of-Experts models on personal hardware.&lt;/p&gt;

&lt;p&gt;The important idea is not "VRAM no longer matters."&lt;/p&gt;

&lt;p&gt;It is that VRAM is only one resource in the machine.&lt;/p&gt;

&lt;p&gt;FreeToken treats the GPU, CPU, host RAM, and interconnect as one heterogeneous inference system. ⚡&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MoE changes the problem
&lt;/h2&gt;

&lt;p&gt;A dense model effectively needs all relevant weights for every token.&lt;/p&gt;

&lt;p&gt;A Mixture-of-Experts model has many expert blocks but activates only a subset for each token.&lt;/p&gt;

&lt;p&gt;FreeToken's paper gives DeepSeek-V4-Flash as an example.&lt;/p&gt;

&lt;p&gt;The model contains 284B total parameters.&lt;/p&gt;

&lt;p&gt;Only 13B participate in a single token.&lt;/p&gt;

&lt;p&gt;That makes the computation much more manageable on a consumer GPU.&lt;/p&gt;

&lt;p&gt;But the rest of the model does not disappear.&lt;/p&gt;

&lt;p&gt;The full expert pool is still huge.&lt;/p&gt;

&lt;p&gt;The hard problem becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;where do experts live?
which experts stay in VRAM?
what happens when one is missing?
how do we hide transfer latency?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;FreeToken is built around those questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The expert pool lives in host memory
&lt;/h2&gt;

&lt;p&gt;At a high level, FreeToken uses a two-level expert-memory hierarchy.&lt;/p&gt;

&lt;p&gt;The full routed-expert pool stays in CPU-accessible host RAM.&lt;/p&gt;

&lt;p&gt;Non-expert weights remain on the GPU.&lt;/p&gt;

&lt;p&gt;Remaining VRAM becomes a shared expert cache across MoE layers.&lt;/p&gt;

&lt;p&gt;When an expert is already cached, the GPU can execute it immediately.&lt;/p&gt;

&lt;p&gt;When it misses, the engine has two possible routes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;route A:
RAM -&amp;gt; PCIe -&amp;gt; VRAM -&amp;gt; GPU execute

route B:
RAM -&amp;gt; CPU execute directly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither route is universally better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bandwidth-adaptive CPU/GPU co-execution
&lt;/h2&gt;

&lt;p&gt;This is one of the most interesting parts of the design.&lt;/p&gt;

&lt;p&gt;PCIe transfer consumes link bandwidth.&lt;/p&gt;

&lt;p&gt;Direct CPU expert execution consumes host-memory bandwidth.&lt;/p&gt;

&lt;p&gt;A laptop and desktop can have completely different ratios between those resources.&lt;/p&gt;

&lt;p&gt;So FreeToken measures the machine instead of relying on a fixed expert-placement policy.&lt;/p&gt;

&lt;p&gt;Its &lt;code&gt;q*&lt;/code&gt; decode policy divides cache misses between GPU cache fills and direct CPU execution based on the actual host-memory and PCIe bandwidth.&lt;/p&gt;

&lt;p&gt;The goal is to keep both resources productive.&lt;/p&gt;

&lt;p&gt;That is a more sophisticated strategy than static CPU offloading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prefill requires a different approach
&lt;/h2&gt;

&lt;p&gt;MoE sparsity helps decode because each token touches a small subset of experts.&lt;/p&gt;

&lt;p&gt;A long prompt is different.&lt;/p&gt;

&lt;p&gt;Thousands of prompt tokens can collectively route through almost every expert.&lt;/p&gt;

&lt;p&gt;That makes the effective working set much denser.&lt;/p&gt;

&lt;p&gt;FreeToken handles this with full-layer double buffering.&lt;/p&gt;

&lt;p&gt;While the GPU computes layer &lt;code&gt;l&lt;/code&gt;, the experts for layer &lt;code&gt;l+1&lt;/code&gt; stream over PCIe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GPU:  compute layer N
PCIe: load layer N+1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The two buffers then swap.&lt;/p&gt;

&lt;p&gt;This hides transfer behind useful computation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Semantic-aware caching for agents
&lt;/h2&gt;

&lt;p&gt;The project is explicitly designed around agent workloads too.&lt;/p&gt;

&lt;p&gt;Agent contexts are not simple append-only conversations.&lt;/p&gt;

&lt;p&gt;Tool calls modify context.&lt;/p&gt;

&lt;p&gt;Thinking blocks may be removed.&lt;/p&gt;

&lt;p&gt;Prompts get edited.&lt;/p&gt;

&lt;p&gt;Traditional recurrent-state or KV reuse can become invalid.&lt;/p&gt;

&lt;p&gt;FreeToken creates semantic anchor checkpoints around boundaries such as tool calls and thinking segments.&lt;/p&gt;

&lt;p&gt;When the context changes, it can resume from a surviving anchor and re-prefill only the suffix instead of starting over.&lt;/p&gt;

&lt;p&gt;That is a very practical optimization for long-running coding agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Elastic VRAM management
&lt;/h2&gt;

&lt;p&gt;Personal hardware is not a datacenter.&lt;/p&gt;

&lt;p&gt;The GPU shares VRAM with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the desktop&lt;/li&gt;
&lt;li&gt;browsers&lt;/li&gt;
&lt;li&gt;creative apps&lt;/li&gt;
&lt;li&gt;games&lt;/li&gt;
&lt;li&gt;other local workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the same time, an agent's KV cache grows as context grows.&lt;/p&gt;

&lt;p&gt;FreeToken can resize and rebuild the GPU expert cache under a new memory budget without restarting the engine or reloading the host-resident expert pool.&lt;/p&gt;

&lt;p&gt;The memory split is allowed to move with the workload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Published performance
&lt;/h2&gt;

&lt;p&gt;The paper reports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qwen3.6-35B-A3B at 39.3 tok/s on an 8 GB RTX 4060 Laptop&lt;/li&gt;
&lt;li&gt;Qwen3.6-35B-A3B at 77-83 tok/s on RTX 5090&lt;/li&gt;
&lt;li&gt;DeepSeek-V4-Flash 284B at 22-25 tok/s on RTX 5090&lt;/li&gt;
&lt;li&gt;GLM-5.2 753B served on one RTX PRO 6000 workstation GPU&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Across five consumer systems, the paper reports a 1.3-2.1x decode-throughput improvement over the tested edge-serving baselines.&lt;/p&gt;

&lt;p&gt;Those numbers are project/paper benchmarks, so I would treat them as published benchmark results rather than a promise for every machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAM is still part of the requirement
&lt;/h2&gt;

&lt;p&gt;A giant model still has to live somewhere.&lt;/p&gt;

&lt;p&gt;The project's FAQ explains that MoE expert weights live in host RAM.&lt;/p&gt;

&lt;p&gt;For example, Qwen3.6-35B-A3B in BF16 needs roughly 70 GB of free system RAM for experts.&lt;/p&gt;

&lt;p&gt;Quantized checkpoints reduce that requirement substantially.&lt;/p&gt;

&lt;p&gt;So the correct interpretation of the 8 GB RTX 4060 result is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8 GB GPU is enough for the GPU side of the serving strategy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;the entire 35B model fits in 8 GB total memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current hardware support
&lt;/h2&gt;

&lt;p&gt;The current install docs list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux x86_64 for the Python install&lt;/li&gt;
&lt;li&gt;NVIDIA GPU&lt;/li&gt;
&lt;li&gt;Ampere / RTX 30-series or newer&lt;/li&gt;
&lt;li&gt;driver r580+&lt;/li&gt;
&lt;li&gt;CUDA 13&lt;/li&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FreeToken also ships a desktop app for Windows and Linux.&lt;/p&gt;

&lt;p&gt;The maintainers list macOS, AMD, and aarch64/DGX Spark on the roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"freetoken[accel]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ft serve &lt;span class="nt"&gt;--model&lt;/span&gt; ~/models/Qwen3.6-35B-A3B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server exposes OpenAI-compatible APIs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/v1/chat/completions
/v1/responses
/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and Anthropic-compatible endpoints:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/v1/messages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Local coding agents
&lt;/h2&gt;

&lt;p&gt;FreeToken also has a useful launcher:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ft launch claude
ft launch codex
ft launch dsh
ft launch hermes
ft launch openclaw
ft launch opencode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It configures the agent to use the local server.&lt;/p&gt;

&lt;p&gt;That makes FreeToken more than a local-chat runtime.&lt;/p&gt;

&lt;p&gt;It can serve as the local inference backend for coding and tool-calling agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  My takeaway
&lt;/h2&gt;

&lt;p&gt;For dense models, local inference is often summarized as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model size &amp;lt;= VRAM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MoE gives us a different equation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;small active path
+ large host-resident expert pool
+ smart caching
+ CPU/GPU co-execution
+ enough bandwidth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;FreeToken is an attempt to optimize that entire equation.&lt;/p&gt;

&lt;p&gt;And the published results suggest that the practical ceiling for local open-weight models can be much higher than VRAM alone would imply.&lt;/p&gt;

&lt;p&gt;Paper:&lt;br&gt;
&lt;a href="https://arxiv.org/abs/2608.16157" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2608.16157&lt;/a&gt;&lt;/p&gt;

</description>
      <category>localai</category>
      <category>llm</category>
      <category>moe</category>
      <category>opensource</category>
    </item>
    <item>
      <title>The 10-Line Claude Skill That Turns Hard Topics Into Visual Explain-Like-I'm-Five Pages</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Tue, 08 Sep 2026 07:43:57 +0000</pubDate>
      <link>https://dev.to/khasky/the-10-line-claude-skill-that-turns-hard-topics-into-visual-explain-like-im-five-pages-469e</link>
      <guid>https://dev.to/khasky/the-10-line-claude-skill-that-turns-hard-topics-into-visual-explain-like-im-five-pages-469e</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F48i1kmxdyp92c96hgph5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F48i1kmxdyp92c96hgph5.jpg" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like AI explanations, but I keep running into the same problem.&lt;/p&gt;

&lt;p&gt;The answer is often correct.&lt;/p&gt;

&lt;p&gt;It is just not the answer I need &lt;em&gt;first&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If I ask about a topic I barely understand, I may get a long explanation full of correct terminology before I have any mental model of how the pieces fit together.&lt;/p&gt;

&lt;p&gt;That is why the &lt;code&gt;eli5&lt;/code&gt; skill for Claude caught my attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  The command
&lt;/h2&gt;

&lt;p&gt;Use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/eli5 &amp;lt;topic&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/eli5 how does DNS work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude creates an HTML artifact with big pictures and very few words.&lt;/p&gt;

&lt;p&gt;The skill is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anthropics/claude-plugins-community/tree/main/eli5" rel="noopener noreferrer"&gt;anthropics/claude-plugins-community/eli5&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The whole skill is only 10 lines
&lt;/h2&gt;

&lt;p&gt;The actual &lt;code&gt;SKILL.md&lt;/code&gt; is 10 lines long.&lt;/p&gt;

&lt;p&gt;There is no complicated tutoring framework, MCP server, external search pipeline, or giant prompt.&lt;/p&gt;

&lt;p&gt;The value is mostly in the output constraint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the constraint works
&lt;/h2&gt;

&lt;p&gt;When I learn something new, I usually need a mental model before vocabulary.&lt;/p&gt;

&lt;p&gt;Take DNS.&lt;/p&gt;

&lt;p&gt;A full explanation may immediately introduce recursive resolvers, authoritative nameservers, root servers, TLD servers, caching, TTLs, and DNSSEC.&lt;/p&gt;

&lt;p&gt;All of those terms matter.&lt;/p&gt;

&lt;p&gt;But if I do not yet understand the basic flow, the terminology becomes noise.&lt;/p&gt;

&lt;p&gt;A visual first pass can instead show:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;browser
-&amp;gt; asks resolver
-&amp;gt; resolver finds answer
-&amp;gt; browser gets IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once that relationship is clear, I have somewhere to attach the terminology. 🧠&lt;/p&gt;

&lt;h2&gt;
  
  
  "ELI5" should not mean inaccurate
&lt;/h2&gt;

&lt;p&gt;The name stands for "Explain Like I'm Five."&lt;/p&gt;

&lt;p&gt;I think the best interpretation is not literally "use the vocabulary of a five-year-old."&lt;/p&gt;

&lt;p&gt;The better rule is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;assume zero background, not zero intelligence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A technical explanation can remain accurate while removing hidden prerequisites.&lt;/p&gt;

&lt;h2&gt;
  
  
  This works for more than coding
&lt;/h2&gt;

&lt;p&gt;Developer examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/eli5 virtual memory
/eli5 event loop
/eli5 TLS handshake
/eli5 Git rebase
/eli5 Kubernetes networking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Other subjects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/eli5 Bayes theorem
/eli5 inflation
/eli5 existentialism
/eli5 quantum entanglement
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only real requirement is that the subject benefits from a visual mental model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Codebases are an especially good use case
&lt;/h2&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Explain this repository.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I want something closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/eli5 how does this codebase work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The useful output is not a giant inventory of folders.&lt;/p&gt;

&lt;p&gt;It is a picture of where requests enter, which modules matter, where state lives, and how data flows.&lt;/p&gt;

&lt;p&gt;Then I can inspect the code with a structure already in my head.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is a first-pass tool
&lt;/h2&gt;

&lt;p&gt;I would not stop at an ELI5 explanation when details matter.&lt;/p&gt;

&lt;p&gt;For security-sensitive code, math, production architecture, or anything I need to implement precisely, I still want documentation, source code, proofs, benchmarks, and primary sources.&lt;/p&gt;

&lt;p&gt;ELI5 is the orientation layer.&lt;/p&gt;

&lt;p&gt;It gets me from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I do not know what any of this means.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I understand the basic structure. Now I know what to ask next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anthropic's Thariq Shihipar shared the skill publicly and said people at Anthropic had been using it a lot recently.&lt;/p&gt;

&lt;p&gt;The entire trick fits into a tiny skill file.&lt;/p&gt;

&lt;p&gt;The improvement in learning experience can be much larger.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>learning</category>
      <category>devtools</category>
    </item>
    <item>
      <title>I Want More Coding Agents to Work Like This</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Tue, 08 Sep 2026 00:11:31 +0000</pubDate>
      <link>https://dev.to/khasky/i-want-more-coding-agents-to-work-like-this-544d</link>
      <guid>https://dev.to/khasky/i-want-more-coding-agents-to-work-like-this-544d</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F84vtkc6nlkr3dqoweabk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F84vtkc6nlkr3dqoweabk.jpg" alt="Hand-drawn sketch titled OpenClaude-Portable, same setup different machines. A portable SSD in the centre is linked by arrows to three laptops labelled Work, Home and Anywhere." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻 One thing I dislike about coding-agent setups is how quickly they become part of one specific machine.&lt;/p&gt;

&lt;p&gt;Provider config goes in one place, session state somewhere else, local models live in another directory, and suddenly moving to a second machine means rebuilding the environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/techjarves/OpenClaude-Portable" rel="noopener noreferrer"&gt;OpenClaude-Portable&lt;/a&gt; takes a much cleaner approach.&lt;/p&gt;

&lt;p&gt;It packages the coding agent, runtime and persistent data into a self-contained folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  It supports cloud and local models in the same setup
&lt;/h2&gt;

&lt;p&gt;The project currently supports 9 provider options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic Claude&lt;/li&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;custom OpenAI-compatible APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I like this because the portable part is not tied to one model vendor.&lt;/p&gt;

&lt;p&gt;I can use a cloud model when I want the strongest hosted option, then switch to Ollama or LM Studio when I want a local workflow.&lt;/p&gt;

&lt;p&gt;The important caveat is simple: cloud providers still need internet. Ollama can run offline after the initial setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "zero footprint" idea is more useful than it sounds
&lt;/h2&gt;

&lt;p&gt;The project redirects its persistent data into a local &lt;code&gt;data&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;That includes provider settings, API keys, logs, session history, agent memory and local Ollama files.&lt;/p&gt;

&lt;p&gt;According to the repository, it does not write configuration into the host system.&lt;/p&gt;

&lt;p&gt;For me, this is the real feature.&lt;/p&gt;

&lt;p&gt;I do not care that the agent happens to be on a USB drive. I care that I can move the folder and keep my environment with it. 💾&lt;/p&gt;

&lt;h2&gt;
  
  
  There are two very different ways to run the agent
&lt;/h2&gt;

&lt;p&gt;The launcher offers a normal mode that asks before file writes or shell commands.&lt;/p&gt;

&lt;p&gt;There is also an optional Limitless mode that can run without approval prompts.&lt;/p&gt;

&lt;p&gt;I like that these are explicit choices rather than one hidden permission switch.&lt;/p&gt;

&lt;p&gt;For normal development I would keep approval mode on. For a disposable test project or a controlled autonomous task, the second mode could be useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sessions can survive the move
&lt;/h2&gt;

&lt;p&gt;Another practical detail is session resume.&lt;/p&gt;

&lt;p&gt;The project stores session history inside the portable data folder and includes a resume command for interrupted sessions.&lt;/p&gt;

&lt;p&gt;That matters more to me than a flashy UI feature because an agent becomes useful over time only if its working context is not constantly thrown away.&lt;/p&gt;

&lt;p&gt;There is also a browser dashboard with a chat-style interface, agent mode, tool cards and a thinking visualization.&lt;/p&gt;

&lt;p&gt;So you are not limited to a terminal-only experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The local-model optimization is surprisingly aggressive
&lt;/h2&gt;

&lt;p&gt;Running a coding agent against a small Ollama model on CPU can be painfully slow because the agent itself sends a large system prompt.&lt;/p&gt;

&lt;p&gt;OpenClaude-Portable includes a local proxy that trims that prompt before sending it to Ollama.&lt;/p&gt;

&lt;p&gt;The repository says it reduces the prompt from roughly 10,000 tokens to around 300 for this local path, and reports typical first-token latency improving from 60-120 seconds to roughly 5-20 seconds on CPU-only hardware.&lt;/p&gt;

&lt;p&gt;I would treat those numbers as project-reported rather than universal benchmarks, but the idea is smart: optimize the agent protocol for the limitations of small local models instead of pretending local and cloud inference behave the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The base installation is small
&lt;/h2&gt;

&lt;p&gt;The project itself needs roughly 150 MB for the runtime and engine.&lt;/p&gt;

&lt;p&gt;Local models are the part that grows quickly, with the repository suggesting roughly 800 MB to 8 GB depending on the Ollama model.&lt;/p&gt;

&lt;p&gt;That makes a portable setup realistic.&lt;/p&gt;

&lt;p&gt;One warning from the README is worth repeating: first-time installation on slow USB media can take 10-15 minutes. A USB 3.x drive or doing the initial setup on internal storage and copying the completed folder back is a better experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would use it for
&lt;/h2&gt;

&lt;p&gt;I would not move my primary development environment onto a random flash drive.&lt;/p&gt;

&lt;p&gt;But I absolutely see value in a prepared portable agent for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;travel&lt;/li&gt;
&lt;li&gt;a backup machine&lt;/li&gt;
&lt;li&gt;a recovery environment&lt;/li&gt;
&lt;li&gt;temporary workstations&lt;/li&gt;
&lt;li&gt;offline coding with a small local model&lt;/li&gt;
&lt;li&gt;testing different providers without rebuilding config&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For me, OpenClaude-Portable is interesting because it treats the coding agent as part of the project environment instead of part of the computer.&lt;/p&gt;

&lt;p&gt;I want more developer tools to work that way.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devtools</category>
      <category>programming</category>
    </item>
    <item>
      <title>Two Claude Code sessions can message each other. That does not stop them overwriting your files.</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Wed, 02 Sep 2026 07:00:39 +0000</pubDate>
      <link>https://dev.to/khasky/two-claude-code-sessions-can-message-each-other-that-does-not-stop-them-overwriting-your-files-5f2p</link>
      <guid>https://dev.to/khasky/two-claude-code-sessions-can-message-each-other-that-does-not-stop-them-overwriting-your-files-5f2p</guid>
      <description>&lt;p&gt;I ran two Claude Code sessions against one repository and assumed the hard part was coordination. It is not. The hard part is that coordination looks like it solves a problem it never touches.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is actually built in 🧐
&lt;/h2&gt;

&lt;p&gt;Two sessions can find each other and talk. Anthropic's docs on cross-session messaging describe it: one session warns another that a change broke what it was building on, or answers a question the other was blocked on. Claude uses two tools for it, &lt;code&gt;ListAgents&lt;/code&gt; to see who is reachable and &lt;code&gt;SendMessage&lt;/code&gt; to write to one of them by name. Nothing to switch on. You check what a session can reach with &lt;code&gt;/list-agents&lt;/code&gt;, also spelled &lt;code&gt;/peers&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;There is a version floor. Cross-session messaging needs Claude Code 2.1.224 or later on macOS, Linux and WSL 2, and 2.1.234 or later on native Windows. Below that the command is not recognised at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sentence that changes the plan
&lt;/h2&gt;

&lt;p&gt;From the same page: "A message is a piece of text one Claude writes to another, never the sender's conversation history or files."&lt;/p&gt;

&lt;p&gt;Text. Not files.&lt;/p&gt;

&lt;p&gt;So two sessions can be perfectly informed about each other and still be pointed at the same &lt;code&gt;schema.ts&lt;/code&gt; in the same folder, both about to write it. Anthropic says this outright: two agents editing one file in a shared working directory can overwrite each other's changes. There is no source-file locking underneath, and no merge layer doing the reconciling.&lt;/p&gt;

&lt;p&gt;Messaging is a channel. It was never a lock.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually protects the work
&lt;/h2&gt;

&lt;p&gt;A worktree per session. &lt;code&gt;claude --worktree backend&lt;/code&gt; in one terminal and &lt;code&gt;claude --worktree frontend&lt;/code&gt; in another, and each session gets its own directory, its own branch and its own copy of the tracked files. The docs put the effect plainly: edits in one session never touch files in another. Claude Code also refuses an edit aimed from inside a worktree back at the main checkout, so the isolation is enforced rather than agreed.&lt;/p&gt;

&lt;p&gt;Add &lt;code&gt;.claude/worktrees/&lt;/code&gt; to &lt;code&gt;.gitignore&lt;/code&gt; while you are in there, or the worktree contents turn up as untracked noise in your main checkout.&lt;/p&gt;

&lt;p&gt;Now messaging becomes the thing it is good at. Session A changes the API, makes a small commit, and sends session B the commit hash and the list of files that moved. B rebases or cherry-picks, then re-reads what changed. If both of them touched the same file, git raises a conflict. A conflict interrupts you. A silent overwrite is a loss you find out about later, if at all 😬&lt;/p&gt;

&lt;h2&gt;
  
  
  The part no tool does for you 🤔
&lt;/h2&gt;

&lt;p&gt;Worktrees do not decide who owns &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For the files both sessions genuinely need to change, the only reliable scheme is boring: one owner at a time. Different files in parallel, the same file in sequence. Write it into the prompt as a protocol. Name the directories each session owns, require a handoff through a message before either one touches a file the other holds, and require a commit before the handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two alternatives, and why neither replaces this
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent Teams&lt;/strong&gt; is the experimental mode where one lead session spawns and supervises teammates, behind &lt;code&gt;CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&lt;/code&gt;. It gives a shared task list, a mailbox, and direct messages between agents, and claiming a task is protected by a file lock. Read that last part slowly: the lock is on the task record, not on the source files. It coordinates who does what. It does not stop two writers landing on one file, which is why the recommendation is still to split responsibility by file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Agent Mail&lt;/strong&gt; is the closest third-party attempt: persistent agent identities, an inbox and outbox with threads, file reservations by path and glob, TTL on stale reservations, and an optional pre-commit or pre-push guard. It is the only one of the three that models file ownership at all. But those reservations are advisory. The server reports the conflict, it is not a transactional write lock, and the guard can block a commit without stopping a write already under way in a shared directory. Even with it, I would still run worktrees.&lt;/p&gt;

&lt;p&gt;Plugins named &lt;code&gt;swarm&lt;/code&gt; or &lt;code&gt;orchestration&lt;/code&gt; mostly automate prompts and roles on top of Agent Teams. They add no locking of their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would take away
&lt;/h2&gt;

&lt;p&gt;Isolation buys the safety. Ownership settles the rest. The message is only how the other session finds out.&lt;/p&gt;

&lt;p&gt;Anthropic's page on cross-session messaging is worth reading in full: &lt;a href="https://code.claude.com/docs/en/cross-session-messaging" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/cross-session-messaging&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>git</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How Biology Became the Foundation of Artificial Intelligence 🧠</title>
      <dc:creator>Ian Khasky</dc:creator>
      <pubDate>Sun, 21 Jun 2026 18:24:57 +0000</pubDate>
      <link>https://dev.to/khasky/how-biology-became-the-foundation-of-artificial-intelligence-2427</link>
      <guid>https://dev.to/khasky/how-biology-became-the-foundation-of-artificial-intelligence-2427</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j2bcr7nr8w2s2651g58.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j2bcr7nr8w2s2651g58.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern AI may look incredibly complex today.&lt;/p&gt;

&lt;p&gt;We talk about transformers, attention mechanisms, large language models, embeddings, agents, and reasoning systems.&lt;/p&gt;

&lt;p&gt;But at the foundation of neural networks is a much simpler idea: the artificial neuron.&lt;/p&gt;

&lt;h2&gt;
  
  
  The biological inspiration
&lt;/h2&gt;

&lt;p&gt;A biological neuron receives signals through dendrites.&lt;/p&gt;

&lt;p&gt;These signals are integrated in the cell body, also called the soma. If the combined signal is strong enough, the neuron generates an impulse and sends it forward through the axon.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dendrites -&amp;gt; cell body -&amp;gt; impulse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The neuron receives input, processes it, and then decides whether to pass a signal forward.&lt;/p&gt;

&lt;p&gt;This biological process inspired one of the earliest building blocks of artificial intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The artificial neuron
&lt;/h2&gt;

&lt;p&gt;An artificial neuron follows a similar logic, but mathematically.&lt;/p&gt;

&lt;p&gt;Instead of biological signals, it receives numerical inputs.&lt;/p&gt;

&lt;p&gt;Each input is multiplied by a weight. Then all weighted inputs are added together, adjusted by a bias, and passed through an activation function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inputs -&amp;gt; weights -&amp;gt; weighted sum + bias -&amp;gt; activation function -&amp;gt; output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, in a simplified formula:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;z = w1*x1 + w2*x2 + ... + wn*xn + b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;x values are the inputs&lt;/li&gt;
&lt;li&gt;w values are the weights&lt;/li&gt;
&lt;li&gt;b is the bias&lt;/li&gt;
&lt;li&gt;z is the weighted sum before activation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why activation functions matter
&lt;/h2&gt;

&lt;p&gt;Without an activation function, a neural network would mostly behave like a linear mathematical model.&lt;/p&gt;

&lt;p&gt;Activation functions introduce non-linearity, allowing neural networks to learn more complex patterns.&lt;/p&gt;

&lt;p&gt;One classic example is the sigmoid activation function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sigma(z) = 1 / (1 + e^(-z))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sigmoid function always produces a value between 0 and 1.&lt;/p&gt;

&lt;p&gt;That means the neuron does not simply output "yes" or "no".&lt;/p&gt;

&lt;p&gt;Instead, it produces a smooth value that can often be interpreted as confidence or probability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before transformers, there was the perceptron
&lt;/h2&gt;

&lt;p&gt;Before transformers, attention mechanisms, and large language models, there was a much smaller foundation: the perceptron.&lt;/p&gt;

&lt;p&gt;A perceptron is one of the earliest models of an artificial neuron. It takes inputs, applies weights, adds bias, and produces an output through an activation function.&lt;/p&gt;

&lt;p&gt;This simple structure became one of the building blocks for modern neural networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this still matters
&lt;/h2&gt;

&lt;p&gt;Today's AI systems are much more advanced than a single perceptron.&lt;/p&gt;

&lt;p&gt;But the core idea remains important:&lt;/p&gt;

&lt;p&gt;small mathematical units process information, pass signals forward, and combine into larger systems capable of learning complex behavior.&lt;/p&gt;

&lt;p&gt;Modern AI begins at the smallest level, with one artificial neuron.&lt;/p&gt;

&lt;p&gt;And that idea began with biology.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>deeplearning</category>
      <category>neuralnetworks</category>
    </item>
  </channel>
</rss>
