Claude Desktop、ChatGPT App 中的 Codex 與 Hermes IDE:三款編碼智能體圖形介面比較
Claude Desktop vs Codex in the ChatGPT App vs Hermes IDE: 3 GUIs for Coding Agents
作者比較 Claude Desktop、ChatGPT App 中的 Codex 與其開發的 Hermes IDE,分析三者在編碼智能體並行任務、隔離、審查及合併方面的差異。Claude 與 ChatGPT 桌面 App 均支援雲端任務,Hermes IDE 則可在同一介面使用多種已安裝的 CLI 代理,但不提供雲端代理。文中比較依據各廠商文件,作者沒有親自並排測試三者。
- Book: Ship It — the pragmatic startup tech stack
- Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go
- My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools
- Me: xgabriel.com | GitHub
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.

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
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"]
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 ⌘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.
來源:DEV Community · dev.to
