The Claude desktop app is a native macOS, Windows, and Linux application with three tabs: Chat for conversation, Cowork for autonomous background work in a sandboxed VM, and Code, which is Claude Code with a graphical interface. It bundles Claude Code, so no Node.js or CLI install is needed, and it shares CLAUDE.md, MCP servers, hooks, skills, and settings with the CLI. The Code tab requires a Pro, Max, Team, or Enterprise plan.
- It is one app with three tabs: Chat, Cowork, and Code.
- The Code tab is Claude Code, same engine, graphical interface, no terminal required.
- macOS ships a universal
.dmg; Windows has separate x64 and ARM64 installers. - Linux is in beta via an apt repository, Ubuntu 22.04+ or Debian 12+ only.
- Desktop and CLI share configuration and can run at the same time on the same project.
What it actually is
The Claude desktop app is a native application for macOS, Windows, and Linux. It has three tabs, and confusing them is the source of most of the questions about it.
The three tabs, checked August 2026.
| Tab | What it does | File access |
|---|---|---|
| Chat | General conversation, much like claude.ai | None |
| Cowork | An autonomous agent working in a sandboxed VM, on your machine or an Anthropic-managed one | Inside its VM |
| Code | Claude Code with a GUI: sessions, diffs, terminal, editor, preview | Your local files |
The Code tab is the one developers install it for. It gives you a session sidebar for running parallel work, a drag-and-drop layout with an integrated terminal and file editor, visual diff review with accept and reject per change, live app preview in a browser pane, GitHub PR monitoring with auto-merge, and scheduled tasks. The app bundles Claude Code, so you do not install Node.js or the CLI separately to use it.
Desktop app, Claude Code CLI, or claude.ai
These three overlap enough to be genuinely confusing, and the differences are not cosmetic.
The distinction that the search results collapse.
| Desktop app | Claude Code CLI | claude.ai in a browser | |
|---|---|---|---|
| Shape | Native app, three tabs | Terminal program | Website |
| Touches your local files | Yes, in the Code tab | Yes | No, cloud sessions only |
| Needs a terminal | No | Yes | No |
Scripting, --print, Agent SDK | No | Yes | No |
| Visual diff review | Yes | Text diffs | Yes |
| Parallel sessions | Sidebar tabs, automatic worktrees | Separate terminals, --worktree | Cloud sessions |
| Bedrock, Foundry | Not by default | Yes | No |
| Keeps running when you close it | Only cloud sessions | No | Yes |
| Free plan | Chat only | No | Chat only |
You do not have to choose. Desktop and the CLI run simultaneously, even on the same project. They keep separate session history but read the same configuration, so a CLAUDE.md, an MCP server, a hook, or a skill you set up for one applies to the other. Running /desktop in a CLI session saves it and reopens it in the app.
Install on macOS and Windows
Get the installer from claude.ai or the official docs download cards. Do not download it from a mirror.
| Platform | Artefact | Note |
|---|---|---|
| macOS | .dmg | Universal build, Intel and Apple Silicon |
| Windows x64 | Setup executable | The default download link |
| Windows ARM64 | A separate ARM64 installer | Not interchangeable with x64 |
Install and sign in
Run the installer, launch Claude from Applications on macOS or the Start menu on Windows, and sign in with your Anthropic account or your organisation’s SSO.
Install Git on Windows
On Windows, Git must be present before local Code sessions will work. Install it, then restart the app.
winget install --id Git.Git -e
Most Macs already have git.
Open the Code tab and pick an environment
Click Code at the top centre, then choose where the session runs: Local for your own files, Cloud for sessions that survive closing the app, SSH for a remote machine (the app installs Claude Code there on first connect), or WSL on Windows to run inside a WSL 2 distribution with native Linux paths.
Start in Manual mode and watch what it proposes
The Code tab defaults to Manual: Claude proposes a change, you see a diff, and nothing is written until you accept. Accept edits and Plan are the other two modes worth learning, in that order.
Install on Linux (beta)
Linux support is in beta and all three tabs work. It is delivered as an apt package, so updates arrive with your normal system upgrades rather than through an in-app updater.
- Ubuntu 22.04 or later, or Debian 12 or later.
x86_64orarm64. No other architectures are published.- Other Debian-based distributions that meet these requirements may work but are not officially tested.
Add the signing key and verify its fingerprint
sudo apt install curl gnupg # if either is missing
sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc \
https://downloads.claude.ai/claude-desktop/key.asc
gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc
The fingerprint must be 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE. If the key failed to download, apt update later fails with NO_PUBKEY BAA929FF1A7ECACE.
Register the repository
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" \
| sudo tee /etc/apt/sources.list.d/claude-desktop.list
Install and launch
sudo apt update && sudo apt install claude-desktop
# then, from your launcher or a terminal
claude-desktop
What the Linux beta does not have yet
- Computer use. App and screen control is not available on Linux.
- Dictation. Voice input is macOS and Windows only; the CLI has its own voice dictation.
- Quick Entry global hotkey works on X11; native Wayland needs your desktop environment’s GlobalShortcuts portal.
- Fedora and RHEL. Only Debian-based distributions are supported today.
The CLI supports a much wider range of Linux distributions than the desktop app does, so on Fedora, RHEL, Arch, or anything else outside the tested set, the CLI is the working answer rather than a compromise.
What Desktop can do that the CLI cannot, and the reverse
The differences worth knowing before you pick a default surface.
| Capability | CLI | Desktop |
|---|---|---|
Scripting, --print, Agent SDK | Yes | No, interactive only |
| File attachments (images, PDFs) | No | Yes |
| Session isolation | --worktree flag | Automatic worktrees |
| Multiple sessions | Separate terminals | Sidebar tabs |
| Recurring work | cron, CI | Scheduled tasks in-app |
| Computer use | macOS | macOS and Windows |
| iOS Simulator | Via computer use | Dedicated simulator pane |
| Third-party providers | Bedrock, Agent Platform, Foundry | Anthropic API by default |
| Agent teams | Yes | No, use dynamic workflows |
/permissions and other dialog commands | Yes | Edit settings files instead |
Shared configuration, with one wrinkle
Desktop and CLI read the same CLAUDE.md and CLAUDE.local.md, the same MCP servers from ~/.claude.json and .mcp.json, the same hooks and skills, and the same settings from ~/.claude/settings.json. Permission rules apply to Desktop sessions exactly as they do in the terminal.
The wrinkle is claude_desktop_config.json. The desktop app loads MCP servers from that file into local Code tab sessions as well, and where the same server name appears in both files, the Code tab uses the claude_desktop_config.json definition. The standalone CLI never reads that file at all.
claude mcp add-from-claude-desktop
Update and uninstall
| Platform | Update | Uninstall |
|---|---|---|
| macOS | In-app | Quit, then drag Claude from Applications to the Trash |
| Windows | In-app | Settings, Apps, Installed apps, Claude, Uninstall |
| Linux | sudo apt update && sudo apt upgrade | sudo apt remove claude-desktop |
On Linux the app does not self-update; new versions arrive with your system’s regular package updates or through your graphical software updater. Removing the package also removes the repository entry and signing key it registered, though a repository line you added by hand in the install step needs removing yourself.
Questions people ask
A native macOS, Windows, and Linux application with three tabs: Chat for conversation, Cowork for autonomous work in a sandboxed VM, and Code, which is Claude Code with a graphical interface for your local files.
The Code tab runs the same Claude Code engine as the CLI, with a graphical interface. The app also includes Chat and Cowork, which the CLI does not have, and the CLI has scripting, the Agent SDK, and third-party providers, which the app does not.
No. The desktop app bundles Claude Code. Install the CLI separately only if you also want the claude command in your terminal, in which case the two run side by side and share configuration.
Yes, in beta. It installs from Anthropic’s apt repository on Ubuntu 22.04 or later and Debian 12 or later, on amd64 or arm64. Computer use and dictation are not yet available there, and Fedora and RHEL are not supported.
The app is free to install and the Chat tab works on a free account, but the Code tab requires a Pro, Max, Team, or Enterprise subscription.
Yes, even on the same project. They keep separate session history but share CLAUDE.md, MCP servers, hooks, skills, and settings. Running /desktop in a CLI session moves it into the app.
On macOS quit it and move Claude from Applications to the Trash. On Windows use Settings, Apps, Installed apps. On Linux run sudo apt remove claude-desktop. Configuration in ~/.claude is shared with other Claude Code surfaces, so remove those first if you want it gone.
No. It signs in with a Claude subscription or your organisation’s SSO. Use the CLI for API-key authentication, and see the third-party deployment docs for Bedrock, Google Cloud’s Agent Platform, or Microsoft Foundry.
Sources
Every figure above was read from these pages on August 2026. Vendors reprice without notice; if you find a stale number, tell us.
- Get started with the desktop app downloads, tabs, first session
- Claude Code Desktop reference CLI comparison and shared configuration
- Claude Desktop on Linux (beta) apt install, requirements, beta gaps