惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The Register - Security
The Register - Security
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
GbyAI
GbyAI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园_首页
D
Docker
S
Security @ Cisco Blogs
K
Kaspersky official blog
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
TaoSecurity Blog
TaoSecurity Blog
V
V2EX
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Troy Hunt's Blog
Cloudbric
Cloudbric
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Hacker News
The Hacker News
美团技术团队
S
SegmentFault 最新的问题
L
Lohrmann on Cybersecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
宝玉的分享
宝玉的分享
The Last Watchdog
The Last Watchdog
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Martin Fowler
Martin Fowler
Google Online Security Blog
Google Online Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
Vercel News
Vercel News
The Cloudflare Blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
AI
AI
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
Scott Helme
Scott Helme
S
Schneier on Security
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
S
Securelist
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
How I Run Multiple Coding Agents in Parallel Using Git Worktrees
Mahmood Khordoo · 2026-06-05 · via DEV Community

A practical local workflow for running Claude, Codex, and Gemini side by side without breaking your repo.

When developers hear “multi-agent coding,” they often assume it means something complex.

With all the talk about supervisor agents, agent swarms, agent teams, and subagents, it can feel like you need a heavy setup before you can even start. In reality, for day-to-day local development, you can keep it much simpler. You do not need a complex system just to run multiple coding agents in parallel.

The foundation of practical multi-agent coding is isolation.

If you want to run multiple coding agents concurrently without them destroying your codebase, the architecture relies on one golden rule:

One task = One branch = One Git worktree = One terminal = One agent session.

There is absolutely a time and a place for advanced and complex setups. But you do not need them to see massive productivity gains today. Think of the method below as your practical baseline. It is designed to get you started immediately using tools you already know and have installed.

It keeps you fully in control without overwhelming you. Once you master this foundation, you can always layer on more advanced automation later.


Here is exactly how to set up this straightforward workflow, safely manage multiple agents in parallel, and shift your role from writing every line of code to acting as the Integration Manager.

Step 1: Fix the Single-Folder Bottleneck with Git Worktrees

The fastest way to ruin a multi-agent workflow is to run them in the same working directory.

If Agent A is refactoring a file and Agent B is trying to write tests for it, they will overwrite each other. If you switch branches to check on one agent’s progress, the files change on disk, completely breaking the context for the agent running in the background.

To solve this, we use a deeply under-appreciated Git feature: git worktree

A Git worktree allows you to check out multiple branches from the same repository into completely separate folders on your hard drive, simultaneously.

For example, let’s say your main project is rag-app and you are currently inside that directory in your terminal. You can provision parallel workspaces using the commands below.

(Pro-tip: Notice the ../ in the paths. This is crucial. It ensures the new worktrees are created side-by-side with your main folder, rather than awkwardly nesting them inside your current Git repository.)

git worktree add -b ai/retrieval-fix ../rag-retrieval-fix main
git worktree add -b ai/eval-tests ../rag-eval-tests main
git worktree add -b ai/review ../rag-review main

Enter fullscreen mode Exit fullscreen mode

Now, if you look at your file system, you have this perfectly clean, parallel structure:

_The core mental model of multi-agent coding: Your main workspace stays completely clean (rag-app) , while each agent gets its own physical folder, branch, and dedicated terminal._
The core mental model of multi-agent coding: Your main workspace stays completely clean (rag-app) , while each agent gets its own physical folder, branch, and dedicated terminal.

Sitting right next to your main rag-app folder, you now have completely distinct, isolated directories:

  • rag-app (Your clean, protected main checkout)
  • rag-retrieval-fix(Worktree for Agent 1)
  • rag-eval-tests (Worktree for Agent 2)
  • rag-review (Worktree for Agent 3)

Because each directory is connected to the exact same local Git repository but rests on a different branch, your agents now have isolated sandboxes. They can read, write, and run tests concurrently without ever stepping on each other’s toes.


Running git worktree list verifies that your agents now have completely isolated workspaces, all tied to the same local repository but residing on different branches.

Step 2: Build Your Control Room in VS Code

Once you have multiple isolated environments, the next challenge is visibility. You need a way to monitor four different agents without drowning in a sea of open windows.

The solution is a VSCode Multi-Root Workspace.

Open your main worktree, and then explicitly add the parallel worktrees into a single, unified VS Code window:

Open your main project in VScode :

code ~/projects/rag-app

Enter fullscreen mode Exit fullscreen mode

  1. Then add the other worktrees into the same VS Code window:
code --add ~/projects/rag-retrieval-fix
code --add ~/projects/rag-eval-tests
code --add ~/projects/rag-review

Enter fullscreen mode Exit fullscreen mode

Save this layout as a Workspace. VS Code transforms into a centralized dashboard for your AI team.

The Explorer pane displays all worktrees. The Source Control panel cleanly separates the diffs happening in each folder. Paired with an extension like GitLens, it becomes trivial to monitor branches, compare diffs, and audit exactly what each agent is writing in real time.


The VS Code Explorer pane displaying your Multi-Root Workspace. Each folder represents a completely isolated Git worktree ready for a different agent task.


The Source Control panel cleanly separates uncommitted changes across all active worktrees. This allows you to monitor diffs and review agent outputs from one centralized dashboard.

Step 3: Enforce Strict Terminal Discipline

To make this system work, you must adopt strict terminal discipline.

VS Code does not automatically change your integrated terminal’s directory when you click on a file in a different worktree. If you are looking at rag-eval-tests but your terminal is secretly still in rag-app, firing off an agent will result in code being written to the wrong branch.

The Rule: Do not reuse a single terminal and manually cd between worktrees.

Instead, proactively provision a dedicated terminal tab for each worktree and rename them in VS Code.

