<?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: Arun</title>
    <description>The latest articles on DEV Community by Arun (@offrun).</description>
    <link>https://dev.to/offrun</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4182969%2F1ac3ca39-f1c5-4740-a46f-8207258f2290.png</url>
      <title>DEV Community: Arun</title>
      <link>https://dev.to/offrun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/offrun"/>
    <language>en</language>
    <item>
      <title>Running Claude Code and Codex in parallel on one repo: git worktree gotchas and cross-review</title>
      <dc:creator>Arun</dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:02:50 +0000</pubDate>
      <link>https://dev.to/offrun/running-claude-code-and-codex-in-parallel-on-one-repo-git-worktree-gotchas-and-cross-review-41eg</link>
      <guid>https://dev.to/offrun/running-claude-code-and-codex-in-parallel-on-one-repo-git-worktree-gotchas-and-cross-review-41eg</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I build a Mac app called Offrun. Everything in this post works with plain git and the agent CLIs; there's a short note about Offrun at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Run Claude Code and Codex on the same repository at the same time and you hit three things fairly quickly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Both agents edit the same files, and one agent's changes break the other's working tree.&lt;/li&gt;
&lt;li&gt;One account hits its usage limit and the work stops halfway.&lt;/li&gt;
&lt;li&gt;Asking the agent that wrote a diff to review it tends to miss the same things it missed while writing it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This post handles them one at a time: give each agent its own git worktree, have a different agent review the uncommitted diff, and split logins so a limit doesn't stop you. At the end there's a table of what I actually ran and what I didn't.&lt;/p&gt;

&lt;p&gt;Tested on macOS with git 2.50.1, Claude Code 2.1.296 and Codex CLI 0.162.1.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. One worktree per agent
&lt;/h2&gt;

&lt;p&gt;A git worktree is an extra working directory attached to the same repository (the same &lt;code&gt;.git&lt;/code&gt;). Each branch gets its own folder, so agents can edit freely in their own folder without touching each other's working tree.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/work/app
git worktree add ../app-refactor &lt;span class="nt"&gt;-b&lt;/span&gt; refactor
git worktree add ../app-bugfix   &lt;span class="nt"&gt;-b&lt;/span&gt; bugfix
git worktree list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/Users/me/work/app           c5cd751 [main]
/Users/me/work/app-bugfix    c5cd751 [bugfix]
/Users/me/work/app-refactor  c5cd751 [refactor]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start one agent per folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ../app-refactor &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; claude      &lt;span class="c"&gt;# first terminal&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ../app-bugfix   &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; codex       &lt;span class="c"&gt;# second terminal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code has a &lt;code&gt;-w&lt;/code&gt; / &lt;code&gt;--worktree [name]&lt;/code&gt; option that creates a worktree for the session itself. Codex has no equivalent, so this post sticks to plain git, which works for both.&lt;/p&gt;

&lt;p&gt;Put worktrees next to the repository rather than inside it. If you do put them inside, add the folder to &lt;code&gt;.gitignore&lt;/code&gt;, or the main working tree will show it as untracked.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The gotchas
&lt;/h2&gt;

&lt;p&gt;Everything in this section was run against a throwaway repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  The same branch can't be checked out in two worktrees
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git worktree add ../dup refactor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fatal: 'refactor' is already used by worktree at '/tmp/.../app-refactor'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git refuses to let two worktrees, and so two agents, share a branch. That's a useful safety net. If you want two attempts from the same starting point, create a second branch with &lt;code&gt;-b&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;node_modules&lt;/code&gt; don't come along
&lt;/h3&gt;

&lt;p&gt;A new worktree only checks out tracked files. A &lt;code&gt;.env&lt;/code&gt; listed in &lt;code&gt;.gitignore&lt;/code&gt; isn't there, and neither is &lt;code&gt;node_modules&lt;/code&gt; from your last &lt;code&gt;npm install&lt;/code&gt;. When an agent's first move fails with "missing environment variable" or "module not found", this is usually why.&lt;/p&gt;

&lt;p&gt;A small function in &lt;code&gt;~/.zshrc&lt;/code&gt; creates the worktree and copies &lt;code&gt;.env&lt;/code&gt; in one go:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wt&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt; root dest
  &lt;span class="nv"&gt;root&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git rev-parse &lt;span class="nt"&gt;--show-toplevel&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="k"&gt;return
  &lt;/span&gt;&lt;span class="nv"&gt;dest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;root&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  git worktree add &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;
  &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$root&lt;/span&gt;&lt;span class="s2"&gt;/.env"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$root&lt;/span&gt;&lt;span class="s2"&gt;/.env"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest&lt;/span&gt;&lt;span class="s2"&gt;/.env"&lt;/span&gt;
  &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/work/app &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; wt refactor    &lt;span class="c"&gt;# creates ~/work/app-refactor with .env copied&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I left dependency installation out because it differs per project. A package manager with a shared store, like pnpm, keeps disk use down as you add worktrees.&lt;/p&gt;

