<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mahmood Khordoo</title>
    <description>The latest articles on DEV Community by Mahmood Khordoo (@mahmood_khordoo_20b3f5980).</description>
    <link>https://dev.to/mahmood_khordoo_20b3f5980</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3540368%2F48a4f9eb-15b3-4e0a-ab56-de2b96a8e971.png</url>
      <title>DEV Community: Mahmood Khordoo</title>
      <link>https://dev.to/mahmood_khordoo_20b3f5980</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahmood_khordoo_20b3f5980"/>
    <language>en</language>
    <item>
      <title>How I Run Multiple Coding Agents in Parallel Using Git Worktrees</title>
      <dc:creator>Mahmood Khordoo</dc:creator>
      <pubDate>Thu, 04 Jun 2026 18:21:30 +0000</pubDate>
      <link>https://dev.to/mahmood_khordoo_20b3f5980/how-i-run-multiple-coding-agents-in-parallel-using-git-worktrees-342d</link>
      <guid>https://dev.to/mahmood_khordoo_20b3f5980/how-i-run-multiple-coding-agents-in-parallel-using-git-worktrees-342d</guid>
      <description>&lt;p&gt;A practical local workflow for running Claude, Codex, and Gemini side by side without breaking your repo.&lt;/p&gt;

&lt;p&gt;When developers hear “multi-agent coding,” they often assume it means something complex.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The foundation of practical multi-agent coding is &lt;strong&gt;isolation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you want to run multiple coding agents concurrently without them destroying your codebase, the architecture relies on one golden rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One task = One branch = One Git worktree = One terminal = One agent session.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;It keeps you fully in control without overwhelming you. Once you master this foundation, you can always layer on more advanced automation later.&lt;/p&gt;




&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Fix the Single-Folder Bottleneck with Git Worktrees
&lt;/h2&gt;

&lt;p&gt;The fastest way to ruin a multi-agent workflow is to run them in the same working directory.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A quick note on Claude Code's newest native features:&lt;/strong&gt; Anthropic recently added an Agents Panel (claude agents) and a native &lt;code&gt;--worktree&lt;/code&gt; flag to their CLI. This proves how critical isolation is! However, relying solely on Claude's native commands locks you into their ecosystem and often buries your worktrees in hidden &lt;code&gt;.claude&lt;/code&gt; directories. The manual setup below is vastly superior because it is 100% tool-agnostic (allowing you to mix Claude, Gemini, and Codex), and it gives you complete visual control over your folders inside VS Code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To solve this, we use a deeply under-appreciated Git feature: &lt;code&gt;git worktree&lt;/code&gt;&lt;/p&gt;

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

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

&lt;p&gt;&lt;em&gt;(Pro-tip: Notice the &lt;code&gt;../&lt;/code&gt; 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.)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git worktree add &lt;span class="nt"&gt;-b&lt;/span&gt; ai/retrieval-fix ../rag-retrieval-fix main
git worktree add &lt;span class="nt"&gt;-b&lt;/span&gt; ai/eval-tests ../rag-eval-tests main
git worktree add &lt;span class="nt"&gt;-b&lt;/span&gt; ai/review ../rag-review main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, if you look at your file system, you have this perfectly clean, parallel structure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zsgkl0t6bidjvygrnax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zsgkl0t6bidjvygrnax.png" alt="_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._" width="800" height="283"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sitting right next to your main &lt;code&gt;rag-app&lt;/code&gt; folder, you now have completely distinct, isolated directories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rag-app&lt;/code&gt; (Your clean, protected main checkout)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rag-retrieval-fix&lt;/code&gt;(Worktree for Agent 1)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rag-eval-tests&lt;/code&gt; (Worktree for Agent 2)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rag-review&lt;/code&gt; (Worktree for Agent 3)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyg201urn2zkowrc0e4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyg201urn2zkowrc0e4b.png" alt=" " width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 2: Build Your Control Room in VS Code
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The solution is a VSCode &lt;strong&gt;Multi-Root Workspace&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Open your main worktree, and then explicitly add the parallel worktrees into a single, unified VS Code window:&lt;/p&gt;

