<?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: Switchman</title>
    <description>The latest articles on DEV Community by Switchman (@switchmandev).</description>
    <link>https://dev.to/switchmandev</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817372%2F2067b848-ee5c-4936-a091-f5dfdda7409a.png</url>
      <title>DEV Community: Switchman</title>
      <link>https://dev.to/switchmandev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/switchmandev"/>
    <language>en</language>
    <item>
      <title>Running Multiple AI Coding Agents in One Repo Broke Fast. So I Built Switchman.</title>
      <dc:creator>Switchman</dc:creator>
      <pubDate>Fri, 20 Mar 2026 11:33:17 +0000</pubDate>
      <link>https://dev.to/switchmandev/running-multiple-ai-coding-agents-in-one-repo-broke-fast-so-i-built-switchman-2cld</link>
      <guid>https://dev.to/switchmandev/running-multiple-ai-coding-agents-in-one-repo-broke-fast-so-i-built-switchman-2cld</guid>
      <description>&lt;p&gt;Most AI coding tools help one agent write code.&lt;/p&gt;

&lt;p&gt;The hard part starts when you run multiple agents in the same repo.&lt;/p&gt;

&lt;p&gt;That is when things get messy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;two agents edit the same file&lt;/li&gt;
&lt;li&gt;three agents solve the same problem in different ways&lt;/li&gt;
&lt;li&gt;nobody knows what should land first&lt;/li&gt;
&lt;li&gt;you become the human traffic controller&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://switchman.dev/" rel="noopener noreferrer"&gt;Switchman&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Switchman is an open-source CLI that coordinates multiple AI coding agents working in one codebase.&lt;/p&gt;

&lt;p&gt;You start with one command:&lt;/p&gt;



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

switchman start "Add user authentication"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Tried Running Multiple AI Coding Agents on One Repo. It Got Messy Fast.</title>
      <dc:creator>Switchman</dc:creator>
      <pubDate>Fri, 13 Mar 2026 21:48:08 +0000</pubDate>
      <link>https://dev.to/switchmandev/i-tried-running-multiple-ai-coding-agents-on-one-repo-it-got-messy-fast-56d1</link>
      <guid>https://dev.to/switchmandev/i-tried-running-multiple-ai-coding-agents-on-one-repo-it-got-messy-fast-56d1</guid>
      <description>&lt;p&gt;Everyone talks about AI coding agents like the hard part is getting them to write code.&lt;/p&gt;

&lt;p&gt;It isn’t.&lt;/p&gt;

&lt;p&gt;The hard part is what happens &lt;strong&gt;after&lt;/strong&gt; you have 3, 5, or 10 agents all trying to push work forward in the same codebase.&lt;/p&gt;

&lt;p&gt;That’s where things get weird.&lt;/p&gt;

&lt;p&gt;Not in a “the models are bad” way.&lt;/p&gt;

&lt;p&gt;In a much more boring, painful way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;two agents touch the same file&lt;/li&gt;
&lt;li&gt;one finishes work that quietly makes another stale&lt;/li&gt;
&lt;li&gt;three branches all look fine on their own and then collide at merge time&lt;/li&gt;
&lt;li&gt;nobody knows what should land next&lt;/li&gt;
&lt;li&gt;humans end up doing project management for the agents instead of actually shipping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built &lt;strong&gt;Switchman&lt;/strong&gt; because I kept feeling like the tooling around AI coding was missing the actual problem.&lt;/p&gt;

&lt;p&gt;We have tools for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generating code&lt;/li&gt;
&lt;li&gt;editing code&lt;/li&gt;
&lt;li&gt;opening PRs&lt;/li&gt;
&lt;li&gt;running in isolated environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But once multiple agents are involved, the real problem becomes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you coordinate parallel software work without turning your repo into chaos?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment it clicked for me
&lt;/h2&gt;

&lt;p&gt;At first I thought the problem was simple.&lt;/p&gt;

&lt;p&gt;“Just give each agent its own branch.”&lt;br&gt;
Or:&lt;br&gt;
“Just use Git worktrees.”&lt;br&gt;
Or:&lt;br&gt;
“Just let merge conflicts happen in PRs.”&lt;/p&gt;

