<?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: Ellery Familia</title>
    <description>The latest articles on DEV Community by Ellery Familia (@elleryfamilia).</description>
    <link>https://dev.to/elleryfamilia</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%2F375868%2Fb635352f-52ea-416c-8ae2-5e87e5d4354d.jpeg</url>
      <title>DEV Community: Ellery Familia</title>
      <link>https://dev.to/elleryfamilia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elleryfamilia"/>
    <language>en</language>
    <item>
      <title>mix2: Two Coding Agents, One Answer</title>
      <dc:creator>Ellery Familia</dc:creator>
      <pubDate>Wed, 26 Aug 2026 19:12:21 +0000</pubDate>
      <link>https://dev.to/elleryfamilia/one-model-agreeing-with-itself-is-not-a-review-31i8</link>
      <guid>https://dev.to/elleryfamilia/one-model-agreeing-with-itself-is-not-a-review-31i8</guid>
      <description>&lt;p&gt;I've gotten into the habit of asking two coding agents the same question.&lt;/p&gt;

&lt;p&gt;Not because burning twice the tokens makes an answer twice as good. Because Claude and Codex will often look at the same codebase, understand the same constraints, and come back with meaningfully different opinions.&lt;/p&gt;

&lt;p&gt;That's useful.&lt;/p&gt;

&lt;p&gt;What's less useful is having two terminals open, copying context back and forth, asking one what it thinks about the other's answer, and then acting as the human merge conflict resolver.&lt;/p&gt;

&lt;p&gt;So I built mix2.&lt;/p&gt;

&lt;p&gt;Two coding agents. Independent takes. One answer.&lt;/p&gt;

&lt;p&gt;Before mix2, I'd do this manually — ask Claude Code to run &lt;code&gt;codex exec&lt;/code&gt;, or have Codex shell out to &lt;code&gt;claude -p&lt;/code&gt;, and then bring the second opinion back into the conversation. It works. It's just clunky, and it's easy to accidentally anchor the second agent with the first one's framing.&lt;/p&gt;

&lt;p&gt;mix2 still uses those CLI calls underneath. It just puts a structured collaboration protocol around them: independent briefs, scoped consultations, depth budgets, reconciliation, and a disagreement ledger.&lt;/p&gt;

&lt;p&gt;mix2 is a terminal app that turns two coding agents into one small engineering team. You ask one question; both investigate in parallel, independently; they compare notes, argue when they should, and hand you a single answer — signed by the team, not by either of them.&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/elleryfamilia/mix2/main/install.sh | sh
&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;mix2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The team is a pair — you pick the two agents at startup. &lt;code&gt;/team&lt;/code&gt; changes the team. &lt;code&gt;/model&lt;/code&gt; changes the models. You can pin both in config if you want. I usually run Claude Code + Codex, but the lineup is up to you.&lt;/p&gt;

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

&lt;p&gt;mix2 isn't really about getting two agents to type code twice as fast.&lt;/p&gt;

&lt;p&gt;I don't use it for code reviews. I use it for questions — the kind where you want a second opinion from someone who thinks differently than you do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture and design&lt;/li&gt;
&lt;li&gt;tradeoffs&lt;/li&gt;
&lt;li&gt;brainstorming&lt;/li&gt;
&lt;li&gt;debugging discussions&lt;/li&gt;
&lt;li&gt;"is this idea actually any good?"&lt;/li&gt;
&lt;li&gt;"what am I missing?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's where having two independent opinions gets interesting.&lt;/p&gt;

&lt;p&gt;Run it outside a code project and the team notices, drops the code lens, and brainstorms whatever you bring — a product idea, business viability, strategy, a document.&lt;/p&gt;

&lt;p&gt;If you ask mix2 to implement something, it deliberately doesn't modify your code. The consulted agent is read-only — it's there to investigate and argue, not start "helpfully" changing the repo.&lt;/p&gt;