&lt;h3&gt;
  
  
  The stash is shared between worktrees
&lt;/h3&gt;

&lt;p&gt;There's one &lt;code&gt;.git&lt;/code&gt;, so there's one stash. A &lt;code&gt;git stash&lt;/code&gt; made in another worktree showed up in the main worktree's &lt;code&gt;git stash list&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git -C ../app-x stash -q
$ git stash list           # in the main worktree
stash@{0}: WIP on x: c5cd751 init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agents use &lt;code&gt;git stash&lt;/code&gt; and &lt;code&gt;git stash pop&lt;/code&gt; more often than you'd think. To stop one session popping another session's stash, add a line to the agent instruction files (&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;) while you run in parallel: don't use stash; park work in progress with a temporary commit instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  A worktree with changes can't be removed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git worktree remove ../app-refactor
fatal: '../app-refactor' contains modified or untracked files, use --force to delete it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;--force&lt;/code&gt; removes it, along with any uncommitted changes. Run &lt;code&gt;git -C ../app-refactor status&lt;/code&gt; before reaching for it. When the work is done, merge, then &lt;code&gt;git worktree remove ../app-refactor&lt;/code&gt; and &lt;code&gt;git branch -d refactor&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  One more
&lt;/h3&gt;

&lt;p&gt;This one I didn't test for this post; it's just a common parallel-work problem. Several agents starting dev servers will fight over the same port (3000 and so on). If the port comes from a &lt;code&gt;PORT&lt;/code&gt; environment variable, you can give each worktree its own, like &lt;code&gt;PORT=3001&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Have a different agent review the uncommitted diff
&lt;/h2&gt;

&lt;p&gt;An agent reviewing its own diff tends to carry its own assumptions into the review. In my experience a model from a different company misses different things, which is what makes it useful as a reviewer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Codex as the reviewer
&lt;/h3&gt;

&lt;p&gt;Codex CLI has a &lt;code&gt;review&lt;/code&gt; subcommand. According to its help, &lt;code&gt;--uncommitted&lt;/code&gt; reviews staged, unstaged and untracked changes together:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ../app-refactor
codex review &lt;span class="nt"&gt;--uncommitted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;--base main&lt;/code&gt; to review against a base branch, or &lt;code&gt;--commit &amp;lt;SHA&amp;gt;&lt;/code&gt; for a single commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code as the reviewer
&lt;/h3&gt;

&lt;p&gt;Claude Code runs non-interactively with &lt;code&gt;-p&lt;/code&gt; (&lt;code&gt;--print&lt;/code&gt;), so you can pipe the diff in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nt"&gt;-N&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;                &lt;span class="c"&gt;# so untracked files show up in the diff&lt;/span&gt;
git diff HEAD | claude &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Review this diff. Point out bugs, missing tests and type mismatches. Don't change any code."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;git add -N .&lt;/code&gt; (intent-to-add) is needed because &lt;code&gt;git diff HEAD&lt;/code&gt; leaves out untracked files. I checked with a new file &lt;code&gt;new.ts&lt;/code&gt; and an edit to the existing &lt;code&gt;package.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git diff HEAD --stat
 package.json | 1 +

$ git add -N . &amp;amp;&amp;amp; git diff HEAD --stat
 new.ts       | 1 +
 package.json | 1 +
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without it, the reviewer sees a diff with every new file silently missing. That's easy to overlook, so run &lt;code&gt;add -N&lt;/code&gt; first.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to do with the review
&lt;/h3&gt;

&lt;p&gt;Let the reviewer point things out, and nothing more. Send the fixes back to the original agent, or make them yourself. If the reviewer edits code directly, you're back to the first problem: two agents touching the same files. Read the findings and pick the ones worth acting on before passing them along, so one off-target comment doesn't send the work sideways.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Plan for usage limits
&lt;/h2&gt;

&lt;p&gt;Claude and Codex both cap usage over a period, and running agents in parallel gets you there faster. With more than one login, you can switch to another login when one runs out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate config folders, separate logins
&lt;/h3&gt;