&lt;p&gt;Open your main project in VScode :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code ~/projects/rag-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Then add the other worktrees into the same VS Code window:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code &lt;span class="nt"&gt;--add&lt;/span&gt; ~/projects/rag-retrieval-fix
code &lt;span class="nt"&gt;--add&lt;/span&gt; ~/projects/rag-eval-tests
code &lt;span class="nt"&gt;--add&lt;/span&gt; ~/projects/rag-review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save this layout as a Workspace. VS Code transforms into a centralized dashboard for your AI team.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgby1ope0t7z7txcjpog4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgby1ope0t7z7txcjpog4.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The VS Code Explorer pane displaying your Multi-Root Workspace. Each folder represents a completely isolated Git worktree ready for a different agent task.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnsya4cn0spcfoys65g7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnsya4cn0spcfoys65g7.png" alt=" " width="800" height="781"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3: Enforce Strict Terminal Discipline
&lt;/h2&gt;

&lt;p&gt;To make this system work, you must adopt strict terminal discipline.&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;rag-eval-tests&lt;/code&gt; but your terminal is secretly still in &lt;code&gt;rag-app&lt;/code&gt;, firing off an agent will result in code being written to the wrong branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Rule:&lt;/strong&gt; Do not reuse a single terminal and manually cd between worktrees.&lt;/p&gt;

&lt;p&gt;Instead, proactively provision a dedicated terminal tab for each worktree and rename them in VS Code.&lt;/p&gt;

&lt;p&gt;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&lt;/p&gt;

&lt;p&gt;If you are ever in doubt before executing an agent, run a quick sanity check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd
&lt;/span&gt;git branch &lt;span class="nt"&gt;--show-current&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This single habit prevents 99% of multi-agent execution errors.&lt;/p&gt;

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

&lt;p&gt;Add these two lines to your VS Code &lt;code&gt;settings.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"terminal.integrated.tabs.title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${workspaceFolderName}"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"terminal.integrated.tabs.description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${cwdFolder}"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Ensure you reload your workspace or simply close and reopen VS Code for it to take effect.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to open terminals correctly:&lt;/strong&gt;&lt;br&gt;
Because VS Code is tricky, how you open the terminal matters.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do not just click the dropdown arrow (⌄) and select “New Terminal” (this will default to wherever your currently active file is located).&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Benefit:&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;Once opened, right-click the terminal tab to change its icon and color. This makes managing multiple agents incredibly visual.&lt;/p&gt;

&lt;p&gt;Here is the exact layout I use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnl7o6vvemamdlcvnz5r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnl7o6vvemamdlcvnz5r.png" alt=" " width="799" height="202"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogx2f5emo8indmmpdlhb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogx2f5emo8indmmpdlhb.png" alt=" " width="800" height="199"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;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&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Multi-Model Advantage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because every terminal tab is completely isolated, you are not locked into a single AI tool or model.&lt;/p&gt;

&lt;p&gt;You can run Claude Code in your testing worktree and Codex CLI in your implementation worktree simultaneously.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 4: Strategic Delegation
&lt;/h2&gt;

&lt;p&gt;With the infrastructure in place, the actual execution becomes highly systematic.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

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

&lt;p&gt;Because these agents are working independently, your prompts must be highly bounded to the scope of the tasks. Vague prompts lead to bloated diffs.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 5: Optimize Your Model Economics
&lt;/h2&gt;

&lt;p&gt;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&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tier 1 (Cheap/Fast):&lt;/strong&gt; Boilerplate, test generation, documentation, simple refactors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 2 (Premium):&lt;/strong&gt; Architecture decisions, complex implementations, final code reviews.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use a CLI tool like Codex, you can configure profiles to make switching seamless:&lt;/p&gt;

&lt;p&gt;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. ( &lt;code&gt;~/.codex/config.toml&lt;/code&gt; )&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdvnf0y0wcnvyng68r3j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdvnf0y0wcnvyng68r3j.png" alt=" " width="800" height="194"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Defining OpenRouter as a model provider in Codex. Make sure to export your &lt;code&gt;OPENROUTER_API_KEY&lt;/code&gt; in your shell configuration (e.g., &lt;code&gt;~/.zshrc&lt;/code&gt;).&lt;/em&gt;&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foncvtti0vz8dxtgav4z7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foncvtti0vz8dxtgav4z7.png" alt=" " width="800" height="341"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Defining a custom Codex profile specifically for DeepSeek Pro via OpenRouter.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Finally, you can spin up the exact model you need inside each worktree’s dedicated terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nt"&gt;--profile&lt;/span&gt; tier-1-fast
codex &lt;span class="nt"&gt;--profile&lt;/span&gt; tier-2-smart
codex &lt;span class="nt"&gt;--profile&lt;/span&gt; ds-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Paradigm Shift: You Are Now the Integration Manager
&lt;/h2&gt;