&lt;p&gt;Instead, both agents investigate, work through the approach, and produce a complete implementation plan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.mix2/&amp;lt;topic&amp;gt;-plan.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then mix2 gives you the exact &lt;code&gt;claude&lt;/code&gt; or &lt;code&gt;codex&lt;/code&gt; command to execute that plan interactively.&lt;/p&gt;

&lt;p&gt;So the workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;two agents investigate
        ↓
they reconcile the approach
        ↓
you execute the plan interactively
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You leave with a plan two independent agents signed off on, which is more than most human meetings produce.&lt;/p&gt;

&lt;h2&gt;
  
  
  The important part is independence
&lt;/h2&gt;

&lt;p&gt;There are already plenty of ways to spawn multiple agents.&lt;/p&gt;

&lt;p&gt;That wasn't really the problem I wanted to solve.&lt;/p&gt;

&lt;p&gt;The thing I care about is getting a genuinely independent second opinion.&lt;/p&gt;

&lt;p&gt;If one agent investigates something, forms a conclusion, and then asks a second agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Here's what I think. Can you take a look?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...that's not independent anymore.&lt;/p&gt;

&lt;p&gt;The second agent has already been anchored.&lt;/p&gt;

&lt;p&gt;mix2 instead gives the consulted agent a clean, unanchored brief. It investigates the problem and forms its own view before the two answers are reconciled.&lt;/p&gt;

&lt;p&gt;Consultations are stateless between turns too — the second agent isn't quietly accumulating the coordinator's framing over time.&lt;/p&gt;

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

&lt;p&gt;When both agents independently land on the same conclusion, I have more confidence in it.&lt;/p&gt;

&lt;p&gt;When they don't, that's often even more useful.&lt;/p&gt;

&lt;p&gt;And mix2 doesn't turn:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Claude thinks A. Codex thinks B.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We recommend A.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;just because a tidy answer looks nicer.&lt;/p&gt;

&lt;p&gt;The disagreement stays in the answer.&lt;/p&gt;

&lt;p&gt;One harness agreeing with itself isn't a second opinion.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's one conversation, not two chat windows
&lt;/h2&gt;

&lt;p&gt;I also didn't want this to feel like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌ Claude ────────┐  ┌ Codex ─────────┐
│ blah blah blah │  │ blah blah blah │
└────────────────┘  └────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with me sitting in the middle figuring out what to believe.&lt;/p&gt;

&lt;p&gt;There's one conversation. One team. One answer.&lt;/p&gt;

&lt;p&gt;While they're working, mix2 narrates what's happening:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Codex is reading the implementation.
Claude is checking how the session lifecycle works.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those messages come from the harness, not from one model pretending it knows what the other model is doing.&lt;/p&gt;

&lt;p&gt;You can hit &lt;code&gt;Ctrl+T&lt;/code&gt; if you want to inspect the actual activity and consultation.&lt;/p&gt;

&lt;p&gt;Otherwise you can mostly ignore it.&lt;/p&gt;

&lt;h2&gt;
  
  
  I had to put some actual rules around the collaboration
&lt;/h2&gt;

&lt;p&gt;Telling an agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please don't consult your teammate more than twice.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is not a control mechanism.&lt;/p&gt;

&lt;p&gt;So the collaboration rules live in the runtime.&lt;/p&gt;

&lt;p&gt;By default, there's a maximum of two consultations per turn, enforced atomically by the Rust core. Recursive consultation is rejected in code.&lt;/p&gt;

&lt;p&gt;Consultations also get an explicit depth budget. The default is basically:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Quick take — 2 minutes, a handful of file reads.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That made a surprisingly large difference. On the same test question, consultation time dropped from 349 seconds to 101 seconds.&lt;/p&gt;

&lt;p&gt;Every extra agent is your money.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude + Codex is just what I run
&lt;/h2&gt;

&lt;p&gt;Two agents is the team — that's the limit, not a default you can expand.&lt;/p&gt;

&lt;p&gt;mix2 currently supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;OpenCode&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So you can run Claude + Codex, Claude + Cursor, Codex + Copilot, or even Claude + Claude / Codex + Codex if what you want is two independent sessions of the same harness. Different labs are the interesting default, not a hard requirement.&lt;/p&gt;

