<?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/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Maxxwell by Rindler</title>
  <link>https://maxxwell.dev/blog/</link>
  <atom:link href="https://maxxwell.dev/feed.xml" rel="self" type="application/rss+xml"/>
  <description>Notes on running fleets of coding agents, from the team building Maxxwell.</description>
  <language>en</language>
  <item>
    <title>How to tell which coding agent is stuck</title>
    <link>https://maxxwell.dev/blog/detecting-stuck-coding-agents</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/detecting-stuck-coding-agents</guid>
    <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Past two or three coding agents, you stop being limited by model quality and start being limited by your own attention. You have more terminals than you can.</description>
    <content:encoded><![CDATA[<p>Past two or three coding agents, you stop being limited by model quality and start being limited by your own attention. You have more terminals than you can read, and the real problem is: which agent is stuck, which is waiting on you, and which is quietly building the wrong thing?</p>
<p>This piece sits alongside the broader pillar &quot;AI coding agent orchestration: the complete guide for multi-agent development&quot; and focuses on one narrow slice: stall detection and supervision.</p>
<h2>The three ways a coding agent gets stuck</h2>
<p>Most stalls fall into a few repeatable patterns:</p>
<ul><li><strong>Edit loops</strong>: same file, same section, multiple near-identical edits.</li><li><strong>Tool loops</strong>: repeating the same grep, test command, or failed API call.</li><li><strong>Idle gaps</strong>: no tool activity, no new output, but the session is still &quot;open&quot;.</li></ul>
<p>Heartbeat, a small watchdog plugin for CLI agents, already uses these signals: it looks for repeated edits, repeated failing commands, and idle gaps. That's a good mental model: when you watch multi-agent systems, behavior beats semantics.</p>
<p>If you're trying to tell &quot;which agent is stuck?&quot;, you're really asking:</p>
<ul><li>Is it still running the plan-edit-run-observe loop OpenAI describes for long-horizon Codex?</li><li>Has it plateaued on the same tool call or file for too long?</li><li>Is it blocked on something outside its control, auth, permissions, or a question for you?</li></ul>
<h2>Fixed one-shot prompting: simple, fast, brittle</h2>
<p>Static prompting, a single big instruction, maybe with a checklist, still has a place. GitHub and McKinsey both report big gains (up to 35-45% faster code-gen; 20-30% faster refactors) when the task is well-bounded.</p>
<p>Static prompting works best when:</p>
<ul><li>The task has <strong>clear scope</strong>: &quot;refactor this module&quot;, &quot;write tests for these functions&quot;.</li><li>The route is <strong>short</strong>: dozens of minutes, not hours or days.</li><li>The failure surface is <strong>small</strong>: one repo, one service, one set of files.</li></ul>
<p>Examples where one-shot is fine:</p>
<ul><li>Generate a new feature flag implementation inside a known codebase.</li><li>Write integration tests for a single API endpoint.</li><li>Convert a small component from React class to functional with hooks.</li></ul>
<p>In these cases, &quot;stuck&quot; is usually obvious:</p>
<ul><li>The model returns an error, or you see the same exception three times.</li><li>Tool output is clearly failing (tests red) and the agent stops.</li><li>The completion ends; you run the code and see it's wrong.</li></ul>
<p>You don't need orchestration here; you just need to read the output and rerun.</p>
<p>Static prompting breaks down when:</p>
<ul><li>You want the agent to <strong>keep going</strong> across context windows.</li><li>You're coordinating <strong>several agents</strong> exploring different paths.</li><li>The task is <strong>path-dependent</strong>, as Anthropic calls out in their multi-agent research.</li></ul>
<p>That's when you need something more like &quot;dynamic goal-driven loops&quot;.</p>
<h2>Dynamic goal-driven loops: add supervision, not magic</h2>
<p>Dynamic orchestration is about <strong>keeping the loop healthy</strong>:</p>
<ol><li>Plan.</li><li>Edit.</li><li>Run tools (tests, commands, web requests).</li><li>Observe.</li><li>Repair.</li><li>Update status.</li></ol>
<p>OpenAI's long-run Codex experiment ran this loop for about 25 hours, 13M tokens and ~30k LOC. Anthropic's C compiler work did something similar at larger scale: 16 agents, ~2,000 Claude Code sessions, ~$20,000 in API cost, ~100k lines of C able to compile Linux 6.9.</p>
<p>You don't need that scale to hit the same problems. You see smaller versions any time you have:</p>
<ul><li>Multiple repos.</li><li>Multiple services.</li><li>More than one agent thread in flight.</li></ul>
<p>The key shift is:</p>
<ul><li>You're not judging a single answer.</li><li>You're judging <strong>ongoing behavior</strong>.</li></ul>
<p>Signals that matter in dynamic loops:</p>
<ul><li><strong>Fresh tool activity</strong>: new commands, new files, new tests.</li><li><strong>Progress against a goal</strong>: checklist items, updated TODOs, summarized changes.</li><li><strong>Explicit state</strong>: working, idle, waiting on you, blocked.</li></ul>
<p>When those disappear, the agent is effectively stuck, even if it's still emitting tokens.</p>
<h2>What an agent health dashboard needs to show</h2>
<p>Once you have more than one agent at a time, a health dashboard stops being nice-to-have and starts being infrastructure. OpenAI, Anthropic, GitHub and newer desktop tools all converge on the same product pattern: command centers, worktrees, approvals, and explicit state.</p>
<p>At minimum, you want per-session:</p>
<ul><li><strong>Activity state</strong>: working, idle, done.</li><li><strong>Block state</strong>: needs sign-in, permission denied, tool failure.</li><li><strong>Human state</strong>: waiting on you (question asked, approval needed).</li><li><strong>Stall hints</strong>: repeated edit loops, repeated failing commands, long idle gaps.</li></ul>
<p>CommandSlate, Herd, and similar desktop tools surface subsets of this. GitHub's agentic workflows push it into YAML: triggers, permissions, safe outputs, firewalled containers, read-only tokens. OpenAI's sandbox docs call out run state and audit logs explicitly.</p>
<p>Maxxwell takes the same idea and applies it specifically to coding agents you already use. It puts every session in one window and marks them as:</p>
<ul><li>working</li><li>idle</li><li>waiting on you</li><li>not started</li><li>needs sign-in</li><li>blocked</li><li>done</li><li>dead</li><li>not heard from</li></ul>
<p>...with a &quot;possibly stalled&quot; overlay when context pressure and activity patterns suggest trouble.</p>
<p>The opinionated part: when Maxxwell cannot confirm a state, it says <strong>&quot;not heard from&quot;</strong> instead of guessing &quot;working&quot;. A dashboard that is confidently wrong is worse than one that admits a gap.</p>
<h2>DIY monitoring vs purpose-built orchestration tools</h2>
<p>If you're reading this, there is a good chance you already have a tmux layout and some shell glue. It's worth being explicit about the comparison, because DIY is often the default.</p>
<p>Typical DIY stack:</p>
<ul><li>tmux panes per agent session.</li><li>A few shell aliases for starting and stopping agents.</li><li>Maybe a script that tails logs and looks for &quot;ERROR&quot; or repeated commands.</li></ul>
<p>What DIY gives you:</p>
<ul><li>Zero new dependencies.</li><li>Full transparency.</li><li>No UI abstraction between you and your terminals.</li></ul>
<p>What you still lack:</p>
<ul><li><strong>Unified state</strong>: you know a pane is active, but not whether it's stuck.</li><li><strong>Cross-session visibility</strong>: you track mental state across 8+ terminals.</li><li><strong>Role separation</strong>: no clear &quot;orchestrator&quot; vs &quot;worker&quot; agents.</li></ul>
<p>Tools in the orchestration space:</p>
<ul><li><strong>OpenAI Codex app / sandbox</strong>: multi-threaded runs, tracing, recovery, audit logs; designed for long-horizon, server-side agents.</li><li><strong>GitHub agentic workflows</strong>: YAML-driven agents in containers, with explicit triggers and guardrails; stronger on CI/CD and GitHub-native workflows.</li><li><strong>Desktop managers</strong> like CommandSlate, Herd: focus on per-session states and quick control, with varying degrees of visibility.</li><li><strong>Maxxwell by Rindler</strong>: an agent that manages your other coding agents, with live context pressure, stall hints, and a human-first control surface.</li></ul>
<p>For pure server-side automation, GitHub and OpenAI's frameworks are strong. For local development where your agents already live in Cursor, Claude, Codex, or your own CLI harnesses, the desktop style (including Maxxwell) fits better.</p>
<h2>How Maxxwell approaches stuck detection and orchestration</h2>
<p>Maxxwell is not another copilot. It is an <strong>agent-of-agents</strong> that manages Claude, Codex, Cursor-agent and whatever you already run, without wrapping or replacing them.</p>
<p>Mechanically:</p>
<ul><li>Each worker is a <strong>real terminal session</strong> hosting your existing tool.</li><li>You can <strong>attach</strong> to any worker at any moment and take over mid-sentence.</li><li>Sessions <strong>outlive the app</strong>: quitting detaches, it never kills.</li></ul>
<p>On top of that you get:</p>
<ul><li>A <strong>single window</strong> showing every session with a readable state.</li><li>A live <strong>context-pressure readout</strong> with tiered warnings and a one-click compact you trigger.</li><li>A <strong>possibly stalled</strong> overlay when activity and context suggest trouble.</li><li>An <strong>orchestrator seat</strong> that is itself a real briefed agent session.</li></ul>
<p>You talk to the orchestrator instead of twelve terminals. It in turn talks to your workers, then reports:</p>
<ul><li>What landed.</li><li>What it decided for you.</li><li>What is waiting on your call.</li></ul>
<p>One deliberate property: Maxxwell's fleet controls <strong>draft rather than act</strong>. Any control that would change the fleet writes a fully formed, unsent sentence into the composer and stops. You are always the one who presses enter.</p>
<p>That matters for stall handling:</p>
<ul><li>The tool can say &quot;lane 3 is possibly stalled, recommend: re-aim to write tests only&quot;.</li><li>It writes that recommendation as a message to the orchestrator or worker.</li><li>You decide whether to send it.</li></ul>
<p>You keep control, but you don't have to manually watch every log.</p>
<h2>When dynamic orchestration actually helps</h2>
<p>Dynamic orchestration adds overhead. You want it only when the coordination cost is already visible.</p>
<p>Based on Anthropic's and OpenAI's long-run experiments, plus mainstream adoption data (Stack Overflow reports 51% of pros using AI tools daily, with sentiment cooling as complexity rises), orchestration pays for itself when:</p>
<ul><li><strong>Multiple agents</strong> run at once and you are the bottleneck.</li><li>Tasks have <strong>long time horizons</strong> - hours rather than minutes.</li><li>Work is <strong>path-dependent</strong> and cannot be hardcoded up front.</li></ul>
<p>Concrete cases:</p>
<ul><li>A migration touching several services where each agent owns a slice.</li><li>A research-style task with sub-agents exploring APIs, reading docs, and drafting code.</li><li>A refactor spanning many modules, where one agent builds scaffolding and others fill it in.</li></ul>
<p>In these situations, static prompting still generates code fast. But without orchestration you:</p>
<ul><li>Lose track of which sessions are blocked on you.</li><li>Fail to notice one agent happily building the wrong thing.</li><li>Duplicate work because two agents silently tackle the same subtask.</li></ul>
<p>Dynamic loops, plus a dashboard, solve the visibility problem. Tools like Maxxwell solve the &quot;human bottleneck&quot; problem by putting the review seat in one place.</p>
<h2>Where static approaches remain the right choice</h2>
<p>You don't need orchestration for:</p>
<ul><li>One-off tasks on a single repo.</li><li>Short-lived sessions where you're actively watching the window.</li><li>Work with low blast radius if it goes wrong.</li></ul>
<p>If you rarely have more than one agent alive at a time, adding a command center will just be another app. Spending an extra 30 seconds reading the output is cheaper than wiring up dashboards and orchestrators.</p>
<p>As METR's time-horizon report shows, the duration of tasks frontier agents can complete with a given success rate is doubling roughly every seven months. You will feel the need for orchestration the moment your tasks cross that line from &quot;finish in one sitting&quot; to &quot;spans several days and windows&quot;.</p>
<h2>Quick comparison: tools for telling which agent is stuck</h2>
<p>Here's a simple summary based on typical use:</p>
<ul><li><strong>DIY tmux + scripts</strong><ul><li>Best for: single-developer, low-agent counts, high comfort in terminal.</li><li>Strengths: full control, no abstraction, easy to customize.</li><li>Weaknesses: no unified state, stall detection is manual.</li></ul></li></ul>
<ul><li><strong>Heartbeat-style plugins</strong><ul><li>Best for: CLI agents where you want automated stall signals.</li><li>Strengths: detects edit loops, failing commands, idle gaps with zero config.</li><li>Weaknesses: per-agent only, no high-level orchestration.</li></ul></li></ul>
<ul><li><strong>GitHub Agentic Workflows</strong><ul><li>Best for: GitHub-native CI/CD, back-office automation.</li><li>Strengths: YAML guardrails, sandboxed containers, explicit triggers.</li><li>Weaknesses: less suited to everyday local dev; more infra work.</li></ul></li></ul>
<ul><li><strong>OpenAI Codex / Agents sandbox</strong><ul><li>Best for: backend systems where runs need tracing and recovery.</li><li>Strengths: rich observability, audit logs, recovery hooks.</li><li>Weaknesses: cloud-centric, you're building the harness yourself.</li></ul></li></ul>
<ul><li><strong>Desktop orchestrators (CommandSlate, Herd)</strong><ul><li>Best for: developers wanting a local command center for agents.</li><li>Strengths: simple session states, quick visibility.</li><li>Weaknesses: varies, but commonly wraps agents rather than running them as raw terminals.</li></ul></li></ul>
<ul><li><strong>Maxxwell</strong><ul><li>Best for: devs already running multiple coding agents locally who want coordination without losing control.</li><li>Strengths: one window with readable per-session state, orchestrator seat, context pressure readout, drafts-rather-than-acts, runs locally and uses your existing tools.</li><li>Weaknesses: if you only run a single agent at a time, it's overhead you don't need.</li></ul></li></ul>
<p>For the most common case this article is about, a developer with 4-12 coding agents alive across a day, already using Claude Code, Codex, Cursor or similar, a <strong>local orchestrator</strong> like Maxxwell is the practical recommendation. You keep your agent stack, gain a supervisor, and stop being the single thread trying to remember which pane is stuck.</p>
<h2>FAQ: detecting stuck agents in multi-agent systems</h2>
<h3>How do I tell if an AI coding agent is stuck?</h3>
<p>Look for behavior, not just text. Signals include repeated edits to the same file section, repeated failing tool commands (tests, builds, API calls), and long idle gaps with no new tool activity. A healthy agent should be cycling through plan, edit, run, observe; if that loop stops, the agent is stuck.</p>
<h3>What's the difference between fixed one-shot prompts and dynamic goal-driven loops?</h3>
<p>Fixed prompts define the whole task up front and expect a single completion. Dynamic goal-driven loops keep a running goal, adjust plans as work lands, and focus on maintaining a healthy plan-edit-run-observe cycle over time. One-shot is simpler and works well for bounded tasks; dynamic loops matter when tasks are open-ended or long-running.</p>
<h3>When should I adopt orchestration instead of just better prompts?</h3>
<p>Once you're running more than a couple of agents in parallel and tasks span hours or days, orchestration beats prompt tuning. You need visibility into which sessions are working, blocked, or waiting on you, and you need someone, or something, to maintain the global view and route work.</p>
<h3>Do I need auto-recovery or can I just supervise manually?</h3>
<p>Auto-recovery is useful for pure backend agents, but for coding agents touching real repos, human-in-the-loop supervision is safer. Tools like Maxxwell focus on visibility and drafting controls, leaving the actual &quot;press enter&quot; decision to you. That avoids silent build-breaking automation while still cutting the cost of supervision.</p>
<h3>How does Maxxwell help me see which session needs my attention?</h3>
<p>Maxxwell maintains a live status window for every agent session: working, idle, waiting on you, not started, needs sign-in, blocked, done, dead or not heard from, plus stall hints. An orchestrator agent sits on top, reports what landed vs what needs your call, and drafts fleet changes as unsent messages so you stay the one in control.</p>]]></content:encoded>
  </item>
  <item>
    <title>Orchestrating agents: greenfield vs legacy</title>
    <link>https://maxxwell.dev/blog/agent-orchestration-legacy-migration</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/agent-orchestration-legacy-migration</guid>
    <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Most teams now have more AI output than attention. The real problem is how to run and coordinate multiple AI coding agents without breaking prod or wasting.</description>
    <content:encoded><![CDATA[<p>Most teams now have more AI output than attention. The real problem is how to run and coordinate multiple AI coding agents without breaking prod or wasting days on the wrong work.</p>
<p>This piece is an <strong>AI coding agents orchestration platform developers comparison</strong> for one specific decision: how you orchestrate agents for <strong>greenfield builds</strong> versus <strong>legacy migrations</strong>. It complements the harness-level patterns in <a href="https://maxxwell.rindler.io/blog/ai-coding-agent-orchestration-complete-guide" rel="nofollow noopener" target="_blank">AI coding agent orchestration: the complete guide for multi-agent development</a>, and focuses on risk management, discovery, and refactoring coordination.</p>
<h2>Why greenfield vs legacy orchestration diverge</h2>
<p>For brand-new systems, the constraint is throughput. For legacy codebases, the constraint is risk.</p>
<p>Industry data matches what you've probably felt:</p>
<ul><li>OpenAI's harness engineering case study describes an internal product built with <strong>0 lines of manually written code</strong>, <strong>~1,500 PRs</strong>, <strong>~1M LOC</strong>, and <strong>3 engineers</strong> over about five months, mostly agents from an empty repo (<a href="https://openai.com/index/harness-engineering/" rel="nofollow noopener" target="_blank">OpenAI, 2025</a>).</li><li>In contrast, the U.S. GAO reports that federal agencies still spend ~<strong>80%</strong> of IT funding on operations and maintenance, and by early 2025 had finished only <strong>3 of 10</strong> critical legacy modernizations started in 2019 (<a href="https://files.gao.gov/assets/gao-25-107795.pdf" rel="nofollow noopener" target="_blank">GAO-25-107795</a>).</li></ul>
<p>Greenfield flows can tolerate missteps. Legacy systems are anchor points with hidden business rules; orchestration has to be about <strong>containment</strong> and <strong>auditability</strong>, not just speed.</p>
<h2>Orchestration for greenfield builds: multi-agent AI coding IDE orchestration</h2>
<p>When you're building from an empty repo, you can treat agents like a high-throughput, long-running team. OpenAI's harness engineering example and Anthropic's multiagent experiments give a feel for the ceiling here.</p>
<p>Key patterns:</p>
<ul><li><strong>High autonomy, few gates</strong>  <ul><li>One orchestration agent owns the final answer (OpenAI's &quot;manager&quot; pattern).  </li><li>Specialists (UI, backend, infra, docs) act as tools: they take structured briefs and return PRs or patches.</li></ul></li></ul>
<ul><li><strong>Parallelism over caution</strong>  <ul><li>Anthropic's parallel compiler experiment ran <strong>16 agents</strong>, ~<strong>2,000 Claude Code sessions</strong>, and spent about <strong>$20k</strong> in API costs to build a <strong>100k-line</strong> Rust C compiler that compiles Linux 6.9 (<a href="https://www.anthropic.com/engineering/building-c-compiler" rel="nofollow noopener" target="_blank">Anthropic, 2024</a>).  </li><li>The orchestration concern wasn't &quot;will this break prod,&quot; it was &quot;are we exploiting parallelism and keeping the agents fed?&quot;</li></ul></li></ul>
<ul><li><strong>Monorepo as coordination spine</strong>  <ul><li>Greenfield agents can standardize on one repo and one CI pipeline.  </li><li>Orchestrator agents: <ul><li>queue work units (&quot;implement auth service&quot;, &quot;write terraform for staging&quot;),  </li><li>assign them to workers,  </li><li>merge when tests pass.</li></ul></li></ul></li></ul>
<ul><li><strong>Discovery is design, not forensics</strong>  <ul><li>Discovery agents focus on user requirements, architecture options, and interface specs.  </li><li>You can afford to rewrite early decisions; nothing fights back with 10-year-old data contracts.</li></ul></li></ul>
<p>A simple greenfield harness in 2026 often looks like:</p>
<pre><code class="lang-bash"># manager: reads a product brief and owns the roadmap
claude-code --session manager --prompt-file product_brief.md

# workers: attached by the manager via tools / function calls
claude-code --session api_worker
claude-code --session ui_worker
claude-code --session infra_worker</code></pre>
<p>The orchestration problem is making sure the manager has <strong>visibility</strong> and <strong>tooling</strong> to slice work, not guardrails against legacy drag.</p>
<h2>Orchestration for legacy migrations: multi-agent AI coding IDE orchestration under constraints</h2>
<p>Legacy migrations are the opposite. You're strangling a monolith or displacing critical systems where you don't control all the invariants.</p>
<p>Three sources line up on the right primitives:</p>
<ul><li>OpenAI's sandboxed code-migration cookbook explicitly warns that &quot;one massive migration PR is hard to review and risky to merge,&quot; and pushes <strong>one scoped task at a time</strong> in a controlled environment with tests and audit logs (<a href="https://developers.openai.com/cookbook/examples/agents_sdk/sandboxed-code-migration/sandboxed_code_migration_agent" rel="nofollow noopener" target="_blank">OpenAI, 2025</a>).</li><li>Martin Fowler's Strangler Fig pattern recommends <strong>gradual replacement</strong>, with frequent releases and bi-directional asset migration to reduce risk (<a href="https://martinfowler.com/bliki/OriginalStranglerFigApplication.html" rel="nofollow noopener" target="_blank">Fowler, 2004</a>).</li><li>An ACM 2024 review found <strong>3,460</strong> candidate modernization studies, <strong>126</strong> included, and <strong>8</strong> common strategies; the dominant drivers were cost reduction, performance/scalability, and reduced complexity (<a href="https://dlnext.acm.org/doi/pdf/10.1145/3708527" rel="nofollow noopener" target="_blank">ACM, 2024</a>).</li></ul>
<p>What this means for <strong>agent orchestration legacy code migration</strong>:</p>
<ul><li><strong>Tight scoping per agent session</strong>  <ul><li>Give each migration agent one slice: &quot;extract billing from monolith into service,&quot; &quot;move reporting to new schema,&quot; etc.  </li><li>Each slice has a harness: sandboxed environment, specific tests, explicit rollback.</li></ul></li></ul>
<ul><li><strong>Discovery agents for reality, not theory</strong>  <ul><li>Before any refactor, run agents to:  <ul><li>enumerate entry points,  </li><li>infer domain concepts from code and data,  </li><li>map dependencies (DB tables, batch jobs, external services).</li></ul></li></ul></li></ul>
<ul><li><strong>Staged handoffs instead of free-running teams</strong>  <ul><li>Use manager-owns-answer orchestration: one orchestrator agent stays in charge.  </li><li>Specialists act as tools: &quot;run static analysis on module X,&quot; &quot;generate migration plan,&quot; &quot;rewrite this interface and mock external deps.&quot;</li></ul></li></ul>
<ul><li><strong>Risk primitives baked into the harness</strong>  <ul><li>Isolation: agents work in sandboxes cloned from main.  </li><li>Auditable output: every patch is a PR with clear diffs and tests.  </li><li>Incremental release: many small PRs, strangler-style, instead of one giant cut-over.</li></ul></li></ul>
<h3>Concrete harness structure for legacy work</h3>
<p>A minimal recipe that respects risk:</p>
<pre><code class="lang-bash"># 1. Clone a sandbox per migration task
TASK_ID=migrate-billing

git clone git@github.com:org/monolith.git sandboxes/$TASK_ID
cd sandboxes/$TASK_ID

# 2. Start a scoped migration agent session (Claude Code or similar)
claude-code \
  --session migrate_billing_1 \
  --working-dir sandboxes/$TASK_ID \
  --prompt-file prompts/migrate_billing.md

# 3. Run tests inside the sandbox, never directly on main
pytest tests/billing --maxfail=1

# 4. When green, open a PR from the sandbox to main
# (use your normal git tooling / CI)</code></pre>
<p>OpenAI's cookbook calls out this pattern explicitly: single-task agents, sandboxed repos, and CI gates at each merge. It's slower than shipping everything from scratch, but it's what keeps you from quietly breaking invoicing.</p>
<h2>Parallel vs staged workflows: throughput vs control</h2>
<p>Google's DORA 2025 report is blunt: AI is an <strong>amplifier</strong>. Teams with strong systems get more benefit; weak workflows get &quot;localized pockets of productivity&quot; that don't change delivery outcomes. They also saw AI increase throughput but <strong>decrease stability</strong> (<a href="https://services.google.com/fh/files/misc/2025_state_of_ai_assisted_software_development.pdf" rel="nofollow noopener" target="_blank">DORA 2025</a>).</p>
<p>That's the orchestration trade-off:</p>
<ul><li>Greenfield: you accept some instability because there is no existing user traffic on your new system.  </li><li>Legacy: instability is a production incident.</li></ul>
<p>So:</p>
<ul><li>Use <strong>parallel multiagent teams</strong> where it's safe to do so: greenfield features, internal tooling, non-critical pipelines.  </li><li>Use <strong>staged, gated orchestration</strong> for anything that touches money, compliance, or key business flows.</li></ul>
<p>Anthropic's 2026 State of AI Agents report backs this: <strong>57%</strong> of orgs deploy agents for multi-stage workflows, <strong>16%</strong> have cross-team processes, and <strong>80%+</strong> report ROI, but long-lived peer agents are still &quot;in their infancy&quot; and work best on highly parallelizable problems (<a href="https://resources.anthropic.com/hubfs/The%202026%20State%20of%20AI%20Agents%20Report.pdf" rel="nofollow noopener" target="_blank">Anthropic, 2026</a>; <a href="https://www.anthropic.com/research/multiagent-systems" rel="nofollow noopener" target="_blank">Anthropic multiagent</a>).</p>
<h2>Managing the human bottleneck in AI coding agents orchestration</h2>
<p>Anthropic analyzed <strong>~400k Claude Code sessions</strong> from <strong>~235k users</strong> and found people spend <strong>~20 hours per week</strong> in Claude Code; debugging time dropped by nearly half, and typical task value rose ~25% over seven months (<a href="https://www.anthropic.com/research/claude-code-expertise" rel="nofollow noopener" target="_blank">Anthropic, 2025</a>). The bottleneck now is your attention, not the agents.</p>
<p>You see this when:</p>
<ul><li>You have 8+ sessions open and can't tell which one is stuck.  </li><li>A migration agent happily builds the wrong thing for 20 minutes.  </li><li>You spend all day answering questions the agent could decide with context.</li></ul>
<p>The orchestration layer has to:</p>
<ul><li>Expose <strong>session state</strong> in one place.  </li><li>Reduce <strong>decision interruptions</strong> to only the ones that actually need a human.  </li><li>Preserve <strong>control over what lands on main</strong>.</li></ul>
<p>The pillar guide covers these harness-level patterns in detail: see the sections on <strong>fleet dashboards</strong> and <strong>human-in-the-loop decision boundaries</strong> in <a href="https://maxxwell.rindler.io/blog/ai-coding-agent-orchestration-complete-guide" rel="nofollow noopener" target="_blank">AI coding agent orchestration: the complete guide for multi-agent development</a>.</p>
<h2>Maxxwell vs similar tools, feature and workflow comparison (2026)</h2>
<p>If you're already running Claude Code, Codex, Cursor-agent or similar, the question isn't &quot;which agent,&quot; it's &quot;what manages them.&quot; This is where Maxxwell by Rindler sits.</p>
<p>Maxxwell is an <strong>agent of agents</strong>, not a copilot. It runs locally (macOS, Linux, Windows) and manages your existing coding agents as real terminal sessions. Compatibility today:</p>
<ul><li><strong>Claude Code</strong> (Anthropic, 2025+): via CLI or API key.  </li><li><strong>OpenAI Codex / GPT-4-o code agents</strong>: via OpenAI API.  </li><li><strong>Cursor-agent</strong> and other IDE agents: via their CLI or remote tools.</li></ul>
<p>Other options in this space include:</p>
<ul><li><strong>DIY tmux / zellij scripts</strong>:  <ul><li>Pros: total control, zero extra moving parts.  </li><li>Cons: no semantic session states, no cross-session orchestrator; everything is manual.</li></ul></li></ul>
<ul><li><strong>Web dashboards from model vendors</strong> (OpenAI, Anthropic):  <ul><li>Pros: integrated with their orchestration SDKs, good for single-vendor agent fleets.  </li><li>Cons: browser-bound; hard to integrate with your local tools, and usually not managing real terminal sessions.</li></ul></li></ul>
<p>Where Maxxwell differs:</p>
<ul><li>One window with explicit <strong>session states</strong> per lane:<ul><li><code>working</code> - agent is actively generating.  </li><li><code>idle</code> - session alive, no current activity.  </li><li><code>waiting_on_human</code> - agent stopped for user input or confirmation.  </li><li><code>not_started</code> - lane created, agent not yet invoked.  </li><li><code>needs_sign_in</code> - upstream tool requires auth/API key.  </li><li><code>blocked</code> - hard error (e.g., CI failure) that stops progress.  </li><li><code>done</code> - agent finished its assigned task.  </li><li><code>dead</code> - underlying process exited unexpectedly.  </li><li><code>not_heard_from</code> - Maxxwell cannot verify state from the worker.</li></ul></li></ul>
<ul><li>An <strong>orchestrator seat</strong> that is itself a coding agent session started from a written brief:  <ul><li>You talk to one orchestrator instead of twelve terminals.  </li><li>It reports what landed, what it decided for you, and what still needs your call.</li></ul></li></ul>
<ul><li><strong>Drafts rather than acts</strong>:  <ul><li>Any fleet control that would change sessions writes a fully formed but <strong>unsent</strong> command into the composer.  </li><li>You stay the one who presses enter; Maxxwell never executes session-changing commands without you.</li></ul></li></ul>
<ul><li><strong>Sessions outlive the app</strong>:  <ul><li>Quitting Maxxwell <strong>detaches</strong>; it never kills workers.  </li><li>Close your laptop lid and the work keeps running under your normal terminal / process manager.</li></ul></li></ul>
<p>Maxxwell fits both greenfield and legacy orchestration:</p>
<ul><li>Greenfield: orchestrator seat owns the roadmap, workers run your own tools for features, infra, docs.</li><li>Legacy: the orchestrator seat helps you coordinate discovery, migration and verification workers, while the state view makes it clear which migration slice is blocked or waiting on you.&lt;/br&gt;</li></ul>
<p>Docs and integration details: see the product documentation at <strong>https://maxxwell.rindler.io/docs</strong> (URL subject to change; treat as the canonical reference).</p>
<h3>Sample CLI / data model for integrating agent sessions</h3>
<p>To plug existing agents into a Maxxwell-style harness, you need:</p>
<ol><li><strong>Authentication</strong>  <ul><li>Export model keys in your shell: </li></ul></li></ol>
<pre><code class="lang-bash">export ANTHROPIC_API_KEY=...
export OPENAI_API_KEY=...</code></pre>
<ol><li><strong>Session descriptors</strong>  <ul><li>Maxxwell tracks sessions as simple records; a minimal JSON shape:</li></ul></li></ol>
<pre><code class="lang-json">{
  &quot;id&quot;: &quot;session-123&quot;,
  &quot;tool&quot;: &quot;claude-code&quot;,
  &quot;status&quot;: &quot;working&quot;,
  &quot;working_dir&quot;: &quot;sandboxes/migrate-billing&quot;,
  &quot;brief&quot;: &quot;Migrate billing module to new service architecture&quot;,
  &quot;created_at&quot;: &quot;2026-08-29T10:03:00Z&quot;
}</code></pre>
<ol><li><strong>Harness commands</strong>  <ul><li>Example: start a new migration worker from the orchestrator seat:</li></ul></li></ol>
<pre><code class="lang-bash"># illustrative only - not a real Maxxwell command surface
maxxwell start \
  --id migrate-billing-1 \
  --tool claude-code \
  --working-dir sandboxes/migrate-billing \
  --brief-file prompts/migrate_billing.md</code></pre>
<ol><li><strong>CI hooks</strong>  <ul><li>Treat agent output like any other patch: </li></ul></li></ol>
<pre><code class="lang-bash"># in your CI
pytest tests/billing --maxfail=1</code></pre>
<p>This is the pattern described more abstractly in the pillar article's sections on <strong>harness APIs</strong> and <strong>CI integration hooks</strong>.</p>
<h2>Comparison table: greenfield vs legacy agent orchestration</h2>
<p>Below is a machine-readable table summarizing orchestration differences.</p>
<div class="tablewrap" role="region" aria-label="Table" tabindex="0"><table><thead><tr><th scope="col">Aspect</th><th scope="col">Greenfield builds</th><th scope="col">Legacy migrations</th></tr></thead><tbody><tr><td>Primary goal</td><td>Throughput, feature velocity</td><td>Risk containment, correctness, auditability</td></tr><tr><td>Typical autonomy level</td><td>High autonomy, long-running multi-agent teams</td><td>Low to medium autonomy, manager-owns-answer pattern</td></tr><tr><td>Task sizing</td><td>Large epics, parallelizable work chunks</td><td>Narrow, scoped slices (one migration per agent session)</td></tr><tr><td>Discovery focus</td><td>Requirements, architecture, interface design</td><td>Hidden business rules, data contracts, dependency mapping</td></tr><tr><td>Risk primitives</td><td>Tests + CI, rollback at feature level</td><td>Sandboxes, strangler patterns, fine-grained rollbacks, audit logs</td></tr><tr><td>Example orchestration SDKs</td><td>OpenAI agents harness, Anthropic multiagent tools</td><td>OpenAI sandboxed migration agents, custom harnesses with strict CI</td></tr><tr><td>Example agent roles</td><td>Product manager, API worker, UI worker, infra worker</td><td>Discovery agent, migration agent, verification/test agent</td></tr><tr><td>Human review intensity</td><td>Moderate; focus on key architecture decisions</td><td>High; every PR reviewed, frequent releases with monitoring</td></tr><tr><td>Good multi-agent fit?</td><td>Yes; highly parallelizable, minimal external constraints</td><td>Partial; good for scoped slices, bad for opaque shared state</td></tr></tbody></table></div>
<h2>FAQ: common orchestration questions</h2>
<h3>How many AI coding agents should I run for a greenfield project?</h3>
<p>Use as many as you can keep in view without losing control. OpenAI's harness case study ran effectively with <strong>3 engineers</strong> driving a multiagent build over ~5 months and ~1,500 PRs, but they had strong internal tooling. If you don't have an orchestration layer, start with <strong>3-5 workers</strong> plus one manager agent and scale up once you have a clear session-state view.</p>
<h3>What's the safest way to use multi-agent orchestration for a legacy monolith?</h3>
<p>Copy OpenAI's sandboxed migration pattern:</p>
<ul><li>Clone a sandbox per migration task.  </li><li>Run a single migration agent in that sandbox.  </li><li>Require tests and CI to pass before opening a PR.  </li><li>Release in strangler-style increments.</li></ul>
<p>This keeps legacy risk contained while still letting agents do most of the refactoring and plumbing.</p>
<h3>How do I keep agents from drifting off the brief on long-running tasks?</h3>
<p>No tool today reliably auto-corrects drift. The current best practice is:</p>
<ul><li>Shorten task horizons (METR finds leading models can do <strong>~2h17m</strong> of continuous work with ~50% correctness confidence <a href="https://metr.org/blog/2025-03-19-measuring-ai-ability-to-complete-long-tasks/" rel="nofollow noopener" target="_blank">METR, 2025</a>).  </li><li>Add explicit checkpoint prompts (&quot;summarize progress and planned next steps&quot;).  </li><li>Use an orchestrator seat to <strong>review summaries</strong> and redirect work when needed.</li></ul>
<p>Maxxwell gives you a context-pressure readout with tiered warnings and a one-click compact, but it does not automatically re-aim or recycle context for you.</p>
<h3>How does Maxxwell integrate with my existing Claude Code or OpenAI workflow?</h3>
<p>At a minimum:</p>
<ul><li>You provide your own API keys or run existing CLI tools.  </li><li>Maxxwell starts each worker as a real terminal session using those tools.  </li><li>It tracks session state (<code>working</code>, <code>idle</code>, <code>waiting_on_human</code>, etc.) and exposes them in one window and via a CLI.</li></ul>
<p>Because workers are unmodified, you can <strong>attach</strong> to any session directly and take over mid-sentence. The orchestrator seat is just another agent session, but wired to understand and control the fleet.</p>
<h3>Where should I start integrating multi-agent orchestration in my team?</h3>
<p>Based on DORA's finding that AI amplifies existing systems, the best entry points are:</p>
<ul><li>Greenfield internal tools where failure is cheap.  </li><li>Legacy migration slices with clean boundaries (reporting, analytics, non-critical modules).  </li><li>CI pipelines where agents can own tests, static analysis, and boilerplate refactors.</li></ul>
<p>Use the patterns in the pillar article's sections on <strong>pipeline design</strong> and <strong>looping harnesses</strong>, then layer Maxxwell or a similar orchestration tool on top once multiple people are running agents concurrently.</p>
<p>Greenfield builds favor high autonomy and throughput, while legacy migrations prioritize risk containment with tighter scopes and more human review.</p>]]></content:encoded>
  </item>
  <item>
    <title>Central conductor vs peer-to-peer agents</title>
    <link>https://maxxwell.dev/blog/central-conductor-vs-p2p-coding-agents</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/central-conductor-vs-p2p-coding-agents</guid>
    <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Past one or two coding agents, the problem stops being model quality and becomes orchestration. You’re suddenly a traffic controller for parallel work that can.</description>
    <content:encoded><![CDATA[<p>Past one or two coding agents, the problem stops being model quality and becomes orchestration. You’re suddenly a traffic controller for parallel work that can collide, stall, or drift.</p>
<p>This piece compares two actual topologies people are deploying now: a central conductor agent versus peer-to-peer coordination, and when each fits your codebase and risk appetite.</p>
<p>It’s the comparison companion to the pillar guide, <strong>“AI coding agent orchestration: the complete guide for multi-agent development”</strong> - this one focuses on choosing the architecture, not every implementation detail.</p>
<h2>The two orchestration models, concretely</h2>
<p>When you say <em>“multi-agent”</em> for coding, you usually mean one of these:</p>
<ul><li><strong>Central conductor model</strong><ul><li>One planner / conductor agent owns the plan.</li><li>It decomposes work, delegates subtasks to worker agents, and integrates results.</li><li>Workers are tools: narrow roles, clear inputs/outputs.</li></ul></li></ul>
<ul><li><strong>Peer-to-peer / distributed model</strong><ul><li>Multiple agents run as peers, often over shared context and queues.</li><li>Agents pick up tasks, publish findings, and sometimes negotiate with each other.</li><li>There is no single root that “knows everything”; coordination is emergent.</li></ul></li></ul>
<p>OpenAI’s multi-agent docs and Anthropic’s research both lean heavily toward the first pattern for code: a root agent plus subagents when tasks are independent and bounded.</p>
<h2>Why coding workflows gravitate to a conductor</h2>
<p>Coding agents are taking on longer and longer tasks - METR's task-horizon work tracks how far that has come - but oversight hasn't scaled with it. Anthropic's 2026 trends reporting describes engineers still fully delegating only a small minority of their tasks.</p>
<p>That gap is why conductor architectures keep winning real deployments:</p>
<ul><li><strong>Single place to reason about the plan</strong><ul><li>You can see the task graph: explore repo → design change → implement → test → PR.</li><li>You can encode guardrails there: no writes to <code>main</code>, always run tests before proposing.</li></ul></li></ul>
<ul><li><strong>Subagents as tools, not free agents</strong><ul><li>Anthropic’s multi-agent research explicitly notes that agents behave better as tools with clear inputs/outputs than as long-lived peers.</li><li>Exploration, test generation, alternative designs: each is a bounded subtask.</li></ul></li></ul>
<ul><li><strong>Operational clarity</strong><ul><li>OpenAI recommends multi-agent when tasks can be split into independent bounded work - e.g., parallel bug triage or feature branches.</li><li>When steps have strict ordering or share mutable state, they tell you to <em>avoid</em> multi-agent and keep control centralized.</li></ul></li></ul>
<p>The result: most practical systems in 2026 use a <strong>central conductor with parallel workers</strong>, not a fully decentralized mesh.</p>
<h2>Where peer-to-peer coding agents actually help</h2>
<p>Peer-to-peer designs show up when the central conductor becomes the bottleneck.</p>
<p>Recent orchestration research on decentralized multi-agent systems reports:</p>
<ul><li><strong>Up to +10.5 percentage points on SWE-bench Verified</strong> vs the best centralized baseline.</li><li><strong>~50% lower cost per task</strong> by spreading work and reducing redundant computation.</li><li>Frameworks like AgentNet++ claim <strong>23% higher task completion</strong> and <strong>40% lower communication overhead</strong> at 1000+ agents.</li></ul>
<p>In coding terms, peer-ish setups help when:</p>
<ul><li>You have many mostly independent investigations (e.g., chaos-style bug hunting).</li><li>You want agents to self-select tasks from queues: “any agent pick up next test failure.”</li><li>You’re exploring codebases or design alternatives rather than editing shared state.</li></ul>
<p>These systems usually still sneak in <em>some</em> central control plane - for policy, monitoring, and arbitration - but they push task routing and discovery into the network of agents.</p>
<h2>Risk profile: what can go wrong in each model</h2>
<p>You’re probably balancing two failures:</p>
<ul><li>Parallel agents building <strong>the wrong thing</strong> confidently.</li><li>A single conductor becoming the <strong>slow, fragile bottleneck</strong>.</li></ul>
<h3>Risks in a central conductor model</h3>
<ol><li><strong>Single point of mis-planning</strong><ul><li>If the root agent misreads the brief, every worker implements the wrong plan.</li><li>You need strong human control on the conductor’s high-level decisions.</li></ul></li></ol>
<ol><li><strong>Single point of failure</strong><ul><li>If the conductor crashes or gets stuck, the whole workflow stalls.</li><li>Recovery needs to be deliberate: checkpoint the plan, not just the text.</li></ul></li></ol>
<ol><li><strong>Resource bottleneck</strong><ul><li>One planner reading all logs and writing all instructions can hit context limits fast.</li><li>You pay for model calls in one place; scaling may need sharding or manual pruning.</li></ul></li></ol>
<h3>Risks in peer-to-peer coding agents</h3>
<ol><li><strong>Conflict on shared mutable state</strong><ul><li>Multiple agents touching the same repo, DB, or service can stomp each other.</li><li>You must enforce concurrency control (locks, branches, review gates).</li></ul></li></ol>
<ol><li><strong>Emergent drift</strong><ul><li>No single agent tracks overall goals; dozens of small changes may diverge.</li><li>Long-running peers can keep optimizing local metrics while hurting system design.</li></ul></li></ol>
<ol><li><strong>Observability overhead</strong><ul><li>State is spread across agents; knowing “what’s going on” becomes hard.</li><li>You end up building dashboards and traces - i.e., a control plane.</li></ul></li></ol>
<p>The practical trade-off: <strong>central conductor = easier to reason, harder to scale; peer-to-peer = easier to scale, harder to govern.</strong></p>
<h2>How Maxxwell fits the conductor vs peers debate</h2>
<p>Maxxwell sits directly on this line. It’s not another coding agent; it’s the agent that manages the ones you already run.</p>
<p>Mechanically:</p>
<ul><li>Every worker is a <strong>real terminal session</strong>: Claude Code, Codex, Cursor’s agent, or your own scripts.</li><li>You can <strong>attach to any session</strong> and take over mid-sentence. Maxxwell doesn’t wrap or replace your tools.</li><li>All sessions live in one window with readable states: <em>working, idle, waiting on you, needs sign-in, blocked, done, dead, not heard from</em>, plus a <em>possibly stalled</em> overlay.</li><li>Quitting <strong>detaches</strong>; it <strong>never kills</strong> sessions. Work outlives the app.</li></ul>
<p>On top of that, Maxxwell adds an <strong>orchestrator seat</strong>:</p>
<ul><li>It’s itself a real briefed coding agent.</li><li>You talk to this one seat instead of twelve terminals.</li><li>It reports: what landed, what it decided, what is waiting on you.</li></ul>
<p>The important posture: <strong>fleet controls draft rather than act.</strong></p>
<ul><li>Any control that would change the fleet (e.g., “spin up two more agents to refactor module X”) writes a fully formed, unsent sentence into the composer.</li><li>It never runs the command.</li><li>You stay the one who presses enter.</li></ul>
<p>This is squarely in the <strong>central conductor camp</strong>, but it keeps the conductor under human control and workers as standard tools.</p>
<h2>Criteria that actually matter when choosing a topology</h2>
<p>Architects usually sort the decision by a few axes:</p>
<ol><li><strong>Codebase shape</strong><ul><li>Monolith with shared mutable state → conductor or at least strong central control.</li><li>Microservices with clear boundaries → more room for peer-ish agents.</li></ul></li></ol>
<ol><li><strong>Risk tolerance</strong><ul><li>High-risk domains (fintech, healthcare) → prefer deterministic, reviewable paths.</li><li>Lower-risk side projects → can afford looser peer coordination.</li></ul></li></ol>
<ol><li><strong>Team workflow</strong><ul><li>Strong code review culture → conductor that stages changes and PRs.</li><li>Ops-style queues (tickets, incidents) → peer agents that pull from queues.</li></ul></li></ol>
<ol><li><strong>Scale of agent fleet</strong><ul><li>2-10 agents → a single conductor and human oversight is tractable.</li><li>50-100+ agents → a single conductor will choke; you need tiers or distributed routing.</li></ul></li></ol>
<ol><li><strong>Observability needs</strong><ul><li>Compliance / audit → a control plane that can report state clearly.</li><li>Experimental R&amp;D → logs may be enough.</li></ul></li></ol>
<h2>Central conductor vs peer-to-peer: summary table</h2>
<p>Here’s the comparison in one view.</p>
<p>A central conductor fits monoliths and high-risk work; peer-to-peer fits large fleets doing loosely coupled exploration and triage.</p>
<div class="tablewrap" role="region" aria-label="Table" tabindex="0"><table><thead><tr><th scope="col">Criterion</th><th scope="col">Central conductor agent</th><th scope="col">Peer-to-peer agent orchestration</th></tr></thead><tbody><tr><td>Core idea</td><td>One planner manages workers</td><td>Agents coordinate over shared context/queues</td></tr><tr><td>Best for</td><td>Ordered pipelines, shared mutable state, monoliths</td><td>Large fleets, independent tasks, microservices</td></tr><tr><td>Risk posture</td><td>Tight control, easier review, single mis-planning risk</td><td>Higher autonomy, harder governance, emergent drift risk</td></tr><tr><td>Scaling</td><td>Planner becomes bottleneck past dozens of agents</td><td>Scales better at 100+ agents with good routing</td></tr><tr><td>Observability</td><td>Clear plan, single dashboard</td><td>Needs strong tracing/logging to see system state</td></tr><tr><td>Human role</td><td>Orchestrator of a team, reviewing key decisions</td><td>Supervisor of a distributed system, tuning policies</td></tr><tr><td>Examples</td><td>Maxxwell orchestrator seat; OpenAI root agent + subagents; Anthropic planner + research workers</td><td>AgentNet++-style frameworks; queue-pulling bug triage agents</td></tr></tbody></table></div>
<h2>When to choose each model, in plain language</h2>
<p>Use a <strong>central conductor</strong> when:</p>
<ul><li>You care most about <strong>merge safety</strong>, tests, and knowing exactly why something changed.</li><li>Your codebase is <strong>tightly coupled</strong>: monoliths, shared schemas, lots of cross-module impact.</li><li>You’re in a domain where “agents quietly broke production” is not acceptable.</li><li>You have <strong>&lt; 20 active agent sessions</strong> at once.</li></ul>
<p>Use <strong>peer-to-peer / distributed</strong> when:</p>
<ul><li>You’re running a <strong>large fleet</strong> of agents across many independent repos or services.</li><li>Tasks are <strong>loosely coupled</strong>: triaging tickets, exploring logs, suggesting refactors, generating tests.</li><li>You’re optimizing for <strong>throughput and coverage</strong>, not for every change being obviously explainable.</li><li>You already have strong <strong>observability and policy layers</strong> in place.</li></ul>
<p>Hybrid patterns are common in practice:</p>
<ul><li>A conductor agent (or Maxxwell-style orchestrator) owns the plan.</li><li>Below it, agents act more peer-like within bounded domains (e.g., “test generation cluster” or “refactor suggestions swarm”).</li></ul>
<h2>A realistic recommendation for 2026</h2>
<p>For most teams already using Claude Code, Codex, Cursor, and similar daily:</p>
<ul><li>Start with a <strong>central conductor topology</strong>.</li><li>Use workers as unmodified tools.</li><li>Add visibility: states per session, clear “blocked” and “waiting on you” markers, context pressure warnings with a one-click compact you trigger.</li><li>Keep the human in the loop on plan changes and fleet-wide commands.</li></ul>
<p>Maxxwell is built for this exact use case: one window for many real agent sessions, a conductor seat you talk to in language, and controls that draft rather than act.</p>
<p>Move toward <strong>peer-to-peer</strong> structures only when:</p>
<ul><li>You’re hitting real scale limits - dozens of agents, many repos.</li><li>You’ve already solved observability and governance in a central model and now need more throughput.</li></ul>
<p>If you’re still at “I have eight sessions open and I am the slowest part of this,” a central conductor with good tooling solves the problem more directly than a fully distributed mesh.</p>
<h2>FAQ: central conductor vs peer-to-peer AI coding agents</h2>
<h3>How many agents justify a central conductor?</h3>
<p>Once you’re consistently running <strong>3-5 parallel coding agents</strong>, a conductor helps. OpenAI and Anthropic both frame multi-agent use around a root planner delegating to subagents; that pattern keeps human oversight sane when you’re past a single copilot.</p>
<h3>When is peer-to-peer orchestration the wrong choice?</h3>
<p>It’s the wrong fit when tasks depend on a strict ordered chain of reasoning or share heavy mutable state. OpenAI’s guidance is explicit: prefer a single agent (or central orchestrator) when steps depend directly on prior steps or when agents contend over the same resource.</p>
<h3>Can I mix conductor and peer-to-peer models in one system?</h3>
<p>Yes. A common pattern is a conductor that owns the high-level plan and review gates, with sub-clusters of agents running more peer-like for specific tasks, such as generating tests or exploring alternative implementations. The control plane still sits above them.</p>
<h3>How does Maxxwell help prevent agents from building the wrong thing?</h3>
<p>Maxxwell doesn’t automatically correct drift, but it does keep <strong>state and visibility</strong> in one place. You see which sessions are working, idle, blocked, or “possibly stalled,” and the orchestrator seat reports what landed versus what’s waiting on you. That makes catching “wrong thing” work a lot easier.</p>
<h3>Do I need special models for central conductor architectures?</h3>
<p>No. The conductor is an agent role and a bit of scaffolding, not a special model. Maxxwell, for example, runs on the models you already use - Claude, ChatGPT/Codex, Cursor’s agents - and manages them from above rather than replacing them.</p>]]></content:encoded>
  </item>
  <item>
    <title>Orchestrated agents vs codegen pipelines</title>
    <link>https://maxxwell.dev/blog/ai-coding-agents-vs-codegen-pipelines</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/ai-coding-agents-vs-codegen-pipelines</guid>
    <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Developers are now the bottleneck, not the models. Once you’re running five or ten coding agents, the hard part is keeping them aimed, not getting more code.</description>
    <content:encoded><![CDATA[<p>Developers are now the bottleneck, not the models. Once you’re running five or ten coding agents, the hard part is keeping them aimed, not getting more code out of them. At the same time, your CI/codegen pipelines are still quietly shipping repeatable work without supervision.</p>
<p>This is a practical comparison of orchestrated AI coding agents versus linear code generation pipelines, and where a manager-of-agents layer like Maxxwell fits.</p>
<h2>The two models: loops vs scripts</h2>
<p>The core difference:</p>
<ul><li><strong>Orchestrated agents</strong>: self-directed loops - plan, act, observe, adjust, repeat.</li><li><strong>Codegen pipelines</strong>: predefined scripts - YAML graph of jobs and stages.</li></ul>
<p>Anthropic’s trustworthy-agents framing is explicit: agents are “plan-act-observe-adjust loops,” not fixed sequences. GitHub Actions and GitLab CI, by contrast, are event-triggered workflows that always run the same graph unless you change the config.</p>
<p>That shapes everything downstream: adaptability, debugging, and how you do human oversight.</p>
<h2>Where orchestrated agents are strictly better</h2>
<p>Orchestrated AI coding agents shine when the work is messy:</p>
<ul><li>Requirements change mid-stream.</li><li>Context sprawls across multiple repos and services.</li><li>You need decisions, not just code snippets.</li></ul>
<p>Recent work backs this up:</p>
<ul><li>Anthropic’s 2026 agentic coding report: devs use AI in <strong>~60% of their work</strong>, but can fully delegate only <strong>0-20%</strong> of tasks. Supervision remains central.</li><li>A survey of agentic programming on arXiv defines agents as systems that <strong>plan, execute, use tools, and refine outputs dynamically</strong>, unlike single-shot codegen.</li></ul>
<p>In practice, orchestrated multi-agent setups give you:</p>
<ul><li><strong>Adaptive planning</strong>: agents can reshape the task list when they hit unknowns.</li><li><strong>Parallel exploration</strong>: one agent stabilizes a flaky test while another prototypes a refactor.</li><li><strong>Rich tool use</strong>: run tests, hit APIs, inspect logs, not just generate text.</li></ul>
<p>This feels like working with a junior team instead of a macro recorder.</p>
<h2>Where codegen pipelines still win</h2>
<p>Codegen pipelines in CI and automation tools are great when the job is:</p>
<ul><li>Well-specified.</li><li>Repeatable.</li><li>Safe to run unattended.</li></ul>
<p>GitHub Actions, GitLab CI, and similar tools are built for this:</p>
<ul><li>Workflows are <strong>YAML-defined graphs</strong> of jobs and stages.</li><li>Stages <strong>run in sequence</strong>, triggered by repo events or schedules.</li><li>You get <strong>strong guarantees</strong>: the same input plus the same config yields the same behavior.</li></ul>
<p>They’re still the right choice for:</p>
<ul><li>Build, test, and deploy.</li><li>Routine code generation (scaffolding, client/regeneration from OpenAPI).</li><li>Nightly maintenance tasks.</li></ul>
<p>These are fixed execution graphs, not self-replanning systems, and that’s a feature when you want predictability.</p>
<h2>Adaptability: reacting to reality vs replaying a script</h2>
<p>Adaptability is the main divergence.</p>
<p><strong>Orchestrated agents</strong>:</p>
<ul><li>Observe outcomes (test failures, API errors, unfamiliar code) and update their plan.</li><li>Can spin up new subtasks mid-run (e.g. “add a migration before touching this endpoint”).</li><li>Handle context-sprawl better when wired into proper harnesses and tools.</li></ul>
<p>Anthropic’s long-running harness work calls out the need for:</p>
<ul><li>Incremental progress across sessions.</li><li>Clear artifacts for the next run.</li><li>Compaction for work that spans many context windows.</li></ul>
<p><strong>Codegen pipelines</strong>:</p>
<ul><li>Do not re-plan on their own.</li><li>Handle failure via fixed branches: retry, mark red, or run a different job.</li><li>Assume the environment is stable and the spec is frozen.</li></ul>
<p>If your requirement is “do this the same way every time,” CI/codegen wins. If your requirement is “figure out what to do next,” orchestrated agents win.</p>
<h2>Debugging experience: multi-agent chaos vs CI logs</h2>
<p>Debugging is where the difference feels the strongest.</p>
<p><strong>With orchestrated agents</strong>, the pain today is familiar:</p>
<ul><li>You have eight sessions open and you’re the slowest part.</li><li>You cannot tell which is stuck and which is just slow.</li><li>One has been confidently building the wrong thing for twenty minutes.</li></ul>
<p>By contrast, <strong>CI/codegen pipelines</strong> are boring in a good way:</p>
<ul><li>Every job has structured logs.</li><li>You can bisect by commit or config change.</li><li>Failures land in one predictable UI.</li></ul>
<p>OpenAI’s Codex platform leans into this: multi-agent workflows have built-in worktrees, cloud environments, and agent-native logs. Anthropic stresses structured updates and harnesses that persist progress.</p>
<p>The debugging gap for orchestrated agents is less about the models and more about the <strong>orchestration layer</strong>:</p>
<ul><li>You need visibility into each agent’s state and history.</li><li>You need to see what changed and why.</li><li>You need a way to pause, inspect, and redirect, without killing useful work.</li></ul>
<h3>Where Maxxwell fits: debugging the fleet, not the model</h3>
<p>Maxxwell is built for exactly this multi-agent debugging problem.</p>
<p>It treats your agents - Claude Code, Codex, Cursor-agent, or your own harness - as <strong>workers running in real terminal sessions</strong>. You keep your tools; Maxxwell owns the layer above them.</p>
<p>For debugging, this gives you:</p>
<ul><li><strong>One window for every session</strong>, each tagged with a readable state: working, idle, waiting on you, needs sign-in, blocked, done, dead, not heard from.</li><li><strong>Attach-anytime terminals</strong>: every worker is a real session you can drop into and take over mid-sentence.</li><li><strong>Sessions that outlive the app</strong>: quitting Maxxwell just detaches; it doesn’t kill anything.</li></ul>
<p>Instead of twelve scattered terminals, you have a single surface where the stuck ones are obvious.</p>
<h2>Human oversight: approvals vs state monitoring</h2>
<p>Human oversight patterns are diverging as autonomy grows.</p>
<p>Anthropic’s autonomy research shows:</p>
<ul><li>Longest-running Claude Code sessions grew from <strong>&lt;25 minutes to &gt;45 minutes</strong> in 3 months.</li><li>Full auto-approve went from <strong>~20% of sessions</strong> among new users to <strong>&gt;40%</strong> among experienced users.</li></ul>
<p>The pattern:</p>
<ul><li>Early users approve every action.</li><li>Experienced users watch state and intervene only when something looks off.</li></ul>
<p><strong>Codegen pipelines</strong> are closer to the first mode:</p>
<ul><li>The workflow itself is the approval: merge the PR, and the pipeline runs.</li><li>Gates are static: required reviews, branch protections, manual approval jobs.</li><li>Monitoring is mostly post-hoc: you check logs and metrics after pipelines run.</li></ul>
<p><strong>Orchestrated agents</strong>, especially in coding, pull you towards the second mode:</p>
<ul><li>You want agents to run for 30-60 minutes across a messy codebase.</li><li>You don’t want to approve every file write and every test run.</li><li>You need high-level summaries and a way to step in when something smells wrong.</li></ul>
<h3>Maxxwell’s stance: the person presses enter</h3>
<p>OpenAI’s Codex safety guidance draws a line between low-risk and high-risk actions: low-risk should be frictionless, high-risk should stop for review.</p>
<p>Maxxwell takes a clear position here:</p>
<ul><li><strong>Fleet controls draft rather than act</strong>.</li><li>A control that would change the fleet writes a fully formed, unsent sentence into the composer.</li><li>It never runs the command; you press enter.</li></ul>
<p>That keeps the high-risk boundary under your finger. You talk to Maxxwell’s orchestrator seat - itself a real briefed coding-agent session - and it drafts what to tell the workers:</p>
<ul><li>&quot;Start a Claude Code session to refactor the auth module, keep tests green, limit changes to <code>auth/</code> and <code>tests/auth/</code>.&quot;</li></ul>
<p>You send it when you’re satisfied. There’s no autopilot that quietly changes the fleet without you.</p>
<h2>Visibility and context pressure</h2>
<p>Past a few agents, tokens aren’t the problem; <strong>attention</strong> is.</p>
<p>Stack Overflow’s 2025 survey says:</p>
<ul><li><strong>84%</strong> of respondents use or plan to use AI tools.</li><li><strong>51%</strong> of professional developers use them daily.</li></ul>
<p>Anthropic’s Claude Code research looked at <strong>~400,000 sessions</strong> from <strong>~235,000 people</strong>, with users averaging <strong>20 hours/week</strong> in the tool. Context and complexity were the main failure modes, especially in obscure codebases.</p>
<p>To keep a multi-agent setup sane, you need:</p>
<ul><li>A live view of context pressure per agent.</li><li>Clear state so you know which ones are productive.</li><li>A way to compact or reset when context is near exhaustion.</li></ul>
<p>Maxxwell adds a <strong>context-pressure readout with tiered warnings</strong> plus a one-click compact. It does not auto-compact or restart work - no hidden flailing - but it shows you exactly when a session is at risk of losing the plot and gives you a manual button to fix it.</p>
<h2>Comparing orchestrated agents vs codegen pipelines</h2>
<p>Here’s a direct comparison across the criteria that matter.</p>
<p>Agent orchestration wins on adaptability and oversight, while CI/codegen pipelines win on repeatability and low-variance automation.</p>
<h2>Comparison table: orchestrated agents vs codegen pipelines</h2>
<div class="tablewrap" role="region" aria-label="Table" tabindex="0"><table><thead><tr><th scope="col">Aspect</th><th scope="col">Orchestrated AI coding agents</th><th scope="col">CI / codegen pipelines</th></tr></thead><tbody><tr><td>Core model</td><td>Self-directed loops: plan-act-observe-adjust</td><td>Predefined scripts: fixed jobs/stages</td></tr><tr><td>Adaptability</td><td>High; re-plan mid-run, spawn subtasks, use tools dynamically</td><td>Low; behavior is fixed by YAML and triggers</td></tr><tr><td>Debugging</td><td>Requires orchestration visibility; multiple sessions, evolving plans</td><td>Strong; single source of truth in logs, deterministic runs</td></tr><tr><td>Human oversight</td><td>Move from action-level approvals to state-level monitoring</td><td>static approvals (reviews, manual jobs); post-hoc log checks</td></tr><tr><td>Best for</td><td>Messy, evolving tasks; exploratory refactors; cross-service changes</td><td>Repeatable tasks; build/test/deploy; scheduled maintenance</td></tr><tr><td>Context handling</td><td>Needs harnesses, compaction, persistent state across runs</td><td>Stateless per run; context defined in repo and config</td></tr><tr><td>Failure modes</td><td>Drift, quietly building the wrong thing, context exhaustion</td><td>Misconfig, env drift, flaky tests; usually visible in logs</td></tr><tr><td>Tool examples</td><td>Claude Code, Codex multi-agent workflows, Cursor-agent + orchestration</td><td>GitHub Actions, GitLab CI, Jenkins pipelines, codegen scripts</td></tr></tbody></table></div>
<h2>Practical recommendations</h2>
<p>For most teams running both agents and CI, the split looks like this:</p>
<p><strong>Use orchestrated AI coding agents when:</strong></p>
<ul><li>You’re doing large-scale refactors that cross modules or services.</li><li>Requirements are changing while you work (product feedback, incidents).</li><li>You need agents to read, understand, and modify unfamiliar code with iteration.</li></ul>
<p><strong>Use CI/codegen pipelines when:</strong></p>
<ul><li>The task is stable and repeatable: build, test, deploy.</li><li>Codegen is templated: clients from OpenAPI, scaffolding, ORM models.</li><li>You can define success as “pipeline green with known checks.”</li></ul>
<p><strong>Use an orchestration manager like Maxxwell when:</strong></p>
<ul><li>You’re already running multiple agents and feel yourself becoming the bottleneck.</li><li>You can’t tell which sessions are stuck and which are just slow.</li><li>You want a single seat that summarizes what landed, what agents decided for you, and what needs your call.</li></ul>
<p>Maxxwell runs locally - macOS, Linux, Windows desktop plus a standalone CLI - with no sign-up or server. You bring your own models (Claude, ChatGPT/Codex, Cursor-agent, or custom). For individuals, it’s free; teams pay when coordination becomes a shared pain.</p>
<h2>FAQ: orchestrated agents vs codegen pipelines</h2>
<h3>How do orchestrated AI coding agents differ from CI codegen pipelines in practice?</h3>
<p>Orchestrated agents run as <strong>interactive loops</strong> that can re-plan based on what they see in your code, tests, and tools. They’re good at messy, evolving work.</p>
<p>CI/codegen pipelines are <strong>static workflows</strong> defined in YAML, triggered by commits or schedules. They’re good at repeatable automation like build/test/deploy and templated scaffolding.</p>
<h3>When should I prefer orchestrated agents over pipelines for code generation?</h3>
<p>Prefer orchestrated agents when:</p>
<ul><li>The task is ambiguous or changing.</li><li>You need multi-step reasoning and tool use (tests, APIs, logs).</li><li>You’re working across large or unfamiliar codebases.</li></ul>
<p>Prefer pipelines when:</p>
<ul><li>The steps are known and stable.</li><li>You want deterministic behavior on every run.</li><li>You’re automating routine codegen and CI tasks.</li></ul>
<h3>How do I monitor multiple AI coding agents effectively?</h3>
<p>You need a <strong>manager-of-agents layer</strong>:</p>
<ul><li>One place that lists every session and what it’s doing.</li><li>Clear state markers: working, idle, waiting, blocked.</li><li>Access to each agent’s logs and context pressure.</li></ul>
<p>Maxxwell provides this view while keeping each worker as a real terminal session you can attach to and take over. It also gives an orchestrator seat that you talk to instead of twelve separate agents.</p>
<h3>How do I prevent AI agents from quietly building the wrong thing?</h3>
<p>You prevent drift by:</p>
<ul><li>Keeping goals and constraints explicit in the brief.</li><li>Watching agent state and summaries instead of every token.</li><li>Using a layer that <strong>drafts commands rather than acting</strong>, so you approve anything that changes the fleet.</li></ul>
<p>Maxxwell’s “person presses enter” posture ensures fleet controls write unsent commands instead of running them. You stay the author of changes.</p>
<h3>Can CI/codegen pipelines and orchestrated agents work together?</h3>
<p>Yes. A common pattern:</p>
<ul><li>Orchestrated agents handle design, refactors, and complex changes.</li><li>CI/codegen pipelines validate and ship: build, tests, deployments.</li></ul>
<p>Agents can open PRs that land into the same CI pipelines you already trust. The orchestration layer (Maxxwell or your own scripts) keeps multi-agent work visible; CI keeps production guarded.</p>]]></content:encoded>
  </item>
  <item>
    <title>Running Claude Code and Codex in parallel</title>
    <link>https://maxxwell.dev/blog/run-claude-codex-parallel</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/run-claude-codex-parallel</guid>
    <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Most people who run Claude Code or Codex seriously hit the same wall: the agents scale, your attention doesn’t.</description>
    <content:encoded><![CDATA[<p>Most people who run Claude Code or Codex seriously hit the same wall: the agents scale, your attention doesn’t.</p>
<p>You go from “this is fast” to “I am tab-switching babysitter for eight terminals” in about a week.</p>
<p>This piece compares two ways to run Claude Code and Codex in parallel using <code>git worktree</code>: manual prompt juggling vs structured orchestration with an agent manager like Maxxwell.</p>
<p>It assumes you’re already comfortable with git and running agents locally.</p>
<h2>Git worktrees are the isolation primitive</h2>
<p>Parallel agent work without isolation is how you get silent conflicts and mystery test failures.</p>
<p>Git worktrees are the shared abstraction everyone has settled on:</p>
<ul><li><code>git worktree</code> lets one repo maintain <strong>multiple checked-out working trees</strong>.</li><li>Each worktree has its own branch and filesystem path, but shares the same <code>.git</code> metadata.</li><li>Claude Code, Codex, ctx, and others all document worktrees as the safe way to run concurrent sessions.</li></ul>
<p>Basic pattern:</p>
<pre><code class="lang-bash"># In your main repo
$ git worktree add ../feature-auth feature/auth
$ git worktree add ../feature-search feature/search

# Now you have:
#   repo/              -&gt; main branch
#   feature-auth/      -&gt; feature/auth branch
#   feature-search/    -&gt; feature/search branch</code></pre>
<p>From here you can:</p>
<ul><li>Attach Claude Code to <code>feature-auth/</code> and Codex to <code>feature-search/</code>.</li><li>Run agents in parallel without them touching the same files.</li></ul>
<p>Worktrees are inherently parallel-friendly: git supports zero or more linked worktrees per repo, and each is just another directory with a branch checked out.</p>
<h2>Manual prompt juggling: simple, but attention-bound</h2>
<p>The default for most devs is manual orchestration:</p>
<ul><li>Open multiple terminals or IDE sessions.</li><li>Point each at its own worktree.</li><li>Manually prompt Claude Code or Codex in each.</li></ul>
<p>For example, using Claude Code’s CLI plus Codex in another shell:</p>
<pre><code class="lang-bash"># Session 1: Claude Code on auth worktree
$ cd ../feature-auth
$ claude-code

# Session 2: Codex on search worktree
$ cd ../feature-search
$ codex</code></pre>
<p>You then:</p>
<ul><li>Type briefs per session: “Implement OAuth2 login”, “Add type-ahead search”.</li><li>Answer questions as they come in.</li><li>Watch logs to see who is stuck.</li></ul>
<h3>Where manual control is actually fine</h3>
<p>Manual control still makes sense for smaller, supervised work:</p>
<ul><li><strong>Single feature, high risk</strong>: touching auth, billing, or critical infra where you want to see every diff.</li><li><strong>Exploratory refactors</strong>: you’re iterating on design and expect to pivot mid-stream.</li><li><strong>One-off tasks</strong>: “write this migration”, “clean up this file”.</li></ul>
<p>Anthropic’s docs call this synchronous terminal/editor work: you get fine-grained control, but burn attention the whole time. OpenAI’s guidance is similar: for most work, start with “Ask for approval”.</p>
<p>Manual is good when:</p>
<ul><li>Latency is low and tasks are short.</li><li>The main risk is correctness, not throughput.</li><li>You’re actively watching the agent and steering often.</li></ul>
<h3>The manual ceiling</h3>
<p>Manual breaks down once you try to run agents truly in parallel:</p>
<ul><li><strong>Context switching</strong>: A task-interruption study across 4,910 tasks showed contextual factors (switching project, repo, or problem) drive disruptiveness more than task details.</li><li><strong>Attention bottleneck</strong>: Google’s DORA 2025 report says 90% of devs use AI, median 2 hours/day, but Stack Overflow’s 2025 survey shows 46% distrust AI output and only 3% “highly trust” it. So you watch more, not less.</li><li><strong>Coordination tax</strong>: Cortex’s 2024 report found 58% of devs lose &gt;5 hours/week to unproductive work; gathering context and waiting on approvals are top leaks at 26% each.</li></ul>
<p>In practice, that looks like:</p>
<ul><li>Eight sessions open; you are the slowest part.</li><li>No way to see which session is stuck vs just slow.</li><li>One agent confidently building the wrong thing for 20 minutes.</li></ul>
<p>Worktrees solved concurrency for git. They did nothing for your ability to <strong>see and route</strong> what the agents are doing.</p>
<h2>Structured orchestration: one brain above many agents</h2>
<p>The industry is converging on an orchestration layer that sits above individual agents:</p>
<ul><li>Claude Code has <strong>Agent View</strong> for background sessions.</li><li>Codex surfaces <strong>subagent threads</strong> above the composer and collects their results.</li><li>Tools like The Cog, Helmor, ctx, Herd, CommandSlate all offer some version of a multi-agent IDE.</li></ul>
<p>The pattern is:</p>
<ul><li>You describe work once at the top.</li><li>A system creates and manages agent sessions, often across worktrees.</li><li>It routes tasks and reports progress back to you.</li></ul>
<p>Our pillar guide, <a href="#">“AI coding agent orchestration: the complete guide for multi-agent development”</a>, goes deep on this. Here we stay concrete on Claude Code, Codex, git worktrees, and an agent manager like Maxxwell.</p>
<h2>A concrete git worktree workflow for parallel Claude + Codex</h2>
<p>Say you want to build three features:</p>
<ul><li>Auth (Claude Code)</li><li>Search (Codex)</li><li>Analytics (either)</li></ul>
<p>Set up worktrees:</p>
<pre><code class="lang-bash">$ cd repo
$ git worktree add ../auth         feature/auth
$ git worktree add ../search       feature/search
$ git worktree add ../analytics    feature/analytics</code></pre>
<p>Launch agents:</p>
<pre><code class="lang-bash"># Auth with Claude Code
$ cd ../auth
$ claude-code

# Search with Codex
$ cd ../search
$ codex

# Analytics, your choice
$ cd ../analytics
$ claude-code   # or codex</code></pre>
<p>Now the question is how you <strong>orchestrate</strong> these three sessions.</p>
<h3>DIY orchestration with scripts and discipline</h3>
<p>One route is to build your own thin orchestration on top of this:</p>
<ul><li>A tmux layout with panes per worktree.</li><li>A shell alias to list worktrees and statuses.</li><li>A personal checklist for “what’s running where”.</li></ul>
<p>Example: crude status check via git and a convention:</p>
<pre><code class="lang-bash">$ git worktree list
repo          0123abc [main]
auth          4567def [feature/auth]
search        89ab012 [feature/search]
analytics     3456ghi [feature/analytics]</code></pre>
<p>You then rely on:</p>
<ul><li>Logs in each terminal.</li><li>Your memory for “Claude is on auth, Codex is on search”.</li></ul>
<p>This works, but every coordination decision still goes through you.</p>
<h3>Orchestration with Maxxwell: agent-of-agents</h3>
<p>Maxxwell is an agent that manages your coding agents. It does not replace Claude Code or Codex; it sits above them.</p>
<p>With Maxxwell in the same setup:</p>
<ul><li>Each Claude/Codex session is a worker, running in a <strong>real terminal</strong> attached to a worktree.</li><li>All workers appear in one window, each marked with state:<ul><li><code>working</code>, <code>idle</code>, <code>waiting on you</code>, <code>needs sign-in</code>, <code>blocked</code>, <code>done</code>, <code>dead</code>, <code>not heard from</code>, plus <code>possibly stalled</code> overlay.</li></ul></li><li>On top sits an <strong>orchestrator seat</strong>, which is itself a coding agent session started from your written brief.</li></ul>
<p>You:</p>
<ul><li>Brief the orchestrator in natural language: “Auth in <code>../auth</code>, search in <code>../search</code>, analytics in <code>../analytics</code>. Auth uses Claude Code, search uses Codex.”</li><li>Talk to it instead of twelve terminals.</li><li>Get a return report of what landed, what it decided, and what needs your call.</li></ul>
<p>Important constraints:</p>
<ul><li>Workers are your own unmodified tools (Claude Code, Codex, cursor-agent, etc.).</li><li>Sessions are just terminals; you can attach and take over mid-sentence.</li><li>Quitting Maxxwell detaches; it never kills sessions.</li><li><strong>Fleet controls draft rather than act</strong>: any control that would change the fleet writes a fully formed, unsent sentence into the composer. You stay the one who presses enter.</li></ul>
<p>Maxxwell gives you orchestration without a hidden autopilot:</p>
<ul><li>It does not automatically detect drift and re-aim sessions.</li><li>It does not automatically recycle context or restart stopped work.</li><li>It does not run periodic goal checks.</li></ul>
<p>You still decide; the system just makes that decision cheap.</p>
<h2>When automation improves throughput and reliability</h2>
<p>You don’t need structured orchestration for every task. You probably do need it once you cross three or four concurrent agents.</p>
<p>Patterns where automation helps:</p>
<ol><li><strong>Parallelizable feature work</strong><ul><li>Multiple independent branches: auth, search, analytics, emails.</li><li>Each mapped to a worktree and agent.</li><li>Claude’s Agent View and Codex’s subagents are explicitly built for this.</li></ul></li></ol>
<ol><li><strong>Team environments</strong><ul><li>Several developers running agents at once.</li><li>Coordination cost is suddenly visible.</li></ul></li></ol>
<p>In these cases, an orchestrator that:</p>
<ul><li>Knows each session’s state.</li><li>Can draft task routing among agents for you to send.</li><li>Can surface “possibly stalled” sessions.</li></ul>
<p>…gives you higher throughput than manual prompt juggling, while keeping human review in the loop.</p>
<p>Human review remains non-negotiable:</p>
<ul><li>Stack Overflow data shows a trust gap: nearly half of devs distrust AI output.</li><li>OpenAI’s permission model keeps “Ask for approval” as the default.</li></ul>
<p>An orchestrator should make review easier, not optional.</p>
<h2>How Maxxwell differs from other orchestration tools</h2>
<p>Brief landscape:</p>
<ul><li><strong>The Cog</strong>: AI-native agent orchestration IDE, can spawn teams across multiple models.</li><li><strong>Helmor</strong>: local-first IDE, runs Claude Code and Codex side-by-side across worktrees.</li><li><strong>CommandSlate</strong>: thread-centric; dispatches tasks to agents on branches and returns pushed, merge-ready work.</li><li><strong>Herd</strong>: desktop app focused on monitoring many agents and shipping in parallel.</li><li><strong>ctx</strong>: isolates concurrent worktrees and runs an agent merge queue for conflict catching.</li></ul>
<p>Maxxwell’s distinctives:</p>
<ul><li><strong>Agent-of-agents, not another copilot</strong>: it manages Claude Code, Codex, Cursor, etc.; does not compete with them.</li><li><strong>Real terminals, not wrapped sandboxes</strong>: workers are normal sessions you already trust.</li><li><strong>Drafts rather than acts</strong>: nothing changes the fleet without you pressing enter.</li><li><strong>Local, no sign-up, no server</strong>: you bring your own Claude or ChatGPT/Codex access.</li><li><strong>Sessions outlive the app</strong>: quitting detaches; it never kills work.</li></ul>
<p>If your DIY tmux scripts are mostly about keeping sessions visible and states straight, Maxxwell is essentially a turn-key version of that with an agent sitting on top.</p>
<h2>Comparison: manual vs orchestrated Claude + Codex with worktrees</h2>
<p>Here’s a condensed comparison for the same scenario: Claude Code on auth, Codex on search, analytics as a third lane.</p>
<p>Manual control is strongest for small, high-risk tasks, while structured orchestration wins once you run several agents in parallel across git worktrees.</p>
<p>Key differences:</p>
<ul><li><strong>Setup</strong><ul><li>Manual: <code>git worktree add</code> + your own tmux / terminal layout.</li><li>Orchestrated: same worktrees, plus Maxxwell or another manager that knows each session.</li></ul></li></ul>
<ul><li><strong>Visibility</strong><ul><li>Manual: per-terminal logs and your memory.</li><li>Orchestrated: one window, explicit session states, “possibly stalled” overlay.</li></ul></li></ul>
<ul><li><strong>Routing work</strong><ul><li>Manual: you decide, you prompt, you copy-paste context.</li><li>Orchestrated: you brief once; orchestrator routes subtasks to Claude vs Codex, still drafting controls for you to send.</li></ul></li></ul>
<ul><li><strong>Intervention</strong><ul><li>Manual: attach to a terminal, type.</li><li>Maxxwell: click into a worker’s real session, or send the drafted control.</li></ul></li></ul>
<ul><li><strong>Risk profile</strong><ul><li>Manual: low automation risk, high human fatigue risk.</li><li>Orchestrated: lower fatigue, plus a live view of context pressure and task status; automation risk bounded by “person presses enter”.</li></ul></li></ul>
<h2>Recommendation by use case</h2>
<p>For most teams running Claude Code and Codex in parallel with git worktrees:</p>
<ul><li><strong>Solo dev, 1-2 agents at a time</strong><ul><li>Stick with manual.</li><li>Use worktrees to isolate branches; your terminal discipline is enough.</li></ul></li></ul>
<ul><li><strong>Power user, 3-6 agents in flight</strong><ul><li>Move to structured orchestration.</li><li>Claude’s Agent View and Codex subagents are a start.</li><li>Add Maxxwell when you want one place to see all sessions and talk to an orchestrator instead of twelve terminals.</li></ul></li></ul>
<ul><li><strong>Team with several people running agents</strong><ul><li>Use git worktrees per feature and an orchestration surface.</li><li>Your DIY tmux setup will eventually turn into a dashboard; at that point, Maxxwell or a similar tool is cheaper than maintaining your own.</li></ul></li></ul>
<p>If your pain sounds like “I have eight sessions open and I am the slowest part of this”, you’re past the manual ceiling. At that point, tying Claude Code and Codex to worktrees and letting an orchestrator manage them is the more stable path.</p>
<h2>FAQ</h2>
<h3>How do I run Claude Code and Codex in parallel safely?</h3>
<p>Use <code>git worktree</code> to create one worktree per independent feature or task. Attach Claude Code to one worktree and Codex to another. Avoid sharing a single working tree between agents to prevent file collisions.</p>
<h3>When is manual control over agents enough?</h3>
<p>Manual control is enough when you run one or two agents at a time on short, high-risk tasks. You’re watching outputs closely, and coordination overhead is low. For bigger parallel feature work, the attention cost grows faster than the benefit.</p>
<h3>What does an orchestration layer actually do?</h3>
<p>It:</p>
<ul><li>Tracks each agent session, often per worktree.</li><li>Shows session state (working, idle, blocked, stalled, etc.).</li><li>Helps route tasks between agents based on a higher-level brief.</li><li>Centralizes reporting: what landed, what’s pending, what needs your decision.</li></ul>
<p>Maxxwell does this while keeping agents in real terminals you can take over.</p>
<h3>Does Maxxwell replace Claude Code or Codex?</h3>
<p>No. Maxxwell is an agent that manages your coding agents. Claude Code, Codex, Cursor, and similar tools remain your workers. Maxxwell owns the layer above them: goals, visibility, and the handful of decisions that need a person.</p>
<h3>How do I integrate orchestration with CI and main?</h3>
<p>Keep each agent on its own worktree and branch. Land changes via normal git hygiene:</p>
<ul><li>Run tests in each worktree.</li><li>Review diffs manually.</li><li>Merge through your usual PR flow.</li></ul>
<p>Tools like ctx add an agent merge queue; Maxxwell focuses on making the state of each session visible while leaving CI and merges in your existing pipeline.</p>]]></content:encoded>
  </item>
  <item>
    <title>Running Claude Code agents in parallel</title>
    <link>https://maxxwell.dev/blog/parallel-agents-need-worktrees</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/parallel-agents-need-worktrees</guid>
    <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Why the first thing that breaks when you run several coding agents on one repo is the working directory, and what git worktrees fix about it.</description>
    <content:encoded><![CDATA[<p>The first time you run two coding agents on the same repository at once, they work. The second time, one of them stages the other's half-finished edit and commits it. Nothing warned you, because from git's point of view nothing unusual happened: two processes wrote to one working tree, and the last write won.</p>
<p>This is the problem you hit before any of the interesting ones. It has a boring fix.</p>
<h2>One checkout is a shared mutable variable</h2>
<p>A git repository has one working directory and one index. Every process that runs <code>git add</code> in it is writing to the same place. Agents make this worse than humans do, because they are fast and because they do not look up from what they are doing to notice that <code>src/api.ts</code> changed underneath them.</p>
<p>Concretely, what goes wrong:</p>
<ul><li>Two agents edit different files, and one commits both sets of changes because <code>git add -A</code> does not know which edits were its own.</li><li>One agent runs <code>git checkout</code> to inspect another branch and silently moves the other agent's feet.</li><li>A test run started by one agent reads a file another is midway through writing, and fails for a reason that will never reproduce.</li></ul>
<p>The last one is the expensive kind. It looks like a flaky test, so it gets retried, and the retry passes, so nobody investigates the actual cause.</p>
<h2>Worktrees give each agent its own floor</h2>
<p><code>git worktree</code> creates a second working directory backed by the same object store. Each has its own checked-out branch, its own index, and its own files on disk. Commits land in one shared history, so nothing is fragmented, but no two agents share a filesystem.</p>
<pre><code>git worktree add ../work/feature-a -b feature-a origin/main
git worktree add ../work/feature-b -b feature-b origin/main</code></pre>
<p>Point one agent at each directory and the entire class of problem above stops existing. There is no coordination protocol to get right, no lockfile, no convention everyone has to remember. The isolation is structural.</p>
<p>Three things are worth knowing before you lean on this:</p>
<ol><li><strong>Put worktrees outside the repository.</strong> A worktree nested inside the checkout will be picked up by anything that walks the tree — build outputs, deploy staging, <code>rsync</code>. Keep them in a sibling directory.</li><li><strong>Each worktree needs its own dependencies.</strong> <code>node_modules</code> is not shared, and a fresh worktree will fail with command-not-found until you install or symlink one.</li><li><strong>Removing a worktree destroys uncommitted work.</strong> Remove it after the work is merged, not after it is written.</li></ol>
<h2>What is still hard</h2>
<p>Isolation solves collision. It does not solve the two problems underneath it.</p>
<p>The first is merge pressure. Agents working in parallel produce branches that diverge from each other as fast as they diverge from main, and a branch that stops merging from the remote stops being work in progress and becomes a fork. Merging often is cheaper than resolving once at the end, and it is the kind of thing that has to be scheduled rather than remembered.</p>
<p>The second is attention. Ten isolated agents produce ten streams of output, and most of what they emit does not need you. The useful signal is narrow: which ones are blocked, which are waiting on a decision only a person can make, and which have quietly stopped. Reading ten terminals to find that out costs more than the parallelism saves.</p>
<p>That second problem is the one we build <a href="/">Maxxwell</a> for — it runs a fleet of coding agents and brings back a single page of what actually needs a person. The worktree part, though, you can adopt this afternoon with nothing but git.</p>]]></content:encoded>
  </item>
  <item>
    <title>Single agents vs orchestrated fleets</title>
    <link>https://maxxwell.dev/blog/ai-coding-agents-vs-single-agent</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/ai-coding-agents-vs-single-agent</guid>
    <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Past one or two coding agents, the problem stops being code generation and starts being you babysitting terminals.</description>
    <content:encoded><![CDATA[<p>Past one or two coding agents, the problem stops being code generation and starts being you babysitting terminals.</p>
<p>You get speed from Copilot, Cursor, Claude Code, or Codex. You lose it tabbing between eight half-finished sessions, re-explaining context, and cleaning up work that drifted.</p>
<p>This piece compares single chat agents vs orchestrated multi-agent setups across speed, quality, and control - and gives you a sane rule for when to stay simple.</p>
<p>See also the deeper pillar: <strong><a href="/ai-coding-agent-orchestration-guide">AI coding agent orchestration: the complete guide for multi-agent development</a></strong>.</p>
<h2>The core distinction: one seat vs many seats</h2>
<p>Single agents:</p>
<ul><li>One chat box in an IDE (Copilot, Cursor, Claude Code, bare ChatGPT/Codex).</li><li>You ask, it responds, maybe calls tools (tests, edits, search).</li><li>All context and coordination live in one session, one mental model.</li></ul>
<p>Orchestrated multi-agent setups:</p>
<ul><li>Multiple &quot;worker&quot; agents running in parallel, each on a subtask.</li><li>A conductor/orchestrator manages goals, splits work, aggregates results.</li><li>You supervise the system instead of micro-driving each agent.</li></ul>
<p>Anthropic’s own multi-agent research system is explicit: linear one-shot pipelines &quot;cannot handle&quot; open-ended research problems because the path matters and you need breadth-first exploration.</p>
<p>But a recent 2025 MAS vs single-agent study on arXiv found that a strong single agent matches many homogeneous multi-agent workflows, and MAS benefits shrink as models get better.</p>
<p>So the trade-off is real: orchestration adds overhead. You only win if the work demands it.</p>
<h2>When single chat agents are the right tool</h2>
<p>Single agents win when the task is bounded, local, and mostly linear.</p>
<h3>Bounded tasks, tight loops</h3>
<p>Use a single agent when:</p>
<ul><li>You’re building one endpoint, feature, or script.</li><li>The task fits in your IDE context window comfortably.</li><li>The happy path is known and doesn’t branch much.</li></ul>
<p>Microsoft’s Copilot RCT showed developers were <strong>55.8% faster</strong> on an HTTP server task using a single agent. GitHub and Accenture found up to <strong>55% faster</strong> coding, with <strong>85%</strong> of devs more confident in code quality.</p>
<p>Those numbers are for single-seat pair programming: you and one agent in a tight loop.</p>
<h3>Low coordination cost</h3>
<p>Single agents are better when:</p>
<ul><li>You don’t have parallel workstreams on the same repo.</li><li>You aren’t juggling different branches or experiments.</li><li>You can keep the whole plan in your head.</li></ul>
<p>Under those conditions, the orchestrator is just an extra moving part. You get more done by typing than by designing an agent workflow.</p>
<h3>Strong models flatten the benefit curve</h3>
<p>The MAS vs single-agent paper is blunt: </p>
<ul><li>MAS complexity and runtime cost are higher.</li><li>A hybrid approach improved accuracy <strong>1.1-12%</strong> but cut deployment costs up to <strong>20%</strong>.</li><li>Benefits shrink as the underlying LLM gets better.</li></ul>
<p>If you’re on frontier models (Claude 3.5, GPT-4.x, etc.) and your work is straightforward, the marginal gain from orchestration is often noise compared to simply writing a clearer spec for one agent.</p>
<h2>When orchestrated multi-agents win</h2>
<p>Multi-agent setups win when the work is parallelizable, long-running, or path-dependent.</p>
<h3>Open-ended, research-heavy tasks</h3>
<p>Anthropic’s multi-agent research system is a good reference:</p>
<ul><li>A lead agent holds the goal and delegates to subagents.</li><li>Subagents run independent trajectories (experiments, research passes).</li><li>The lead agent compresses and integrates findings.</li></ul>
<p>Use this shape when:</p>
<ul><li>You’re exploring several architectures or design directions at once.</li><li>You need breadth-first search over APIs, libraries, or prior art.</li><li>The outcome depends on comparing several candidate approaches.</li></ul>
<p>A single chat box will always serialize this work. Orchestrated agents can search in parallel and report back.</p>
<h3>Large refactors and multi-module changes</h3>
<p>Orchestration pays off when you’re touching many surfaces:</p>
<ul><li>Breaking up a monolith into services.</li><li>Migrating a whole feature set to a new framework.</li><li>Applying cross-cutting changes (logging, auth, tracing) across many modules.</li></ul>
<p>A reasonable pattern:</p>
<ul><li>One agent owns the migration plan and checklist.</li><li>Several agents own individual services or packages.</li><li>Another agent owns test scaffolding and CI updates.</li></ul>
<p>All of that can happen concurrently. You supervise the plan instead of stepping every file by hand.</p>
<h3>Long-running work with multiple sessions</h3>
<p>Anthropic’s long-running agents writeup points out a real fragility:</p>
<ul><li>Agents over-extend (trying to do too much per step) or prematurely declare tasks done.</li><li>They struggle across many context windows without clear artifacts.</li></ul>
<p>Multi-agent orchestration helps here if:</p>
<ul><li>Each subagent owns a narrow slice and leaves concrete artifacts (docs, PRs, test reports).</li><li>A conductor tracks state across sessions and surfaces what’s landed vs still speculative.</li></ul>
<p>You still need discipline in how you spec and review, but the system takes over the bookkeeping.</p>
<h2>Speed: parallelism vs overhead</h2>
<p>Speed breaks down into two questions:</p>
<ol><li>How quickly can an individual agent produce useful code?</li><li>How much time do you spend coordinating agents?</li></ol>
<p>Single agents are faster per interaction. Orchestrated systems can be faster overall <strong>if</strong> coordination time doesn’t dominate.</p>
<h3>Single chat agents: low latency, high micro-friction</h3>
<p>Pros:</p>
<ul><li>Minimal upfront design: describe task, get code.</li><li>Proven speed gains on bounded tasks (the 55-56% numbers above).</li><li>Everything happens where you already work (IDE, terminal).</li></ul>
<p>Cons:</p>
<ul><li>You become the router for every subtask.</li><li>Context switches between sessions and repos stack up.</li><li>You manually serialize what could be parallel work.</li></ul>
<h3>Orchestrated agents: parallel throughput, orchestration cost</h3>
<p>Pros:</p>
<ul><li>Parallel execution over multiple branches or modules.</li><li>The conductor tracks tasks and frees you from micro-routing.</li><li>Better fit for teams with many agents running at once.</li></ul>
<p>Cons:</p>
<ul><li>You pay setup cost: goals, roles, review surfaces.</li><li>Poorly defined workflows can be slower than a single agent.</li><li>Infrastructure noise and agent fragility still exist.</li></ul>
<p>Anthropic’s infrastructure noise study measured a <strong>6-point swing</strong> on Terminal-Bench 2.0 between setups, with up to <strong>6%</strong> of tasks failing due to pod errors. Multiply that by many agents and orchestration quickly becomes an SRE problem.</p>
<p>In short: the single-seat speed gains reported by Microsoft's Copilot RCT and GitHub's enterprise study apply to bounded tasks, while the accuracy gains reported in the MAS vs single-agent paper come at the cost of more complexity and coordination.</p>
<h2>Quality: separation of concerns vs drift</h2>
<p>Quality is not just &quot;does the code compile&quot;; it’s:</p>
<ul><li>Local correctness (tests, types, contracts).</li><li>Architectural fit (patterns, boundaries, performance).</li><li>Delivery stability (DORA’s word for &quot;we don’t ship chaos&quot;).</li></ul>
<h3>Single agents: strong local quality, weak systemic guardrails</h3>
<p>GitHub’s enterprise study:</p>
<ul><li><strong>85%</strong> of devs said Copilot made them more confident in code quality.</li><li><strong>90%</strong> felt more fulfilled.</li></ul>
<p>The DORA 2025 report is the counterweight:</p>
<ul><li><strong>90%</strong> of respondents use AI at work.</li><li><strong>80%+</strong> say it increased productivity.</li><li>But <strong>30%</strong> report little or no trust in AI-generated code.</li><li>AI adoption improves throughput <strong>and increases delivery instability</strong>.</li></ul>
<p>Single agents are great at making code look right locally. They don’t enforce cross-cutting constraints unless you build that into your prompts, tools, and CI.</p>
<h3>Orchestrated agents: systemic quality, more ways to go wrong</h3>
<p>Multi-agent setups can encode separation of concerns:</p>
<ul><li>One agent owns tests and coverage.</li><li>One owns architecture and reviews diffs for layering violations.</li><li>Others own implementation.</li></ul>
<p>You can also:</p>
<ul><li>Run dedicated agents on backlog cleanup, flaky test triage, or performance regression hunts.</li><li>Keep the review gate in a single orchestrator seat or in human code review.</li></ul>
<p>The MAS vs single-agent study’s hybrid approach is basically this idea: orchestrate where it matters, keep the rest simple. Accuracy went up <strong>1.1-12%</strong>, deployment costs down <strong>up to 20%</strong>.</p>
<p>But orchestration adds failure modes:</p>
<ul><li>Agents contradict each other.</li><li>Drift in one lane is hard to see without good telemetry.</li><li>Aggregation agents can mis-summarize or over-compress context.</li></ul>
<p>Any orchestration platform that hides these trade-offs is lying to you.</p>
<h2>Control: approvals, visibility, and &quot;who presses enter&quot;</h2>
<p>The DORA report is clear: AI is an amplifier, not a substitute for a good delivery system. Teams that do well have:</p>
<ul><li>Strong internal platforms.</li><li>Clear workflows and approvals.</li><li>Good alignment on what &quot;done&quot; means.</li></ul>
<h3>Single chat agents: direct control, poor fleet visibility</h3>
<p>Pros:</p>
<ul><li>You see every suggestion and decide what lands.</li><li>IDE integration makes diffs and tests immediate.</li></ul>
<p>Cons:</p>
<ul><li>No central view of &quot;what are all my agents doing&quot;.</li><li>No status across sessions: stuck vs idle vs quietly building the wrong thing.</li></ul>
<p>If you’re running one or two agents, that’s fine. At eight sessions you start losing the plot.</p>
<h3>Orchestrated setups: control surfaces for fleets</h3>
<p>Modern orchestration platforms - OpenAI’s Codex agents, GitHub Copilot Fleet and cloud agents, Anthropic’s subagent harnesses, local tools like Helmor, ctx, and Maxxwell - all converge on the same primitives:</p>
<ul><li>Separate worktrees / branches per agent.</li><li>Approval gates for risky actions (running migrations, touching prod).</li><li>Telemetry and status per session.</li></ul>
<p>This is where <strong>Maxxwell by Rindler</strong> sits.</p>
<p>Maxxwell is not another coding agent; it is the agent that manages the ones you already run:</p>
<ul><li>Each worker is a real terminal session: Claude, Codex, Cursor-agent, your own scripts.</li><li>All sessions appear in one window, each with a readable state: working, idle, waiting on you, needs sign-in, blocked, done, dead, not heard from, plus a &quot;possibly stalled&quot; overlay.</li><li>An orchestrator seat is itself a briefed coding-agent session.</li></ul>
<p>You talk to it instead of to twelve terminals.</p>
<p>The distinctive piece: <strong>fleet controls draft rather than act</strong>. Any control that would change the fleet writes a fully formed, unsent sentence into the composer. Only you press enter.</p>
<p>Mechanically, that solves two control problems:</p>
<ul><li>No background agent silently mutates your repo.</li><li>You can see and edit orchestration intents before they hit workers.</li></ul>
<p>Sessions outlive the app: quitting detaches, it never kills. It runs locally, with your own keys and subscriptions.</p>
<h2>Comparison table: single agents vs orchestrated setups</h2>
<div class="tablewrap" role="region" aria-label="Table" tabindex="0"><table><thead><tr><th scope="col">Dimension</th><th scope="col">Single chat agent (Copilot, Cursor, Claude Code, etc.)</th><th scope="col">Orchestrated multi-agents (Codex agents, Copilot Fleet, Maxxwell, etc.)</th></tr></thead><tbody><tr><td>Task shape</td><td>Bounded, linear, local features</td><td>Open-ended, parallelizable, multi-module, long-running</td></tr><tr><td>Speed per task</td><td>Very high; RCTs show ~55% faster on controlled coding tasks</td><td>High when parallelism dominates; overhead when workflows are small or ill-defined</td></tr><tr><td>Setup overhead</td><td>Low; describe task, iterate</td><td>Medium-high; define goals, roles, workflows, approvals</td></tr><tr><td>Coordination cost</td><td>You route and context-switch manually</td><td>Conductor routes work; coordination surfaces move into the platform</td></tr><tr><td>Local code quality</td><td>Strong; agents good at local correctness</td><td>Strong; plus ability to assign dedicated test/review agents</td></tr><tr><td>Systemic quality</td><td>Depends on your CI and discipline</td><td>Easier to encode separation of concerns; more failure modes if orchestration is sloppy</td></tr><tr><td>Fleet visibility</td><td>Weak; no global view of sessions</td><td>Strong; per-session state and telemetry, often centralized</td></tr><tr><td>Control over actions</td><td>Direct; you accept / reject suggestions</td><td>Depends on platform; good ones keep approvals and draft-before-act (Maxxwell)</td></tr><tr><td>Best for individuals</td><td>One or two agents on a personal repo</td><td>Several agents across projects; when &quot;I am the bottleneck&quot; is literally true</td></tr><tr><td>Best for teams</td><td>Small teams, low AI coordination cost</td><td>Teams with many agents at once and visible coordination overhead</td></tr></tbody></table></div>
<h2>When to stay simple and when to orchestrate</h2>
<p>Use this as a default rule:</p>
<p><strong>Stay single-agent</strong> when:</p>
<ul><li>The task is a feature, script, or migration that fits in a week.</li><li>You’re the only one running agents on the repo.</li><li>You rarely have more than 2-3 agent sessions at once.</li></ul>
<p><strong>Move to orchestration</strong> when:</p>
<ul><li>You regularly have 4+ agent sessions open.</li><li>You find yourself saying &quot;I am the slowest part of this&quot;.</li><li>You cannot tell which sessions are stuck, which are idle, and which are building the wrong thing.</li><li>Several people on the team are running agents concurrently and stepping on each other.</li></ul>
<p>If you do move:</p>
<ul><li>Pick a platform that works with your existing agents rather than replacing them.</li><li>Keep approvals and &quot;person presses enter&quot; as a hard constraint.</li><li>Treat orchestration as part of your platform engineering work, not a toy.</li></ul>
<p>That’s exactly where Maxxwell is designed to sit: orchestrating your existing Claude / Codex / Cursor agents, showing you the fleet, and drafting actions without ever acting without you.</p>
<h2>FAQ: common questions on agent orchestration</h2>
<h3>Do multi-agent systems always beat single agents?</h3>
<p>No. The MAS vs single-agent study found that a strong single-agent baseline matches many homogeneous multi-agent workflows, and MAS benefits shrink as LLMs get better. Multi-agent systems help when the task is parallelizable, long-running, or path-dependent; otherwise they add complexity for little gain.</p>
<h3>When should my team adopt an orchestration platform like Maxxwell instead of writing tmux scripts?</h3>
<p>If you already manage well with tmux panes and shell aliases, keep going. You should look at something like Maxxwell when:</p>
<ul><li>You’re beyond 4-5 sessions and cannot see which is stuck.</li><li>Multiple developers are running agents and stepping on each other’s work.</li><li>You want per-session state, centralized visibility, and an orchestrator seat you can brief in natural language.</li></ul>
<p>Maxxwell’s difference vs scripts is that workers are still real terminals you can attach to, but status, orchestration, and draft-before-act controls move into one window.</p>
<h3>Does orchestration fix agent drift automatically?</h3>
<p>No, and you shouldn’t trust a system that claims that. Anthropic’s own long-running agent research calls out drift and false &quot;done&quot; states as open problems. Maxxwell gives you visibility (state per session, context pressure readouts, &quot;possibly stalled&quot; overlays) and an orchestrator seat you can ask to draft a re-aiming message, but <strong>you</strong> decide when to change direction and press enter. It does not auto-correct drift, auto-compact context, restart stopped work, or run goal checks on a timer.</p>
<h3>How do orchestrated agents affect delivery stability?</h3>
<p>DORA’s 2025 report says AI improves throughput but increases delivery instability. Orchestrated agents magnify both effects.</p>
<p>If you:</p>
<ul><li>Encode approvals and review gates properly.</li><li>Keep automated actions in sandboxes and branches.</li><li>Treat orchestration as part of your internal platform.</li></ul>
<p>You can keep stability while gaining throughput. If you let agents push directly to main without guardrails, instability will spike.</p>
<h3>Is local orchestration actually worth it, or should we just use cloud agent fleets?</h3>
<p>Cloud fleets (OpenAI Codex agents, GitHub Copilot cloud agents) are powerful, especially if your org already has governance wired into that platform.</p>
<p>Local tools like Maxxwell, Helmor, ctx, Addy, Acepe, or Alera are worth it when:</p>
<ul><li>You care that sessions are real terminals you can attach to.</li><li>You want work to outlive the app without depending on vendor infrastructure.</li><li>You prefer &quot;bring your own model key&quot; and local execution for privacy or compliance.</li></ul>
<p>The right answer is usually: single agents plus a local orchestrator once your attention, not tokens, becomes the bottleneck.</p>]]></content:encoded>
  </item>
  <item>
    <title>IDE plugins vs. agent orchestration layers</title>
    <link>https://maxxwell.dev/blog/agent-orchestration-vs-ide-plugins</link>
    <guid isPermaLink="true">https://maxxwell.dev/blog/agent-orchestration-vs-ide-plugins</guid>
    <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
    <dc:creator>Michael Serrano</dc:creator>
    <description>Most teams already run AI coding tools. Stack Overflow’s 2025 survey says 51% of professional developers use AI daily, and JetBrains reports 85% regularly use.</description>
    <content:encoded><![CDATA[<h2>The real decision: where does control live?</h2>
<p>Most teams already run AI coding tools. Stack Overflow’s 2025 survey says <strong>51% of professional developers use AI daily</strong>, and JetBrains reports <strong>85%</strong> regularly use AI for development.</p>
<p>The bottleneck isn’t “do we use AI?” anymore. It’s <strong>how we control multiple agents without becoming the scheduler, debugger, and traffic cop for all of them</strong>.</p>
<p>The choice is between:</p>
<ul><li><strong>IDE-native assistants</strong> (Copilot, Cursor, JetBrains AI Assistant) that add agent mode inside your editor.</li><li><strong>Dedicated orchestration frameworks</strong> (OpenHands, ctx, Warp’s agent workflows, Maxxwell) that sit above your tools and manage multiple sessions.</li></ul>
<p>This piece compares those two control layers: observability, scalability, and developer experience for individuals and teams. For deeper patterns and architectures, see the pillar guide: <strong>“AI coding agent orchestration: the complete guide for multi-agent development.”</strong></p>
<hr class="rule">
<h2>What counts as a control layer in 2026</h2>
<p>Two categories are converging, but they start from different places.</p>
<h3>IDE-native AI plugins</h3>
<p>Examples:</p>
<ul><li>GitHub Copilot agent mode in VS Code / JetBrains IDEs</li><li>Cursor IDE agents and subagents</li><li>JetBrains AI Assistant</li></ul>
<p>Common traits:</p>
<ul><li>Run <strong>inside the editor</strong>.</li><li>Strong <strong>file context</strong> and inline edits.</li><li>Agent modes that can <strong>read files, run tests, call tools</strong>.</li><li>Increasingly: <strong>session lists</strong>, plans, side panels, basic orchestration.</li></ul>
<p>These are best when you mostly want one or a few agents <strong>embedded directly in code editing</strong>.</p>
<h3>Dedicated orchestration frameworks</h3>
<p>Examples:</p>
<ul><li><strong>OpenHands</strong> CLI / headless agent runs</li><li><strong>ctx</strong> (containerized workspaces + unified transcripts + merge queue)</li><li>Warp’s <strong>agent workflows</strong> with suggested worktrees and branch ownership</li><li><strong>Maxxwell by Rindler</strong> (agent that manages your other coding agents, local desktop + CLI)</li></ul>
<p>Common traits:</p>
<ul><li>Live <strong>terminal / workspace sessions</strong>, often isolated via branches or containers.</li><li>One place to see <strong>all agents, logs, tool calls, and diffs</strong>.</li><li>Explicit <strong>branch-and-merge workflows</strong> and repeatable runs.</li><li>Often <strong>model-agnostic</strong> and local-first: bring your own keys.</li></ul>
<p>These are best when you’re running <strong>multiple workers with longer-horizon tasks</strong>, or coordinating across a team.</p>
<hr class="rule">
<h2>Criteria that actually matter</h2>
<p>Most marketing copy sounds the same. Underneath, three dimensions decide whether you move faster or just add friction.</p>
<ol><li><strong>Observability</strong> - can you see what each agent is doing, and whether it’s stuck?</li><li><strong>Scalability</strong> - how many concurrent sessions can you handle before your attention collapses?</li><li><strong>Developer experience</strong> - does this fit your workflow and still let you stay in control?</li></ol>
<p>We’ll walk those three across IDE plugins vs orchestration frameworks.</p>
<hr class="rule">
<h2>Observability: “which of these is stuck?”</h2>
<p>METR’s 2025 RCT is blunt: experienced devs took <strong>19% longer</strong> with AI tools on real tasks, even though they believed AI made them faster. The gap came from human coordination overhead, not token limits.</p>
<p>Visibility is now a product feature, not a nice-to-have.</p>
<h3>Observability in IDE plugins</h3>
<p>Strengths:</p>
<ul><li>Good <strong>local transparency</strong>: Copilot and Cursor show tool calls, diffs, and test runs inside the editor.</li><li>You see <strong>inline changes</strong> immediately.</li><li>Some agent modes expose <strong>plans and checkpoints</strong>.</li></ul>
<p>Limits:</p>
<ul><li>Hard to see <strong>more than a handful of sessions</strong> at once.</li><li>Status is often implicit: an agent that hasn’t answered in a while looks the same as one still thinking.</li><li>Multi-repo work gets fragmented across windows / projects.</li></ul>
<p>This works well when your world is <strong>“one repo, one editor, a few concurrent tasks.”</strong></p>
<h3>Observability in orchestration frameworks</h3>
<p>Strengths:</p>
<ul><li><strong>Unified view</strong> of many sessions: each lane shows what’s running and where.</li><li>Clear session states like &quot;working&quot;, &quot;waiting&quot;, &quot;blocked&quot;, &quot;done&quot;.</li><li>Tools like ctx and OpenHands expose <strong>full transcripts plus filesystem / git changes</strong>.</li><li>Warp recommends explicit <strong>notifications and remote inspection</strong> for its agent workflows.</li></ul>
<p>Maxxwell leans hard into this:</p>
<ul><li>Every session sits in one window with a readable state, so you can tell at a glance what is running, what is waiting on you, and what has gone quiet.</li><li>There is also a live context-pressure readout with tiered warnings and a one-click compact.</li></ul>
<p>Limits:</p>
<ul><li>More <strong>surface area</strong>: a separate app or CLI to watch.</li><li>You add another layer to your mental model.</li></ul>
<p>If you already catch yourself saying “I cannot tell which of these is stuck and which is just slow,” the unified view is not a luxury; it’s the missing control plane.</p>
<hr class="rule">
<h2>Scalability: parallelism that doesn’t melt your brain</h2>
<p>Carnegie Mellon’s CAID work shows manager/worker setups with task planning, worktrees, and merge-based integration improved accuracy by <strong>26.7% absolute</strong> on PaperBench. The pattern works: <strong>parallel agents plus centralized delegation</strong>.</p>
<p>But human attention doesn’t scale linearly.</p>
<h3>Scalability inside IDE plugins</h3>
<p>Strengths:</p>
<ul><li>Quick to spin up: ask Copilot/Cursor/JetBrains to run a multi-step task and you’re off.</li><li>Cursor’s subagents and GitHub’s multi-session/plan modes support <strong>some parallel work</strong>.</li></ul>
<p>Limits:</p>
<ul><li>Parallelism is scoped to a single editor environment.</li><li>Harder to coordinate multiple repos, services, and terminals.</li><li>Scaling beyond 3-4 serious agent tasks per person becomes a mess of tabs and panes.</li></ul>
<p>If your workload is mostly <strong>one codebase, a few threads, finish before lunch</strong>, the IDE layer scales enough.</p>
<h3>Scalability in orchestration frameworks</h3>
<p>Strengths:</p>
<ul><li>Built around <strong>multiple long-lived sessions</strong>.</li><li>Use <strong>branches, worktrees, or containers</strong> to isolate each worker.</li><li>Orchestrators act as a <strong>manager</strong>: you give goals and watch progress.</li></ul>
<p>Concrete behaviors:</p>
<ul><li>OpenHands runs agents headless with clear logs of what ran, where, and what changed.</li><li>ctx uses <strong>containerized workspaces + agent merge queues</strong> - ideal for many workers.</li><li>GitHub Copilot app runs sessions in isolated worktrees with remote control.</li><li>Maxxwell starts a briefed <strong>orchestrator seat</strong> (itself a coding-agent session) that:<ul><li>Sees fleet state.</li><li>Delegates work to your chosen workers (Claude, Codex, Cursor agents, etc.).</li><li>Brings back only the decisions that need a person.</li></ul></li></ul>
<p>Limits:</p>
<ul><li>You need to think in <strong>pipelines and roles</strong>: orchestrator vs workers.</li><li>For truly massive fan-out, you may need more infra (containers, remote execution).</li></ul>
<p>If several people on your team are now running agents in parallel and stepping on each other, orchestration frameworks scale where IDEs just add more panes.</p>
<hr class="rule">
<h2>Developer experience: control vs automation</h2>
<p>JetBrains’ 2025 research is clear: devs are happy giving AI <strong>repetitive work</strong>, but want control of <strong>debugging and application logic</strong>. People want leverage without silently breaking main.</p>
<h3>DX with IDE plugins</h3>
<p>Strengths:</p>
<ul><li>Low friction: you already live in the editor.</li><li>All the familiar affordances: inline suggestions, quick fixes, tooltips.</li><li>Easy to adopt for <strong>single-dev workflows</strong>.</li></ul>
<p>Limits:</p>
<ul><li>Agent actions can be more tightly coupled to the IDE - less separation between &quot;plan&quot; and &quot;apply&quot;.</li><li>Harder to reason about <strong>agent impact across multiple tools</strong> (terminal, CI, DB, etc.).</li></ul>
<p>For solo work and small feature deliveries, this feels natural: the IDE is the cockpit.</p>
<h3>DX with orchestration frameworks</h3>
<p>Strengths:</p>
<ul><li>Clear separation between <strong>control layer</strong> and <strong>workers</strong>.</li><li>Often <strong>model-agnostic</strong>: plug in Claude, Copilot, local models, whatever.</li><li>Better fit if you already use <strong>tmux, multiple terminals, and scripts</strong>.</li></ul>
<p>OpenHands, ctx and Warp lean into <strong>repeatability and inspection</strong>:</p>
<ul><li>Everything is inspectable: transcripts, commands, diffs.</li><li>Workflows are explicit: run agent in a workspace, review, then merge.</li></ul>
<p>Maxxwell takes a particular stance on human control:</p>
<ul><li>Workers are <strong>your unmodified tools</strong>: real terminal sessions running Claude, Codex, Cursor-agent.</li><li>You can attach to any session and take over.</li><li>Fleet controls <strong>draft rather than act</strong>:<ul><li>A control that would change the fleet writes a fully formed, unsent command into the composer.</li><li>Nothing runs until <strong>you press Enter</strong>.</li></ul></li><li>Sessions <strong>outlive the app</strong>: quitting detaches, it never kills. Closing your laptop isn’t a decision to throw away an hour of agent work.</li></ul>
<p>Limits:</p>
<ul><li>One more UI / CLI to learn.</li><li>Less attractive if you only ever run a single agent at a time.</li></ul>
<p>If you think in pipelines and want to keep owning tests, review, and merge, orchestration frameworks generally align better with your mental model than IDE magic.</p>
<hr class="rule">
<h2>Comparison table</h2>
<p>Here’s a condensed view of IDE plugins vs orchestration frameworks.</p>
<div class="tablewrap" role="region" aria-label="Table" tabindex="0"><table><thead><tr><th scope="col">Dimension</th><th scope="col">IDE-native assistants (Copilot, Cursor, JetBrains)</th><th scope="col">Orchestration frameworks (OpenHands, ctx, Warp, Maxxwell)</th></tr></thead><tbody><tr><td>Primary context</td><td>Inside the editor, file-centric</td><td>Above tools, session-centric across terminals/workspaces</td></tr><tr><td>Observability</td><td>Strong per-session visibility, weak fleet view</td><td>Unified multi-session dashboard, explicit states</td></tr><tr><td>Scalability</td><td>Good for 1-3 parallel tasks per dev</td><td>Built for many sessions, branches/worktrees, containers</td></tr><tr><td>DX fit</td><td>Great for single-repo, solo dev loops</td><td>Great for multi-repo, multi-agent, team workflows</td></tr><tr><td>Autonomy style</td><td>Inline actions, editor-driven</td><td>Manager/worker patterns, explicit branch-and-merge</td></tr><tr><td>Model choice</td><td>Tied to IDE ecosystem</td><td>Usually model-agnostic, bring your own keys</td></tr><tr><td>Repeatability</td><td>Strong in-editor, weaker across tools</td><td>Strong via transcripts, workspaces, merge queues</td></tr><tr><td>Team adoption</td><td>Easy per-dev, hard to coordinate across many</td><td>Designed for shared visibility and coordination</td></tr></tbody></table></div>
<hr class="rule">
<h2>When to stick with the IDE, when to add a framework</h2>
<h3>Stay with IDE plugins if:</h3>
<ul><li>You’re mostly a <strong>single-agent, single-repo</strong> developer.</li><li>You use AI for <strong>local edits, refactors, and short tasks</strong>.</li><li>You rarely have more than 2-3 concurrent agent threads.</li></ul>
<p>In that world, Copilot, Cursor and JetBrains AI Assistant already give you what you need. An extra control plane would be ceremony.</p>
<h3>Add an orchestration framework if:</h3>
<ul><li>You’re saying things like:<ul><li>“I have eight sessions open and <strong>I am the slowest part of this</strong>.”</li><li>“I <strong>cannot tell which</strong> of these is stuck and which is just slow.”</li></ul></li><li>Several people on your team are running agents at once.</li><li>You care about <strong>isolated worktrees, clear logs, and explicit handoff/merge</strong>.</li></ul>
<p>Pick your flavor:</p>
<ul><li>Use <strong>OpenHands</strong> or <strong>ctx</strong> if you want CLI/headless runs, containerized workspaces, and merge queues.</li><li>Use the <strong>GitHub Copilot app</strong> if you’re already in GitHub’s ecosystem and want worktree-based sessions.</li><li>Use <strong>Maxxwell</strong> if you want an <strong>agent-of-agents that runs locally</strong>, manages your existing tools, and still keeps you as the one who presses Enter.</li></ul>
<p>The happy path many teams land on:</p>
<ul><li>Keep <strong>IDE plugins</strong> for day-to-day editing.</li><li>Run an <strong>orchestration layer</strong> for multi-agent work, longer-running tasks, and team-wide visibility.</li></ul>
<hr class="rule">
<h2>FAQ: common questions about control layers</h2>
<h3>Do I need an orchestration framework if I only use one AI coding tool?</h3>
<p>No. If you run a single Copilot/Cursor/Claude session most of the time, an extra orchestration layer is overkill. Frameworks make sense once you have <strong>multiple agents or multiple people</strong> running them and the coordination cost becomes visible.</p>
<h3>Can I use orchestration frameworks with my existing IDE plugins?</h3>
<p>Yes. Most orchestration tools are <strong>model-agnostic</strong> and sit above your IDE. Maxxwell, for example, manages real terminal sessions running Claude, Codex, Cursor-agent and others, while you keep using your IDE plugins for inline work.</p>
<h3>How do orchestration frameworks help teams specifically?</h3>
<p>Teams get:</p>
<ul><li>A <strong>single view</strong> of what agents are doing and where.</li><li>Explicit <strong>ownership of branches/worktrees</strong> per agent.</li><li>Clear <strong>handoff and merge steps</strong> so agents don’t quietly break main.</li></ul>
<p>This matches patterns from CAID and tools like ctx and OpenHands: centralized delegation, isolated workspaces, and merge-based integration.</p>
<h3>Are orchestration frameworks more secure or private?</h3>
<p>Often, yes, especially for local-first tools. Maxxwell runs <strong>locally</strong>, and you bring your own API key or subscription. ctx and similar tools emphasize isolated workspaces and keeping source and orchestration state off hosted services.</p>
<h3>How do I evaluate whether Maxxwell is worth adding?</h3>
<p>Try it in the smallest way:</p>
<ul><li>Take a personal repo where you already run <strong>multiple coding agents</strong>.</li><li>Start Maxxwell, spin up several real worker sessions (Claude, Codex, Cursor-agent).</li><li>Use the <strong>orchestrator seat</strong> as your single conversation partner.</li></ul>
<p>If, over a week, you feel less like the bottleneck and can actually tell which sessions are progressing vs stalled, it’s doing its job. If you never have more than one agent running, you won’t see much benefit.</p>]]></content:encoded>
  </item>
</channel>
</rss>