&lt;p&gt;And to be fair, those things help.&lt;/p&gt;

&lt;p&gt;But they don’t solve the actual coordination layer.&lt;/p&gt;

&lt;p&gt;Worktrees give agents isolated checkouts.&lt;br&gt;&lt;br&gt;
Branches give them isolated histories.&lt;/p&gt;

&lt;p&gt;Neither one answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who should work on what&lt;/li&gt;
&lt;li&gt;how to stop duplicate work early&lt;/li&gt;
&lt;li&gt;how to catch overlap before the end&lt;/li&gt;
&lt;li&gt;how to know what became stale&lt;/li&gt;
&lt;li&gt;how to decide what should land next&lt;/li&gt;
&lt;li&gt;how to merge parallel work safely without babysitting it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s the gap I kept running into.&lt;/p&gt;

&lt;p&gt;The problem wasn’t “how do I isolate agents?”&lt;br&gt;&lt;br&gt;
It was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I run several agents at once and still trust what’s happening?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually breaks when you try this
&lt;/h2&gt;

&lt;p&gt;Once you move past one-agent demos, the failure modes are pretty predictable.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Duplicate work
&lt;/h3&gt;

&lt;p&gt;Two agents end up solving the same problem from different angles because nobody assigned clear ownership.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Silent overlap
&lt;/h3&gt;

&lt;p&gt;They don’t even have to touch the exact same file. One changes a shared module, another builds on assumptions that are now outdated, and the collision only shows up later.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Stale work
&lt;/h3&gt;

&lt;p&gt;One agent finishes something important, and another agent’s “done” work is now not really done anymore.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Merge queue pain
&lt;/h3&gt;

&lt;p&gt;Even if every branch looks valid on its own, you still need to decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what lands first&lt;/li&gt;
&lt;li&gt;what waits&lt;/li&gt;
&lt;li&gt;what should be retried&lt;/li&gt;
&lt;li&gt;what needs review&lt;/li&gt;
&lt;li&gt;what is too risky to merge yet&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Humans become the scheduler
&lt;/h3&gt;

&lt;p&gt;This is the part nobody advertises.&lt;/p&gt;

&lt;p&gt;Without a coordination layer, the human ends up doing all of this manually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;routing work&lt;/li&gt;
&lt;li&gt;checking overlap&lt;/li&gt;
&lt;li&gt;resolving priority&lt;/li&gt;
&lt;li&gt;deciding merge order&lt;/li&gt;
&lt;li&gt;figuring out what broke what&lt;/li&gt;
&lt;li&gt;telling agents what to retry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, “parallel agents” can actually create more overhead instead of less.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I think the real workflow is
&lt;/h2&gt;

&lt;p&gt;The workflow is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;one prompt -&amp;gt; one agent -&amp;gt; one result&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s too small.&lt;/p&gt;

&lt;p&gt;The real workflow for AI-native software teams is closer to this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Several goals arrive at once.&lt;/li&gt;
&lt;li&gt;The work gets broken into parallel tasks.&lt;/li&gt;
&lt;li&gt;Agents and humans move at the same time.&lt;/li&gt;
&lt;li&gt;Overlap, drift, and stale work need to be caught early.&lt;/li&gt;
&lt;li&gt;Validation and review need to happen in the right places.&lt;/li&gt;
&lt;li&gt;Someone has to decide what is safe to land, and in what order.&lt;/li&gt;
&lt;li&gt;The repo needs a trusted path back to &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s the workflow I think tools should own.&lt;/p&gt;

&lt;p&gt;Not just code generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parallel software change.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built instead
&lt;/h2&gt;

&lt;p&gt;Switchman acts more like a control layer than a code-writing tool.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hand out tasks&lt;/li&gt;
&lt;li&gt;claim files before editing&lt;/li&gt;
&lt;li&gt;block overlap early&lt;/li&gt;
&lt;li&gt;detect stale work&lt;/li&gt;
&lt;li&gt;keep work visible&lt;/li&gt;
&lt;li&gt;run checks before landing&lt;/li&gt;
&lt;li&gt;queue finished branches&lt;/li&gt;
&lt;li&gt;land the right work safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of “let a bunch of agents loose and hope Git sorts it out,” the flow becomes more like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;here’s who owns what&lt;/li&gt;
&lt;li&gt;here’s what’s blocked&lt;/li&gt;
&lt;li&gt;here’s what got stale&lt;/li&gt;
&lt;li&gt;here’s what should land next&lt;/li&gt;
&lt;li&gt;here’s the exact command to recover when something goes wrong&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That sounds small on paper.&lt;/p&gt;