Once a terminal is open in a specific folder, never use the cd command to leave it. If you need to run commands in a different worktree, simply click over to its matching terminal tab

If you are ever in doubt before executing an agent, run a quick sanity check:

pwd
git branch --show-current

Enter fullscreen mode Exit fullscreen mode

This single habit prevents 99% of multi-agent execution errors.

Pro-Tip: Automate Your Terminal Organization
To make this workflow visually effortless, you can tell VS Code to automatically name your terminal tabs based on their worktree folder.

Add these two lines to your VS Code settings.json:

"terminal.integrated.tabs.title": "${workspaceFolderName}",
"terminal.integrated.tabs.description": "${cwdFolder}"

Enter fullscreen mode Exit fullscreen mode

Ensure you reload your workspace or simply close and reopen VS Code for it to take effect.

How to open terminals correctly:
Because VS Code is tricky, how you open the terminal matters.

  • Do not just click the dropdown arrow (⌄) and select “New Terminal” (this will default to wherever your currently active file is located).
  • Instead, click directly on the + icon in the terminal panel. Because you are in a Multi-Root Workspace, VS Code will explicitly ask you which folder you want to open the terminal in. Select your specific worktree.

The Benefit: By doing this, your terminal session automatically opens in the correct physical folder and is locked to the correct Git branch. You never have to manually cd between directories, which eliminates the risk of running an agent in the wrong place.

Once opened, right-click the terminal tab to change its icon and color. This makes managing multiple agents incredibly visual.

Here is the exact layout I use:


By using the ‘+’ button and customizing your tabs, each agent gets a dedicated, color-coded terminal automatically locked to the correct Git branch and folder._

If you want to monitor an agent’s code execution while it writes, you can also split the terminal vertically inside that specific worktree’s tab. This keeps the agent’s CLI tool on one side and the server or execution output on the other.

The massive benefit here is that each session has a dedicated runtime and agent paired together. As you click and switch between your different worktree tabs, the correct agent and its running code stay perfectly synced in one view.


Splitting the terminal inside a worktree tab pairs the agent (like Claude Code) with its execution environment. Switching tabs instantly brings up the correct agent and its corresponding server or test logs

The Multi-Model Advantage

Because every terminal tab is completely isolated, you are not locked into a single AI tool or model.

You can run Claude Code in your testing worktree and Codex CLI in your implementation worktree simultaneously.

You can even run multiple instances of the same tool using different model profiles. For example, you can use a fast, cheap Codex profile in one tab and a premium, heavy-lifting Codex profile in another. This lets you pick the exact right tool for each specific job.

Step 4: Strategic Delegation

With the infrastructure in place, the actual execution becomes highly systematic.

How you delegate depends entirely on your current goal. If you are stuck on a complex architectural problem, giving multiple agents the exact same prompt is actually a great strategy. It allows you to see the problem from different angles, compare alternative solutions, and have one agent review another’s code.

However, while that is highly useful for brainstorming and quick prototypes, having three agents write the exact same feature does not actually speed up your delivery time.

To maximize true engineering productivity, you need to split the workload functionally. By assigning independent tasks to different worktrees, you can move multiple pieces of the project forward at the exact same time.

For example:

  • Agent 1 (Implementation): Modifies the core logic in Worktree A.
  • Agent 2 (Testing): Writes unit and integration tests based on the proposed specs in Worktree B.
  • Agent 3 (Review): Audits the codebase for edge cases or security flaws in Worktree C.

Because these agents are working independently, your prompts must be highly bounded to the scope of the tasks. Vague prompts lead to bloated diffs.

Step 5: Optimize Your Model Economics

Running four parallel agents can burn through API credits quickly if every terminal is hooked up to GPT-5.5 or Claude Opus 4.8

An effective multi-agent workflow requires resource management. Allocate cheaper, faster models (like Gemini Flash, Claude Haiku, or localized models) for routine tasks, and reserve the expensive models for heavy lifting.

  • Tier 1 (Cheap/Fast): Boilerplate, test generation, documentation, simple refactors.
  • Tier 2 (Premium): Architecture decisions, complex implementations, final code reviews.

If you use a CLI tool like Codex, you can configure profiles to make switching seamless:

For example, here is how you can set up a custom profile using OpenRouter. First, add the provider block to your main Codex configuration file. ( ~/.codex/config.toml )


Defining OpenRouter as a model provider in Codex. Make sure to export your OPENROUTER_API_KEY in your shell configuration (e.g., ~/.zshrc).

Next, you can define custom profiles for specific models by creating a new file named ~/.codex/{profile-name}.config.toml

For example, here is how you would configure a heavy-lifting profile for DeepSeek Pro ( ~/.codex/ds-pro.config.toml ):


Defining a custom Codex profile specifically for DeepSeek Pro via OpenRouter.

Finally, you can spin up the exact model you need inside each worktree’s dedicated terminal:

codex --profile tier-1-fast
codex --profile tier-2-smart
codex --profile ds-pro

Enter fullscreen mode Exit fullscreen mode

The Paradigm Shift: You Are Now the Integration Manager

Multi-agent coding doesn’t automate the software engineer away; it elevates them.

By utilizing Git Worktrees, Multi-Root Workspaces, and bounded prompting, you shift your daily role from typing syntax to acting as a Tech Lead and Integration Manager.

Your new development loop is highly leveraged:

  1. Write clear, bounded task specifications.
  2. Delegate tasks to isolated worktrees.
  3. Let agents compile candidate diffs concurrently.
  4. Review the outputs in your unified dashboard.
  5. Merge only the code that meets your standards into the main branch.

The main branch stays pristine. The worktrees safely absorb the chaos of iteration.

This is not magic. It is just solid local environment management adapted for modern AI workflows. Set up the infrastructure correctly, and you can comfortably manage a team of AI agents right from your laptop.