Claude Code GUI vs Terminal, Round 2
Five months ago I said the GUI would improve. Anthropic shipped a massive redesign. I was right about the prediction — and still right about the terminal.
Five months ago, I wrote about my experience with Claude Code's GUI vs terminal. The verdict was brutal: "Terminal + Opus. Not even close."
But I also wrote this:
"Will the GUI improve? Probably. Anthropic ships fast and iterates faster. Maybe we'll get configurable worktree behavior. Maybe JetBrains integration. Maybe zsh support."
On April 14, Anthropic dropped a massive redesign of Claude Code Desktop. Multi-session sidebar. Side-by-side parallel agents. Drag-and-drop layouts. Integrated terminal. In-app file editor. Side chats. And a whole new automation system called Routines.
So. Was I right?
What Actually Changed
The redesign is genuinely impressive. This isn't a patch — it's a rethink of what a coding AI interface should be.
Parallel sessions are the headline feature. You can now run multiple Claude agents side by side from one window, each working on different repos or different tasks. A new sidebar manages them all — filter by status, group by project, sessions auto-archive when their PRs merge.
Side chats (Cmd+;) let you branch a conversation to ask questions without derailing the main task. Claude pulls context from the main thread but doesn't pollute it with your tangent. This is genuinely clever.
Routines are saved Claude Code configurations that run on Anthropic's cloud — no laptop required. Schedule them hourly, trigger them via API, or subscribe to GitHub webhooks. Nightly backlog triage, deploy verification, documentation drift detection — all running while you sleep.
The integrated terminal means you can run tests and builds without leaving the app. The in-app file editor handles spot edits. The rebuilt diff viewer is optimized for large changesets.
This is Anthropic saying: "We're not an assistant living inside your editor. We're the editor."
The Two Questions That Matter
All of that is impressive. But none of it matters if the two dealbreakers from my original review haven't been fixed.
Dealbreaker #1: Worktrees
My original complaint: Claude Code Desktop forces your work into an isolated git worktree. Not your project directory. A fresh checkout in .claude/worktrees/ where your .env files don't exist, your IDE can't see changes, and orphaned branches pile up like digital landfill.
Five months later: still mandatory. No opt-out.
The setting exists to change where worktrees go. Not whether they exist. There's no --no-worktree flag. No toggle. The canonical GitHub issue has been open since November 2025 with dozens of frustrated developers. It's labeled med-priority.
There is a partial fix: you can now create a .worktreeinclude file listing gitignored files to copy into worktrees:
.env
.env.local
config/secrets.jsonThat solves the "where did my environment go" problem. It does not solve "why am I working in a parallel universe instead of my actual project."
There's also a dirty hack: set the worktree storage location to something impossible (like /opt) in preferences, and Claude skips worktree creation entirely. It works. It's also the kind of fix that makes you question the product decision.
Dealbreaker #2: Shell Support
My original complaint: GUI was bash-only. No zsh. No PATH. No aliases. No nvm. Nothing from my carefully curated shell environment.
This one improved — mostly.
Claude Code now reads $SHELL on macOS, which means it's likely using /bin/zsh already. The "Bash tool" name is misleading — it uses whatever POSIX shell your system reports. A PATH bug for Homebrew binaries was fixed in v2.1.92. A CLAUDE_ENV_FILE bug was fixed on the same day as the redesign (v2.1.108).
But it still spawns non-login, non-interactive shells, so your ~/.zshrc might not load. The fix:
// ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_SHELL": "/bin/zsh",
"CLAUDE_ENV_FILE": "~/.zprofile"
}
}It works. It's not zero-config. But it works.
Verdict on shell: no longer a dealbreaker. Config required, rough edges remain, but the fundamental problem is solved.
The Honest Scorecard
What's Actually New and Good
I don't want this to sound like I'm dismissing the redesign. The parallel sessions and routines are real innovations that the CLI doesn't have — at least not in the same integrated way.
If your workflow is "orchestrate multiple agents working on different parts of a system simultaneously," the Desktop is now genuinely the better tool. The CLI can do this with background agents, but the Desktop makes it visual and manageable.
Routines are in a different league entirely. A saved prompt + repo + trigger that runs on Anthropic's infrastructure? That's not a coding assistant. That's a team member who works the night shift.
The Updated Verdict
Five months ago: "Terminal + Opus. Not even close."
Today: Terminal + Opus for solo work. Desktop for orchestration.
If you're one developer working on one thing at a time — which is most of us, most of the time — the terminal is still cleaner, faster, and doesn't fight your existing workflow. Your IDE sees your changes. Your .env files are right there. Your shell is your shell. No worktrees. No parallel universe.
But if you're running multiple agents across repos, want visual session management, or need cloud routines that work while your laptop is closed — the Desktop redesign is the real deal.
The irony is that Anthropic built an incredible multi-agent orchestration tool while the single-agent experience still has a fundamental architecture problem they refuse to fix. Making worktrees optional would take one boolean flag and would immediately convert thousands of holdouts like me.
Maybe in another five months.
Related Reading
- Claude Code: GUI vs Terminal — A Tale of Two Workflows (the original)
- Zed: The Convergence
- Claude Code Skills: The Complete Guide