&lt;p&gt;It feels very different in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I didn’t expect
&lt;/h2&gt;

&lt;p&gt;The interesting thing is that once you solve the coordination problem, the product stops feeling like “file locking for AI.”&lt;/p&gt;

&lt;p&gt;It starts feeling more like &lt;strong&gt;operational trust for AI-driven software work&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because teams don’t really just want faster code generation.&lt;/p&gt;

&lt;p&gt;They want to be able to say:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we can run many agents at once&lt;/li&gt;
&lt;li&gt;we know what they’re doing&lt;/li&gt;
&lt;li&gt;we know what changed&lt;/li&gt;
&lt;li&gt;we know what got invalidated&lt;/li&gt;
&lt;li&gt;we know what is safe to merge&lt;/li&gt;
&lt;li&gt;we know why something was blocked&lt;/li&gt;
&lt;li&gt;we can recover when workflows get messy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s a much bigger category.&lt;/p&gt;

&lt;p&gt;And honestly, I think that’s where the real value is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pushback I hear most
&lt;/h2&gt;

&lt;p&gt;A common response is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why not just use worktrees?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think that’s a fair question.&lt;/p&gt;

&lt;p&gt;Worktrees are part of the setup.&lt;br&gt;&lt;br&gt;
They’re useful.&lt;br&gt;&lt;br&gt;
They help with isolation.&lt;/p&gt;

&lt;p&gt;But they don’t solve the coordination problem on their own.&lt;/p&gt;

&lt;p&gt;They don’t decide who should work on what.&lt;br&gt;&lt;br&gt;
They don’t stop duplicate effort.&lt;br&gt;&lt;br&gt;
They don’t detect stale work.&lt;br&gt;&lt;br&gt;
They don’t manage the landing queue.&lt;br&gt;&lt;br&gt;
They don’t explain what should happen next.&lt;/p&gt;

&lt;p&gt;They solve isolation.&lt;/p&gt;

&lt;p&gt;They do not solve orchestration.&lt;/p&gt;

&lt;p&gt;And once you have several agents moving at once, orchestration is the real problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed recently
&lt;/h2&gt;

&lt;p&gt;The project has evolved a lot from the early version.&lt;/p&gt;

&lt;p&gt;It now has much better support for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;safe landing flows&lt;/li&gt;
&lt;li&gt;synthetic landing branches for multi-branch work&lt;/li&gt;
&lt;li&gt;stale-work recovery&lt;/li&gt;
&lt;li&gt;queue planning&lt;/li&gt;
&lt;li&gt;operator-friendly &lt;code&gt;status&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PR / CI summaries&lt;/li&gt;
&lt;li&gt;policy-aware landing&lt;/li&gt;
&lt;li&gt;repair and self-healing flows&lt;/li&gt;
&lt;li&gt;clearer “why blocked?” explanations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing I cared about a lot was the first-run experience.&lt;/p&gt;

&lt;p&gt;If a tool like this is going to matter, it can’t just be powerful.&lt;br&gt;&lt;br&gt;
It has to feel understandable in the first few minutes.&lt;/p&gt;

&lt;p&gt;So a lot of recent work went into making:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;switchman setup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;switchman demo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;switchman status&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;feel much more obvious and less intimidating.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I think happens next
&lt;/h2&gt;

&lt;p&gt;I think the next wave of developer tools is going to split into two camps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Camp 1: “better coding”
&lt;/h3&gt;

&lt;p&gt;Tools that help a single developer or agent write code faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Camp 2: “better software change”
&lt;/h3&gt;

&lt;p&gt;Tools that help teams coordinate, govern, and land software work safely when lots of parallel work is happening.&lt;/p&gt;

&lt;p&gt;I’m much more interested in the second one.&lt;/p&gt;