&lt;p&gt;The collaboration protocol stays the same. So does the disagreement ledger.&lt;/p&gt;

&lt;p&gt;And there is deliberately no solo mode. If you want one agent, run its CLI. That's already a solved problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ink UI (TypeScript + React)
          ↕ JSONL
        Rust core
          ↓
      agent CLIs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ink renders the UI. Rust owns process management, sessions, consultation limits, cancellation, and provider adapters — the things I didn't want enforced by prompt instructions.&lt;/p&gt;

&lt;p&gt;The result is that Claude Code, Codex, Cursor, OpenCode, and Copilot can all sit behind the same collaboration model without the UI needing to care much about what weird thing each CLI does internally.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's basically mix2
&lt;/h2&gt;

&lt;p&gt;I wanted the convenience of asking one coding agent a question, while having another capable agent independently try to prove it wrong.&lt;/p&gt;

&lt;p&gt;Without running two conversations myself.&lt;/p&gt;

&lt;p&gt;Without a fake "AI swarm."&lt;/p&gt;

&lt;p&gt;Without hiding disagreements because consensus looks better in a demo.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;p&gt;two coding agents, independent takes, one answer.&lt;/p&gt;

&lt;p&gt;If that sounds useful, try it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/elleryfamilia/mix2" rel="noopener noreferrer"&gt;github.com/elleryfamilia/mix2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If it earns a place in your terminal, star it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>opensource</category>
      <category>cli</category>
    </item>
    <item>
      <title>Stop Copying Your CLAUDE.md Between Projects</title>
      <dc:creator>Ellery Familia</dc:creator>
      <pubDate>Wed, 26 Aug 2026 14:35:41 +0000</pubDate>
      <link>https://dev.to/elleryfamilia/stop-copying-your-claudemd-between-projects-4ji7</link>
      <guid>https://dev.to/elleryfamilia/stop-copying-your-claudemd-between-projects-4ji7</guid>
      <description>&lt;p&gt;I kept running into the same dumb problem with AI coding agents.&lt;/p&gt;

&lt;p&gt;Every project needs context. How I like code structured. Which tools I prefer. How I want the agent to communicate. What commands it should run. How I want it to plan before touching anything.&lt;/p&gt;

&lt;p&gt;So you put that stuff in CLAUDE.md. Or AGENTS.md. Or Cursor rules. Or Copilot instructions.&lt;/p&gt;

&lt;p&gt;Then you open another repo and do it again.&lt;/p&gt;

&lt;p&gt;Then you SSH into a server and none of it is there.&lt;/p&gt;

&lt;p&gt;Then you switch from Claude to Codex and apparently you have a second configuration system to maintain now.&lt;/p&gt;

&lt;p&gt;I didn't want a better CLAUDE.md.&lt;/p&gt;

&lt;p&gt;I wanted the context to follow me.&lt;/p&gt;

&lt;p&gt;So I built Loadout.&lt;/p&gt;

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

&lt;p&gt;Loadout is an adaptive context engine for AI coding agents.&lt;/p&gt;

&lt;p&gt;You create reusable loadouts for the situations you work in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rust&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Go&lt;/li&gt;
&lt;li&gt;Node&lt;/li&gt;
&lt;li&gt;machine/server work&lt;/li&gt;
&lt;li&gt;whatever else you want&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then instead of launching:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;you launch:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Loadout detects what you're working on, picks the right loadout, renders the context, wires it into the agent, and gets out of the way.&lt;/p&gt;

&lt;p&gt;So in a Rust repo, maybe the agent gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use cargo for builds and tests.&lt;/li&gt;
&lt;li&gt;Run clippy before considering work complete.&lt;/li&gt;
&lt;li&gt;Prefer &lt;code&gt;Result&lt;/code&gt;/&lt;code&gt;?&lt;/code&gt; over &lt;code&gt;unwrap()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Keep responses terse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a Next.js repo, it gets something completely different.&lt;/p&gt;