&lt;p&gt;Multi-agent coding doesn’t automate the software engineer away; it elevates them.&lt;/p&gt;

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

&lt;p&gt;Your new development loop is highly leveraged:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write clear, bounded task specifications.&lt;/li&gt;
&lt;li&gt;Delegate tasks to isolated worktrees.&lt;/li&gt;
&lt;li&gt;Let agents compile candidate diffs concurrently.&lt;/li&gt;
&lt;li&gt;Review the outputs in your unified dashboard.&lt;/li&gt;
&lt;li&gt;Merge only the code that meets your standards into the main branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The main branch stays pristine. The worktrees safely absorb the chaos of iteration.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vscode</category>
      <category>productivity</category>
      <category>git</category>
    </item>
    <item>
      <title>Configure Claude Code with AWS Bedrock in 30 Seconds (Python)</title>
      <dc:creator>Mahmood Khordoo</dc:creator>
      <pubDate>Tue, 30 Sep 2025 21:12:15 +0000</pubDate>
      <link>https://dev.to/mahmood_khordoo_20b3f5980/clauth-an-open-source-cli-to-simplify-aws-bedrock-setup-for-claude-code-users-k8k</link>
      <guid>https://dev.to/mahmood_khordoo_20b3f5980/clauth-an-open-source-cli-to-simplify-aws-bedrock-setup-for-claude-code-users-k8k</guid>
      <description>&lt;h3&gt;
  
  
  The Problem: AWS Configuration is tedious
&lt;/h3&gt;

&lt;p&gt;If you’ve tried using the new &lt;strong&gt;Claude Code extension&lt;/strong&gt; with AWS Bedrock, you’ve probably hit the same wall I did.&lt;/p&gt;

&lt;p&gt;The extension is amazing, but the setup? It’s a friction-heavy process. You have to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log into the AWS Console.&lt;/li&gt;
&lt;li&gt;Navigate IAM roles and permissions.&lt;/li&gt;
&lt;li&gt;Deal with &lt;code&gt;config&lt;/code&gt; and &lt;code&gt;credentials&lt;/code&gt; files manually.&lt;/li&gt;
&lt;li&gt;Debug vague "Access Denied" errors when it doesn't work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I just wanted to code with Claude, not spend 20 minutes acting as a SysAdmin.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: Automating the boring stuff
&lt;/h3&gt;

&lt;p&gt;I realized this process could be scripted. So, I built &lt;strong&gt;&lt;code&gt;clauth&lt;/code&gt;&lt;/strong&gt;, a lightweight, open-source Python CLI that automates the handshake between your local environment and AWS Bedrock.&lt;/p&gt;

&lt;p&gt;It turns a 15-minute manual setup into a single command.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use it
&lt;/h3&gt;

&lt;p&gt;You can install it directly from PyPI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;clauth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Run the configuration&lt;/strong&gt;&lt;br&gt;
Run the command in your terminal. It will guide you through the authentication process automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Make sure to run this in your terminal&lt;/span&gt;
clauth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What it does under the hood
&lt;/h3&gt;

&lt;p&gt;For the curious developers, here is what the library handles for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Profile Management:&lt;/strong&gt; Automatically updates your &lt;code&gt;~/.aws/credentials&lt;/code&gt; without breaking existing profiles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSO Integration:&lt;/strong&gt; Handles the browser-based login flow if you are using AWS SSO.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bedrock Handshake:&lt;/strong&gt; Verifies that your session actually has access to the Bedrock models before you try to use them in your IDE.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Open Source?
&lt;/h3&gt;

&lt;p&gt;I built this to scratch my own itch, but I packaged it up because I know how frustrating AWS IAM can be for developers who just want to use GenAI tools.&lt;/p&gt;

&lt;p&gt;The project is fully open source. If you have feature requests or run into edge cases, feel free to open an issue or PR!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PyPI:&lt;/strong&gt; &lt;a href="https://pypi.org/project/clauth/" rel="noopener noreferrer"&gt;https://pypi.org/project/clauth/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; [INSERT YOUR GITHUB LINK HERE]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by an Engineer who got tired of manually setting environment variables 😉&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>aws</category>
      <category>cli</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