&lt;p&gt;Because as soon as multiple agents become normal, the bottleneck stops being code output.&lt;/p&gt;

&lt;p&gt;The bottleneck becomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;coordination&lt;/li&gt;
&lt;li&gt;merge risk&lt;/li&gt;
&lt;li&gt;review routing&lt;/li&gt;
&lt;li&gt;stale work&lt;/li&gt;
&lt;li&gt;trust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s what I’m building for.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you’re experimenting with multiple agents
&lt;/h2&gt;

&lt;p&gt;My strong opinion is this:&lt;/p&gt;

&lt;p&gt;Don’t stop at isolation.&lt;/p&gt;

&lt;p&gt;Isolation is necessary, but it’s not enough.&lt;/p&gt;

&lt;p&gt;If you want multiple agents to be genuinely useful in real repos, you need a way to coordinate the work and control the path back to merge.&lt;/p&gt;

&lt;p&gt;Otherwise you’re just moving the mess to a later stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want to play with it:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
npm install -g switchman-dev
switchman setup --agents 3
switchman demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>agents</category>
      <category>coding</category>
    </item>
    <item>
      <title>I got tired of AI coding agents stepping on each other, so I built Switchman</title>
      <dc:creator>Switchman</dc:creator>
      <pubDate>Thu, 12 Mar 2026 17:47:59 +0000</pubDate>
      <link>https://dev.to/switchmandev/i-got-tired-of-ai-coding-agents-stepping-on-each-other-so-i-built-switchman-3620</link>
      <guid>https://dev.to/switchmandev/i-got-tired-of-ai-coding-agents-stepping-on-each-other-so-i-built-switchman-3620</guid>
      <description>&lt;p&gt;We’re at a weird point in software development.&lt;/p&gt;

&lt;p&gt;AI coding agents are finally useful enough that you actually want more than one of them running at the same time.&lt;/p&gt;

&lt;p&gt;One agent updates auth.&lt;br&gt;
Another writes tests.&lt;br&gt;
Another fixes docs.&lt;br&gt;
Another tries a refactor.&lt;/p&gt;

&lt;p&gt;In theory, that sounds amazing.&lt;/p&gt;

&lt;p&gt;In practice, it gets messy fast.&lt;/p&gt;

&lt;p&gt;They duplicate work.&lt;br&gt;
They edit the same files.&lt;br&gt;
They leave stale half-finished branches behind.&lt;br&gt;
And the “easy” part of parallel AI coding turns into manual coordination and merge cleanup.&lt;/p&gt;

&lt;p&gt;That was the reason I built &lt;strong&gt;Switchman&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Switchman is
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Switchman acts like a project manager for your AI coding assistants.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hands out tasks&lt;/li&gt;
&lt;li&gt;stops agents from editing the same file at the same time&lt;/li&gt;
&lt;li&gt;tracks active work&lt;/li&gt;
&lt;li&gt;recovers stuck sessions&lt;/li&gt;
&lt;li&gt;checks work before merge&lt;/li&gt;
&lt;li&gt;lands finished branches safely back onto &lt;code&gt;main&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simplest way to describe it is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git gives you branches. Switchman gives you coordination.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem I kept hitting
&lt;/h2&gt;

&lt;p&gt;Running one coding agent is easy.&lt;/p&gt;

&lt;p&gt;Running several on one repo is where the real problems start.&lt;/p&gt;

&lt;p&gt;Git worktrees help with isolation, but not coordination.&lt;/p&gt;

&lt;p&gt;They do &lt;strong&gt;not&lt;/strong&gt; tell you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which task each agent should take next&lt;/li&gt;
&lt;li&gt;who already owns a file&lt;/li&gt;
&lt;li&gt;whether an abandoned session should be cleaned up&lt;/li&gt;
&lt;li&gt;whether a finished branch is still safe to land&lt;/li&gt;
&lt;li&gt;how to merge several completed branches back onto &lt;code&gt;main&lt;/code&gt; without babysitting the whole process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That missing layer is what I wanted.&lt;/p&gt;

&lt;p&gt;Not another coding agent.&lt;/p&gt;

&lt;p&gt;A control layer for the agents I already use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What using it feels like
&lt;/h2&gt;