&lt;p&gt;On a bare Linux server, it can get your sysadmin conventions instead.&lt;/p&gt;

&lt;p&gt;The selection is deterministic and inspectable. There's no LLM sitting in the middle deciding which prompt you probably meant.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;might give you something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Detected targets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;rust&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="s"&gt;Loadout selection → rust&lt;/span&gt;

&lt;span class="s"&gt;Active fragments&lt;/span&gt;
  &lt;span class="s"&gt;• rust-conventions&lt;/span&gt;
  &lt;span class="s"&gt;• terse-comms&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's basically the whole premise:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;different work needs different context. Stop handing your agent the same one every time.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Project context and your context aren't the same thing
&lt;/h2&gt;

&lt;p&gt;This distinction ended up being pretty important.&lt;/p&gt;

&lt;p&gt;Your project's &lt;code&gt;AGENTS.md&lt;/code&gt; should describe the project.&lt;/p&gt;

&lt;p&gt;Architecture. Build commands. Weird repository conventions. Things everyone working on that codebase needs to know.&lt;/p&gt;

&lt;p&gt;Loadout is for what &lt;em&gt;you&lt;/em&gt; bring to the project.&lt;/p&gt;

&lt;p&gt;Your preferred workflow. Your coding conventions. Your tooling. How you want an agent to communicate. Things you've learned after using coding agents for six months and don't want to explain for the 400th time.&lt;/p&gt;

&lt;p&gt;And Loadout deliberately doesn't rewrite the project's shared files.&lt;/p&gt;

&lt;p&gt;It writes local, gitignored overlays using whatever mechanism each agent supports.&lt;/p&gt;

&lt;p&gt;Your team's &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, or Copilot instructions stay alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fragments are the reusable part
&lt;/h2&gt;

&lt;p&gt;I didn't want loadouts to turn into giant prompt blobs either.&lt;/p&gt;

&lt;p&gt;So they're composed from fragments.&lt;/p&gt;

&lt;p&gt;A fragment is just a reusable unit of context:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[[fragments]]&lt;/span&gt;
&lt;span class="py"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"rust-conventions"&lt;/span&gt;
&lt;span class="py"&gt;guidance&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Build with cargo, lint with clippy; prefer ?/Result over unwrap()."&lt;/span&gt;

&lt;span class="nn"&gt;[[fragments]]&lt;/span&gt;
&lt;span class="py"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"terse-comms"&lt;/span&gt;
&lt;span class="py"&gt;guidance&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Be terse. Lead with the result. Skip the preamble."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then a loadout combines them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[[loadouts]]&lt;/span&gt;
&lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"rust"&lt;/span&gt;
&lt;span class="py"&gt;targets&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"rust"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="py"&gt;fragments&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"rust-conventions"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"terse-comms"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fragments can also be dynamic and pull context from shell commands, so not everything has to be static text.&lt;/p&gt;

&lt;p&gt;The nice part is that &lt;code&gt;terse-comms&lt;/code&gt; isn't a Rust thing.&lt;/p&gt;

&lt;p&gt;I can use the same fragment in my Rust, Next.js, Python, and server loadouts without copying it four times.&lt;/p&gt;

&lt;h2&gt;
  
  
  I also wanted my workflow to follow me
&lt;/h2&gt;

&lt;p&gt;Context was only half the problem.&lt;/p&gt;

&lt;p&gt;I switch between coding agents, but I don't necessarily want to switch engineering processes every time I do.&lt;/p&gt;

&lt;p&gt;So Loadout has six common workflow stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/loadout:explore&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/loadout:brainstorm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/loadout:plan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/loadout:implement&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/loadout:verify&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/loadout:ship&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A workflow defines what those stages actually mean.&lt;/p&gt;

&lt;p&gt;Loadout ships with workflows based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Superpowers&lt;/li&gt;
&lt;li&gt;spec-driven development&lt;/li&gt;
&lt;li&gt;Every's compound engineering&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or you can build your own.&lt;/p&gt;

