DEV Community

Cover image for Claude Desktop vs Codex in the ChatGPT App vs Hermes IDE: 3 GUIs for Coding Agents
Gabriel Anhaia
Gabriel Anhaia

Posted on AI-assisted

Claude Desktop vs Codex in the ChatGPT App vs Hermes IDE: 3 GUIs for Coding Agents


The Codex desktop app became the ChatGPT desktop app. Starting July 9, 2026, OpenAI began merging the Codex app into the new ChatGPT desktop app for Mac and Windows, where Codex sits next to Chat and Work, and existing Codex app users got the new app through a normal update (Developers Digest, summarizing OpenAI's ChatGPT Work announcement). On the other side, the Claude desktop app has a Code tab that runs Claude Code with a graphical interface, so you can review its changes "without using a terminal."

So both labs now give their terminal agent a window. Each window runs one vendor's agent. If you use Claude Code in the morning and Codex in the afternoon, that is two apps, each with its own review screen.

This post compares the two first-party apps with a third option, Hermes IDE, on the jobs you do every day: running tasks in parallel, keeping them apart, reviewing and landing the work, and which agents and accounts you can use. I build Hermes IDE, so weigh this with that in mind. The feature facts below come from each vendor's own docs. I haven't run the three side by side myself.

Three windows, three bets

Claude desktop, Code tab. Anthropic bundles Claude Code inside the app, so "you don't need to install Node.js or the CLI to use the Code tab" (quickstart). Sessions can run locally, in the cloud, over SSH, or inside WSL on Windows. You drag chat, diff, terminal, file and browser panes into your own layout. It needs a Pro, Max, Team or Enterprise plan. Pro is $20 a month billed monthly, or $17 a month billed annually.

ChatGPT desktop, Codex. OpenAI's bet is one app for everything. Codex sits in the ChatGPT desktop app with three ways to run a chat: Local, Worktree, or Cloud (modes). Codex is included in every ChatGPT plan from Free ($0) and Go ($8) up to Enterprise (pricing). The app signs in with ChatGPT. The pricing page lists API-key sign-in for the CLI, SDK and IDE extension, and doesn't mention the desktop app.

Hermes IDE. Hermes doesn't ship an agent. It runs the agent CLIs you already installed, each "in a real terminal, exactly as it would anywhere else" (README). Claude Code, Codex, GitHub Copilot CLI, Antigravity CLI, Gemini CLI, OpenCode, goose, Aider, Kiro CLI and any command-line agent you add all open the same way. Around those terminals it adds a branch and worktree per task, one status for every agent, an inbox for the ones waiting on you, and a review and merge step.

Three tall desktop windows standing side by side, two each holding a single robot silhouette, the third holding several different robot silhouettes in separate terminal panes
Two first-party windows that each hold one vendor's agent, and one that holds whichever agents you run.

Parallel tasks and worktree isolation

All three run tasks in parallel, and all three use git worktrees so two tasks don't edit the same folder.

In Claude's Code tab you press Cmd+N (Ctrl+N on Windows) for a new session and "select the worktree option next to the branch name" (desktop docs). Worktrees go under .claude/worktrees/ by default. You can set a branch prefix, and sessions can archive themselves once their pull request merges or closes. Hold Cmd or Ctrl and click a second session to view two at once.

In the ChatGPT app you pick Worktree under the composer and choose a starting branch. Codex creates the worktree from that branch, on a detached HEAD by default, in $CODEX_HOME/worktrees (worktree docs). It keeps your 15 most recent managed worktrees and saves a snapshot before it deletes one. Handoff moves a chat between Local and its worktree for you. Local environments add setup scripts that run when a new worktree is created, with per-OS overrides (local environments).

Both first-party apps read the same file, .worktreeinclude at the repo root, for the gitignored files a fresh worktree is missing (Claude, Codex). It uses .gitignore syntax, and only files that match a pattern and are also gitignored get copied:

# .worktreeinclude
.env
.env.local
config/secrets.json
Enter fullscreen mode Exit fullscreen mode

Hermes keeps this in one recipe per repo, .hermes/worktree.toml (recipe docs):

# .hermes/worktree.toml
setup = ["npm ci"]
copy = [".env", ".env.local"]
done_when = ["npm test"]
Enter fullscreen mode Exit fullscreen mode

The first time Hermes sees the file, and whenever it changes, it shows you the commands and waits until you choose Run setup. Each task starts with ⌘N (Ctrl+Shift+N on Windows and Linux) on its own hermes/<task> branch and worktree, with the task as the agent's first prompt. Setup runs before any agent starts, so it is the same whichever agent you pick.

The Hermes IDE New task sheet set to Claude Code, with a new hermes worktree, Accept edits, and a preview of the claude command Hermes will run
The ⌘N New task sheet in Hermes 2.3: pick the agent, a new hermes/ worktree, the permission mode, and a preview of the exact claude command Hermes will run.

Review and landing the work

This is where the first-party apps are strongest, and where they differ most.

Claude's diff view shows a +12 -1 indicator. Click it, comment on any line, submit the comments together, and Claude revises. /code-review shows findings as a card with Apply fixes. After you open a pull request, the app watches CI through the GitHub CLI. It can auto-fix failing checks and, in local sessions, address new review comments, and it can auto-merge (squash) once checks pass (desktop docs). Hermes has nothing like that CI loop.

The ChatGPT app's review pane is where you "decide what to stage, revert, commit, or push." You can stage, unstage or revert a single hunk and attach inline comments to lines (code review). Accepting part of an agent's work, hunk by hunk, is fiddly from a terminal.

Hermes saves every agent turn, so you can diff or restore one turn, with undo. The Review Desk (⌘G) shows changes by turn or by file, with risk flags, and a line comment goes back to the agent that wrote that line (README). Land then commits, opens a pull request or merges locally into the branch the task started from, and can be undone. Your done_when checks can decide when a task is done.

If you only ever use one vendor, its own app's review and PR tooling may be all you need.

What you give up versus the raw CLI

A GUI that ships its own copy of the agent can trail the CLI, or leave parts of it out.

Claude's docs are direct about this. In a local session, "the Code tab runs its own copy of Claude Code, which has its own version number," so it "can differ from the claude command in your terminal, and updating one doesn't update the other" (desktop docs). Commands that open an interactive panel in the terminal behave differently: ones with no argument form, such as /permissions, reply with "isn't available in this environment." --print, scripting and agent teams stay in the CLI. In return you get a browser pane, built-in scheduled tasks, file attachments (the CLI has none), and computer use on Windows as well as macOS (a research preview on Pro and Max). In the CLI, computer use is macOS-only and you enable it through /mcp.

OpenAI's app documents its own slash command set for the desktop app, and notes that "available commands vary based on your environment and access" (slash commands). Each chat also gets an integrated terminal scoped to its project or worktree, and ChatGPT "can read the current terminal output" (integrated terminal).

Hermes goes the other way. The agent's own interface runs in the terminal, "so a vendor's new commands and modes work in Hermes the day they ship" (README). The version you run is the one you installed, and the New task sheet shows the exact command before it runs. The cost is that you install and sign in each CLI yourself, and you get the terminal interface, not a chat window. For Claude there is an optional Agent view per session, with tool-call cards and pasted images; the terminal stays the default.

Agents, accounts, and trade-offs

Claude desktop ChatGPT desktop Hermes IDE
Agents Claude Code Codex Claude Code, Codex, Copilot CLI, Antigravity CLI, OpenCode, any CLI
Plan needed Claude Pro and up Any ChatGPT plan, Free included None; each agent uses its own sign-in
Platforms macOS, Windows, Linux beta macOS, Windows, Linux preview macOS, Windows, Linux
Isolation Optional worktree per session Local, Worktree or Cloud Branch and worktree per task
Review Line comments, /code-review Inline comments, per-hunk stage By turn or file, risk flags
Landing PR CI watch, auto-fix, auto-merge Stage, revert, commit or push Commit, PR or local merge, undo
Cloud runs Yes Yes No

Sources: Claude desktop, Linux beta, ChatGPT Linux preview, Hermes README.

On accounts: Hermes supports several accounts per agent, and when one agent hits its usage limit you can continue the task in another. On macOS and Linux, agents keep working while Hermes quits, updates or crashes, and you reattach where they left off. Hermes never answers a permission prompt for you and never types into a terminal on its own (README).

Where the first-party apps win:

  • Cloud. Both can run a task remotely so it keeps going after you close the laptop. Hermes has no cloud agents: sessions run on your machine, or on a host you reach over SSH.
  • Less setup. Claude's app ships Claude Code inside it, with no CLI to install. ChatGPT's app gives you Codex on the Free plan.
  • Depth for one agent. CI watching, auto-merge, a browser pane, computer use and scheduled tasks are built for one agent and go deep on it.
  • Maturity. Hermes is young; its 2.3 releases shipped on October 13, 2026.

Where Hermes wins: more than one vendor in one window, one inbox for every agent that is blocked on you, your own CLI version with its newest commands, and a free app that adds no subscription of its own. Hermes is source-available under BSL 1.1, and it is not affiliated with Nous Research, Anthropic, OpenAI or any agent vendor.

If you're weighing whether to pay for an editor on top of those plans at all, I went through that in You Already Pay for Claude Code and Codex.


If this was useful

If you mix Claude Code, Codex and other agents, download Hermes IDE and start the same ticket in two of them, each on its own branch. If it earns a place next to the apps you already pay for, star it on GitHub, and open an issue when something doesn't work the way I described.

All three apps take the agent's work as far as a commit, a pull request or a merge, and then it is your problem. If you're a small team getting that merged code in front of users, Ship It covers the stretch between localhost and production: hosting, auth, payments, CI/CD and monitoring.

Ship It — the pragmatic startup tech stack

Top comments (1)

Collapse
 
arcwrightai profile image
arcwrightai •

This is why I think the interface matters as much as the model.