&lt;p&gt;Both CLIs let you move their config and credentials with an environment variable: &lt;code&gt;CLAUDE_CONFIG_DIR&lt;/code&gt; for Claude Code, &lt;code&gt;CODEX_HOME&lt;/code&gt; for Codex. Pointing each at an empty folder confirmed the login state is separate:&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="nv"&gt;$ CLAUDE_CONFIG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/tmp/cfgA claude auth status
&lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"loggedIn"&lt;/span&gt;: &lt;span class="nb"&gt;false&lt;/span&gt;,
  ...
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$ CODEX_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/tmp/cfgB codex login status
Not logged &lt;span class="k"&gt;in&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So make an alias per login:&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;alias &lt;/span&gt;claude-b&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'CLAUDE_CONFIG_DIR=$HOME/.claude-b claude'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;codex-b&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'CODEX_HOME=$HOME/.codex-b codex'&lt;/span&gt;

claude-b auth login      &lt;span class="c"&gt;# sign in with the second account&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Session history is stored per config folder too, so &lt;code&gt;claude-b&lt;/code&gt; knows nothing about what &lt;code&gt;claude&lt;/code&gt; did. That's the next problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  When you switch mid-task, leave a handoff yourself
&lt;/h3&gt;

&lt;p&gt;After a limit forces a switch, the new session doesn't know what the old one tried. I haven't tested copying session history files between config folders, so I won't recommend it. What reliably works is having the agent write its state to a file before the limit hits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- HANDOFF.md --&amp;gt;&lt;/span&gt;
&lt;span class="gu"&gt;## Goal&lt;/span&gt;
Move the auth middleware to TypeScript

&lt;span class="gu"&gt;## Done&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Migrated src/auth/session.ts, 0 type errors

&lt;span class="gu"&gt;## Tried and failed&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Staying on jose v4 breaks the ESM import. Needs v5

&lt;span class="gu"&gt;## Next&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Migrate src/auth/token.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a line to &lt;code&gt;CLAUDE.md&lt;/code&gt; (or similar) saying to update &lt;code&gt;HANDOFF.md&lt;/code&gt; at the end of each unit of work. Then tell the session on the new login "read &lt;code&gt;HANDOFF.md&lt;/code&gt; and carry on", and it picks up what the last session tried.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What stays manual
&lt;/h2&gt;

&lt;p&gt;All of the above gets you parallel agents, but some things stay manual:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opening each terminal tab to see which agent is working and which is waiting on you&lt;/li&gt;
&lt;li&gt;Checking each CLI separately to see which login is close to its limit&lt;/li&gt;
&lt;li&gt;Typing the commands to create worktrees, copy &lt;code&gt;.env&lt;/code&gt;, run reviews and clean up, every time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built a Mac app that puts these in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Offrun
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://offrun.dev/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=parallel-agents-2026-10" rel="noopener noreferrer"&gt;Offrun&lt;/a&gt; is a Mac app I'm building. It runs Claude Code, Codex and Antigravity CLI on your Mac with the logins you already have. Each chat gets its own git worktree, and one screen shows which agents are working, which are waiting on you, and how much usage each login has left. Pick another agent as the reviewer and its findings on the uncommitted diff land in the chat; the reviewer only points things out and never edits or merges code.&lt;/p&gt;

&lt;p&gt;It's free with no card, though you need your own agent subscriptions. It runs on Apple Silicon Macs (M1 or later) with macOS 14 or later, and asks you to sign in to an Offrun account (Google or email) on first launch.&lt;/p&gt;

&lt;p&gt;Everything in this post works without Offrun, so try it with plain git first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I checked and what I didn't
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Same branch can't be in two worktrees, &lt;code&gt;.env&lt;/code&gt; doesn't come along, stash is shared, a worktree with changes can't be &lt;code&gt;remove&lt;/code&gt;d, &lt;code&gt;git diff HEAD&lt;/code&gt; omits untracked files until &lt;code&gt;add -N&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Run against a test repository&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The &lt;code&gt;wt&lt;/code&gt; function&lt;/td&gt;
&lt;td&gt;Run in zsh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;CLAUDE_CONFIG_DIR&lt;/code&gt; and &lt;code&gt;CODEX_HOME&lt;/code&gt; separate the login state&lt;/td&gt;
&lt;td&gt;Checked with empty folders&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;codex review --uncommitted&lt;/code&gt; and &lt;code&gt;claude -w&lt;/code&gt; exist and do what's described&lt;/td&gt;
&lt;td&gt;Checked with &lt;code&gt;--help&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What the models actually say when reviewing via &lt;code&gt;codex review&lt;/code&gt; and &lt;code&gt;claude -p&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Not run (command shape only)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port clashes&lt;/td&gt;
&lt;td&gt;Not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This post was drafted with AI (Claude), and the commands in it were run to check the results.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>codex</category>
      <category>git</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