&lt;p&gt;That means I can use Claude today and Codex tomorrow without teaching both of them my preferred explore → plan → implement → verify loop separately.&lt;/p&gt;

&lt;p&gt;The agent changes.&lt;/p&gt;

&lt;p&gt;The process doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plans shouldn't disappear into chat
&lt;/h2&gt;

&lt;p&gt;This one grew out of another annoyance.&lt;/p&gt;

&lt;p&gt;Agents are getting pretty good at writing implementation plans.&lt;/p&gt;

&lt;p&gt;But reviewing a 100-line plan inside a terminal transcript sucks.&lt;/p&gt;

&lt;p&gt;So Loadout can turn an agent-written plan into a self-contained HTML page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;load plan render
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get the plan broken into phases, tasks, risks, and open questions.&lt;/p&gt;

&lt;p&gt;More importantly, you can comment directly on individual elements.&lt;/p&gt;

&lt;p&gt;So instead of telling an agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The third thing you mentioned under the authentication section — not the first bullet, the other one — change that..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you leave the comment on the actual task.&lt;/p&gt;

&lt;p&gt;Loadout then assembles the feedback so you can hand it back to the agent.&lt;/p&gt;

&lt;p&gt;It's still the agent doing the planning. Loadout just gives you a better review surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  It isn't tied to Claude
&lt;/h2&gt;

&lt;p&gt;This was another requirement from the beginning.&lt;/p&gt;

&lt;p&gt;Right now Loadout works with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;opencode&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both CLI agents and VS Code-based workflows are supported.&lt;/p&gt;

&lt;p&gt;Each agent expects context in a different place, so Loadout handles the ugly part of delivering the same generated overlay the way that particular agent expects it.&lt;/p&gt;

&lt;p&gt;I don't want my personal AI workflow coupled to whichever coding agent happens to be best this month.&lt;/p&gt;

&lt;h2&gt;
  
  
  There's a UI if you don't want to live in TOML
&lt;/h2&gt;

&lt;p&gt;I like config files.&lt;/p&gt;

&lt;p&gt;I also don't particularly want to manually edit them every time I remember some tiny preference.&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;and Loadout opens a localhost web UI where you can create fragments, compose loadouts, assign targets, choose workflows, preview the generated context, and review the diff before writing anything.&lt;/p&gt;

&lt;p&gt;There are starter packs too, so you don't have to build everything from an empty config on day one.&lt;/p&gt;

&lt;p&gt;If you already have a giant &lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;AGENTS.md&lt;/code&gt;, there's a migration skill for that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;load skill install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then tell your agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Import my CLAUDE.md into Loadout."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It turns the existing instructions into reusable fragments instead of making you manually pull the thing apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  And it syncs
&lt;/h2&gt;

&lt;p&gt;Your loadouts are global rather than living inside individual projects, so Loadout can sync the configuration through git:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;load &lt;span class="nb"&gt;sync &lt;/span&gt;init git@github.com:you/loadout-config.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then on another machine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;load &lt;span class="nb"&gt;sync &lt;/span&gt;clone https://github.com/you/loadout-config.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the same context can follow you from your laptop to another workstation or server.&lt;/p&gt;

&lt;p&gt;Machine-specific/private values stay local.&lt;/p&gt;

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

&lt;p&gt;Install the binary directly — no Rust toolchain, no Node required:&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;-LsSf&lt;/span&gt; https://github.com/elleryfamilia/loadout/releases/latest/download/loadout-installer.sh | sh
&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;load studio
load claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Loadout is open source and MIT licensed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/elleryfamilia/loadout" rel="noopener noreferrer"&gt;github.com/elleryfamilia/loadout&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're currently maintaining some combination of CLAUDE.md, AGENTS.md, Cursor rules, random prompt snippets, and things you keep telling agents to "remember from now on," this is pretty much the problem I built it to solve.&lt;/p&gt;

&lt;p&gt;Give it a try. And if it earns a permanent spot in front of your coding agent, give the repo a star.&lt;/p&gt;

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