<?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: Manuel Lopez</title>
    <description>The latest articles on DEV Community by Manuel Lopez (@jarkillo).</description>
    <link>https://dev.to/jarkillo</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%2F4235053%2F5e54de75-0a63-4061-904e-0cc232c9ed96.jpg</url>
      <title>DEV Community: Manuel Lopez</title>
      <link>https://dev.to/jarkillo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jarkillo"/>
    <language>en</language>
    <item>
      <title>What broke when I started running ten Claude Code sessions at once</title>
      <dc:creator>Manuel Lopez</dc:creator>
      <pubDate>Mon, 09 Nov 2026 11:52:45 +0000</pubDate>
      <link>https://dev.to/jarkillo/what-broke-when-i-started-running-ten-claude-code-sessions-at-once-1i1l</link>
      <guid>https://dev.to/jarkillo/what-broke-when-i-started-running-ten-claude-code-sessions-at-once-1i1l</guid>
      <description>&lt;p&gt;I've spent the last few months running five to ten Claude Code sessions at the same time: one session per issue, across a handful of my own projects. Claude Code wrote almost all of the code behind what follows. The bottleneck stopped being the model quite early. It was me.&lt;/p&gt;

&lt;p&gt;Here's what broke, in order of how much it hurt, and what I changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. I was the message bus
&lt;/h2&gt;

&lt;p&gt;Agent A finds something agent B needs. Without help, the only path between them is me copying and pasting. With ten sessions that's most of my day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I changed:&lt;/strong&gt; a mailbox per project. A message waits there even when no session is open. An agent reads it with a tool call in the middle of its work, so reading mail doesn't cost a new turn. Urgent messages can wake an idle session; everything else waits until the agent checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; most messages between agents aren't urgent. If every message starts a turn, you pay for interruptions nobody needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Every morning I re-explained the project
&lt;/h2&gt;

&lt;p&gt;A fresh session knows nothing. I was writing the same onboarding paragraph again and again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I changed:&lt;/strong&gt; a shared memory the agents search &lt;em&gt;before&lt;/em&gt; they start digging, and an issue board they pick up, work and close themselves. One tab = one issue, and the tab closes when the issue does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; "one tab, one issue" did more for focus than any prompt. When a session carries three topics, it mixes them up.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Long sessions get expensive, and worse
&lt;/h2&gt;

&lt;p&gt;I measured my own sessions. Past roughly 20–25 % of the context window, starting a fresh session with a written handoff was cheaper than carrying on. At 40 % it cost about 28 % more for the same work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I changed:&lt;/strong&gt; the agent writes its own handoff (state, decisions, what's next) and a new tab takes over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; a good handoff is a document a stranger could act on. If it says "as discussed", it isn't one.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. "All tests pass" isn't always true
&lt;/h2&gt;

&lt;p&gt;Agents report green when it isn't: a suite that never ran, a failing check turned off, a test skipped.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I changed:&lt;/strong&gt; a CI check that ties every commit to its issue and doesn't take the agent's word for the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; trust the log, not the summary.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. I couldn't tell who needed me
&lt;/h2&gt;

&lt;p&gt;With ten tabs, the one waiting on my answer looks exactly like the nine that are busy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I changed:&lt;/strong&gt; tabs that show who's working, who's finished and who's waiting on me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The app
&lt;/h2&gt;

&lt;p&gt;All of this lives in a desktop app for Windows. It's free and runs locally: Claude Code, Codex and OpenRouter sessions side by side. It's in the Microsoft Store as &lt;strong&gt;Axon Terminal&lt;/strong&gt; while we rename it to &lt;strong&gt;Lichen&lt;/strong&gt;: &lt;a href="https://apps.microsoft.com/detail/9P5DW739TTN1" rel="noopener noreferrer"&gt;https://apps.microsoft.com/detail/9P5DW739TTN1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The shared memory, the board and the mailbox need a server, so they'll be a paid account. That part isn't open yet; there's a waitlist at &lt;a href="https://uselichen.com/?utm_source=devto" rel="noopener noreferrer"&gt;https://uselichen.com/?utm_source=devto&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How are you handling many agent sessions at once? I'm especially curious how others do handoffs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>claude</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
