Claude Code comes in two local forms: the CLI, which runs in any terminal, and the Code tab of Anthropic's Claude desktop app, which runs the same engine with a graphical interface. Anthropic's own docs point the desktop app at parallel sessions, side-by-side panes and visual diff review, and the CLI at scripting, automation and terminal workflows.
The terminal version is also the one you can leave running in Tmux on a Mac mini or a VPS and reach from a phone over SSH. That remote setup is what this page is mostly about.
The comparison below is dated November 2026 and comes from Anthropic's documentation on the day it was written, with links to each page. Both products change often, so check the CLI comparison in the desktop docs for the current state.
| Terminal (CLI) | Desktop app (Code tab) | |
|---|---|---|
| Interface | Text interface in any terminal, local or over SSH | Graphical app with a sidebar of sessions and panes for chat, diff, browser, terminal and files |
| Runs on | macOS 13+, Windows 10 1809+, Ubuntu 20.04+, Debian 10+, Alpine Linux 3.19+ | macOS, Windows, and Linux in beta (Ubuntu and Debian) |
| Account | Claude subscription or Anthropic Console account; also Amazon Bedrock, Google Cloud's Agent Platform and Microsoft Foundry | Paid Claude subscription; Anthropic's API by default, with gateway and third-party setups documented separately |
| Several sessions | Separate terminals | Sidebar tabs |
| Reviewing work | In the terminal | Diff viewer, app preview, iOS Simulator pane |
| File attachments | Not available | Images and PDFs |
| Permission modes | All modes, including dontAsk | Manual, Accept edits, Plan and Auto; Bypass once enabled |
| Scripting | Print mode and the Agent SDK | Not available; interactive only |
| Recurring tasks | Cron jobs, CI pipelines | Scheduled tasks |
| Computer use | macOS, enabled through /mcp | macOS and Windows |
| Agent teams | Available | Not available (dynamic workflows instead) |
| Dispatch from the phone | Not available | Dispatch sessions in the sidebar (Pro, Max and Ultra) |
| Remote machines | Run it on the remote machine in an SSH session | SSH sessions: the app is the interface, Claude Code runs on the remote machine |
Sources: Desktop feature comparison, CLI system requirements, Claude Code overview, Desktop quickstart, all read 4 November 2026.
Anthropic describes the desktop app as "the same underlying engine with a graphical interface." The two read the same configuration: CLAUDE.md files, MCP servers in ~/.claude.json or .mcp.json, hooks, skills and settings.json. The same models are available in both.
They can also run at the same time on the same project. Each keeps its own session list. Running /desktop in the terminal moves the current session into the app, and /resume inside the app picks up a session started from the CLI on that computer. The /desktop handoff needs a claude.ai subscription and works on macOS and x64 Windows.
The desktop docs put it in one line: "use Desktop when you want to manage parallel sessions in one window, arrange panes side by side, or review changes visually. Use the CLI when you need scripting, automation, or prefer a terminal workflow."
The platforms page lists the CLI as best for "terminal workflows, scripting, remote servers" and the desktop app as best for "visual review, parallel sessions, managed setup." It also calls the CLI "the most complete surface for terminal-native work."
Both versions can work on code that lives on a server. They do it in different ways, and the difference matters once a task runs for hours.
The desktop app can open an SSH session: Claude Code runs on the remote machine and the app on your computer is the interface. The app installs a helper and Claude Code under ~/.claude/remote/ on the remote machine, which needs an SSH server with SFTP turned on.
If the computer running the app sleeps, loses its network or quits, the task carries on until it finishes, needs you, or hits a limit. Anthropic's docs list those limits plainly. With a Claude account sign-in, the docs say not to count on a task running overnight, because the app renews that sign-in only while it is running and connected. Connectors and other tools that run through the app fail while it is disconnected, and if the app doesn't connect for 30 days, the helper stops and ends its Claude Code processes. For work that has to continue with the computer asleep or off, the docs point to a cloud session instead.
The CLI can run directly on the server. SSH in, start Claude Code, and the process belongs to that machine. Put it inside Tmux and it outlives the SSH connection: close the laptop, lose signal on the train, and the session is still there to attach to later. Anthropic's Remote Control docs give the same advice: "If you run claude from a terminal on a remote machine, start it inside tmux or screen to keep the session running after you disconnect from SSH."
In this setup, the screen is whatever terminal attaches. A laptop, a desktop, an iPad and a phone can all attach to the same Tmux session, one after another, and see the same conversation.
tmux attach brings back the same screen, scrollback included.The desktop app has things the terminal doesn't: visual diffs, the app preview and simulator panes, file attachments, and Dispatch. If those are the main draw, the desktop app's SSH sessions bring some of that to a remote machine, within the limits listed above.
claude once and sign in:
curl -fsSL https://claude.ai/install.sh | bash
# or, on a Mac
brew install --cask claude-code
Homebrew installs don't auto-update; brew upgrade claude-code updates them.tmux new -s claude
cd ~/projects/my-app
claude~/.tmux.conf, then run tmux source-file ~/.tmux.conf. Per the terminal configuration docs, these let notifications and progress updates through and let Shift+Enter insert a newline:
set -g allow-passthrough on
set -g focus-events on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
set -g mouse on is worth adding too, for swipe and wheel scrolling through long output. The Tmux cheat sheet has the rest.tmux attach -t claude picks it up again.Anthropic offers three ways to reach Claude Code from a phone, all through the Claude app for iOS and Android. The docs describe that app as "a client for Claude Code sessions rather than a place where code runs."
claude process has to keep running.Remote Control and Tmux work together: a claude process inside Tmux on the server can also be the one the Claude app connects to. Claude Code on iPhone goes further into how these compare with a terminal on the phone.
Shell Drop is a free SSH terminal for iPhone, iPad and iPhone Duo, built for this loop. The phone attaches to the Tmux session on the server and shows the real Claude Code terminal, the same screen you'd see at a desk.
tmux attach -t claude.What the app adds on top of a plain SSH session:
The same server can run Codex in a second Tmux session; Codex on iPhone has that setup. Shell Drop has no account, no subscription and no telemetry.
All read 4 November 2026: Desktop application, Platforms and integrations, Overview, Advanced setup, Desktop quickstart, Remote Control, Claude Code on mobile, Configure your terminal.
It runs the same engine and reads the same configuration, including CLAUDE.md, MCP servers, hooks, skills and settings. The features differ: the desktop app adds visual diffs, app preview, file attachments and Dispatch, while the CLI keeps scripting in print mode, the Agent SDK, agent teams and third-party providers such as Amazon Bedrock.
Claude Desktop is Anthropic's desktop app. It has chat, Cowork and a Code tab, and the Code tab is Claude Code. Claude Code also runs on its own as a CLI in a terminal, in VS Code and JetBrains, on the web and from the Claude mobile app.
Yes, even on the same project. Each keeps its own session list. Run /desktop in the terminal to move a session into the app, or /resume in the app to pick up a session started from the CLI on that computer.
Yes. Its SSH sessions run Claude Code on the remote machine with the app as the interface. Tasks continue for a while if the app disconnects, but Anthropic's docs warn that with a Claude account sign-in a task may not last overnight, because the app renews the sign-in only while it is running and connected.
Start it inside Tmux on the server: tmux new -s claude, then claude. Closing the SSH connection only detaches, and tmux attach -t claude brings the session back. Anthropic's Remote Control docs recommend tmux or screen for exactly this.
Yes. Anthropic's Claude app reaches Claude Code through Remote Control, Dispatch and cloud sessions. With the CLI running in Tmux on a Mac or server, an SSH client on the phone, such as Shell Drop, can also attach to the session and work in the terminal directly.