&lt;p&gt;The workflow I wanted was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;spin up several agent workspaces&lt;/li&gt;
&lt;li&gt;give them clearly separate tasks&lt;/li&gt;
&lt;li&gt;keep one status view open&lt;/li&gt;
&lt;li&gt;stop collisions early&lt;/li&gt;
&lt;li&gt;land finished work safely, one branch at a time&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s what Switchman does now.&lt;/p&gt;

&lt;p&gt;A typical first run looks like this:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
switchman setup --agents 5
switchman verify-setup

switchman task add "Implement auth helper" --priority 9
switchman task add "Add auth tests" --priority 8
switchman task add "Update auth docs" --priority 7

switchman status --watch
switchman gate ci
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Run 5 Claude Code Agents in Parallel Without Them Overwriting Each Other</title>
      <dc:creator>Switchman</dc:creator>
      <pubDate>Tue, 10 Mar 2026 18:22:38 +0000</pubDate>
      <link>https://dev.to/switchmandev/how-to-run-5-claude-code-agents-in-parallel-without-them-overwriting-each-other-1dkb</link>
      <guid>https://dev.to/switchmandev/how-to-run-5-claude-code-agents-in-parallel-without-them-overwriting-each-other-1dkb</guid>
      <description>&lt;p&gt;I was about an hour into what felt like a genuinely productive session. Three Claude Code instances running, each working on a different part of the codebase. It felt like having a small team.&lt;/p&gt;

&lt;p&gt;Then I checked the git diff.&lt;/p&gt;

&lt;p&gt;Two of the agents had been editing &lt;code&gt;auth.js&lt;/code&gt; at the same time. One of them finished first. The other one saved over it. Two hours of work from agent one — gone. No warning, no conflict marker, nothing. Just silently overwritten.&lt;/p&gt;

&lt;p&gt;That's the thing nobody tells you about running parallel agents. Claude Code is incredible. Running multiple instances is even better. But they have absolutely no idea what each other is doing. There's no shared brain, no "hey, I'm working on that file" signal. Each one just does its thing and assumes it has the whole codebase to itself.&lt;/p&gt;

&lt;p&gt;So I built Switchman to fix it. This is how to use it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before you start
&lt;/h2&gt;

&lt;p&gt;You'll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js 22.5+&lt;/li&gt;
&lt;li&gt;Git 2.5+&lt;/li&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Install Switchman:&lt;br&gt;
&lt;/p&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; switchman-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The idea in plain English
&lt;/h2&gt;

&lt;p&gt;Switchman does three things that Claude Code doesn't do on its own:&lt;/p&gt;

&lt;p&gt;It gives your agents a &lt;strong&gt;shared task list&lt;/strong&gt;. You add the work upfront, and each agent picks up one task at a time. No two agents ever get the same job.&lt;/p&gt;

&lt;p&gt;It adds &lt;strong&gt;file locking&lt;/strong&gt;. Before an agent touches a file, it checks in. If another agent already has that file, it gets told immediately and picks something else instead. The collision never happens.&lt;/p&gt;

&lt;p&gt;It connects to Claude Code &lt;strong&gt;automatically&lt;/strong&gt; via MCP. You don't write any coordination logic. You just open Claude Code in each workspace and it handles the rest.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1 — Create your agent workspaces
&lt;/h2&gt;

&lt;p&gt;The first thing you need is a separate workspace for each agent — its own copy of the repo, on its own branch. If two agents are working in the same folder, they'll step on each other no matter what.&lt;/p&gt;

&lt;p&gt;Run this once from your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
switchman setup &lt;span class="nt"&gt;--agents&lt;/span&gt; 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Switchman creates three isolated workspaces and sets everything up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;✓ Switchman ready — 3 agent workspaces created

  ✓ /Users/you/my-project-agent1
    branch: switchman/agent1

  ✓ /Users/you/my-project-agent2
    branch: switchman/agent2

  ✓ /Users/you/my-project-agent3
    branch: switchman/agent3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each workspace is on its own branch. Whatever one agent does stays completely separate until you decide to merge it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2 — Tell Claude Code about Switchman
&lt;/h2&gt;

&lt;p&gt;Open &lt;code&gt;~/.claude/claude_desktop_config.json&lt;/code&gt; and add this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"switchman"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"switchman-mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart Claude Code. Your agents can now use Switchman's coordination tools automatically — they don't need to be told how, that comes in the next step.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3 — Add CLAUDE.md to your repo root
&lt;/h2&gt;

&lt;p&gt;This is the file that tells your agents what to do. Without it, they won't know to coordinate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-O&lt;/span&gt; https://raw.githubusercontent.com/switchman-dev/switchman/main/CLAUDE.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It instructs each agent to check in with Switchman at the start of every session, claim files before editing them, and release everything when they're done. You write this once and never think about it again.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 — Add your tasks
&lt;/h2&gt;

&lt;p&gt;Think about what you want to get done and break it into separate chunks. The more independent each task is, the better parallel agents work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;switchman task add &lt;span class="s2"&gt;"Implement OAuth login flow"&lt;/span&gt; &lt;span class="nt"&gt;--priority&lt;/span&gt; 9
switchman task add &lt;span class="s2"&gt;"Add rate limiting to API routes"&lt;/span&gt; &lt;span class="nt"&gt;--priority&lt;/span&gt; 7
switchman task add &lt;span class="s2"&gt;"Write tests for auth middleware"&lt;/span&gt; &lt;span class="nt"&gt;--priority&lt;/span&gt; 6
switchman task add &lt;span class="s2"&gt;"Update API documentation"&lt;/span&gt; &lt;span class="nt"&gt;--priority&lt;/span&gt; 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Higher priority tasks get picked up first. Each agent gets one task at a time — when it finishes, it picks up the next one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5 — Open Claude Code in each workspace
&lt;/h2&gt;

&lt;p&gt;Open a separate Claude Code window in each of the three folders that &lt;code&gt;switchman setup&lt;/code&gt; created. Each agent will pick up a task, lock the files it needs, do the work, and release everything when it's done.&lt;/p&gt;

&lt;p&gt;You just watch it happen.&lt;/p&gt;

&lt;p&gt;Here's what it looks like when two agents try to grab the same file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Agent 1 locks auth.js
&lt;span class="go"&gt;✓ Claimed src/middleware/auth.js

&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Agent 2 tries to claim the same file
&lt;span class="go"&gt;⚠ Conflict — auth.js is locked by agent1

&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Agent 2 picks different files and carries on
&lt;span class="go"&gt;✓ Claimed src/middleware/validate.js
✓ Claimed src/routes/tasks.js
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agent 2 doesn't stop or ask you what to do. It just adapts and keeps going. Both agents make progress and nothing gets overwritten.&lt;/p&gt;




&lt;h2&gt;
  
  
  Checking in
&lt;/h2&gt;

&lt;p&gt;At any point you can see exactly what's happening:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;switchman status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tasks:
  Pending      2
  In Progress  3
  Done         1

Active Tasks:
  agent1 → "Implement OAuth login flow"
  agent2 → "Add rate limiting to API routes"
  agent3 → "Write tests for auth middleware"

Active File Claims:
  agent1: src/auth/login.js, src/auth/token.js
  agent2: src/middleware/rate-limit.js, src/server.js
  agent3: tests/auth.test.js, tests/middleware.test.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three agents, all working, no overlap anywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before you merge
&lt;/h2&gt;

&lt;p&gt;When everything's done, run this before merging any branches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;switchman scan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It checks for any file overlaps or branch conflicts and tells you exactly what to fix before you touch anything. Much better than finding out at merge time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Does it actually work?
&lt;/h2&gt;

&lt;p&gt;The first time I ran three agents through a real feature with Switchman, I genuinely just went and made a coffee. Came back twenty minutes later, all three were done, no conflicts, nothing to untangle. That hadn't happened before.&lt;/p&gt;

&lt;p&gt;It won't solve everything. If your tasks aren't well scoped, agents will still get stuck. And if you're merging a lot of branches, you'll still need to think about that. But the silent overwrite problem — the one that cost me two hours that afternoon — that's gone.&lt;/p&gt;




&lt;p&gt;Switchman is free and open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; &lt;code&gt;npm install -g switchman-dev&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; github.com/switchman-dev/switchman&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Site:&lt;/strong&gt; switchman.dev&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
