Claude Code on desktop is currently in preview.
New to Claude Code?
Start here to install and make your first edit
Coming from the CLI?
See what’s shared and what’s different
- Chat: A conversational interface for general questions and tasks (like Claude.ai)
- Cowork: An autonomous agent that works on tasks in the background
- Code: An AI coding assistant that reads and edits your project files directly
Installation and setup
Download the app
Download Claude for your platform. You’ll need an Anthropic account (sign up at claude.ai if you don’t have one).For Windows ARM64, download here. Local sessions are not available on ARM64 devices, so use remote sessions instead.Linux is not currently supported.
Open the app and sign in
Launch Claude from your Applications folder (macOS) or Start menu (Windows). Sign in with your Anthropic account.
Getting started
If you already use the CLI, you can skip to How Desktop relates to CLI for a quick overview of differences.Choose a folder and environment
Select Local to run Claude on your machine using your files directly. This is the best choice for getting started. Click Select folder and choose your project directory.You can also run remote sessions that continue in the cloud even if you close the app.
Start a session
Type what you want Claude to do:
- “Find a TODO comment and fix it”
- “Add tests for the main function”
- “Create a CLAUDE.md with instructions for this codebase”
Review and accept changes
By default, Code is in Ask mode, where Claude proposes changes and waits for your approval before applying them. You’ll see:
- A diff view showing exactly what will change in each file
- Accept/Reject buttons to approve or decline each change
- Real-time updates as Claude works through your request
What you can do
Claude Code can edit files, run terminal commands, and understand how your code connects. Try prompts like:Fix the bug in the login functionRun the tests and fix any failuresHow does the authentication flow work?
Choose a permission mode
Control how Claude works using the mode selector next to the send button:- Ask (recommended for new users): Claude asks for your approval before each file edit or command. You see a diff view and can accept or reject each change.
- Code: Claude auto-accepts file edits but still asks before running terminal commands. Use this when you trust file changes and want faster iteration.
- Plan: Claude creates a detailed plan for your approval before making any changes. Good for complex tasks where you want to review the approach first.
Work in parallel with sessions
Click + New session in the sidebar to work on multiple tasks in parallel. For Git repositories, each session gets its own isolated copy of your project using worktrees, so changes in one session don’t affect another until you commit them. Worktrees are stored in~/.claude-worktrees/ by default.
Session isolation requires Git. Without Git, sessions in the same directory edit the same files, so changes in one session are immediately visible in others.
.gitignore (like .env) in new worktrees, create a .worktreeinclude file in your project root listing the file patterns to copy.
To manage a session, click its dropdown in the sidebar to rename it, archive it, or check context usage. When context fills up, Claude automatically summarizes the conversation. You can also ask Claude to compact if you want to free up space earlier.
Run long-running tasks remotely
For large refactors, test suites, migrations, or other long-running tasks, select Remote instead of Local when starting a session. Remote sessions run on Anthropic’s cloud infrastructure and continue even if you close the app or shut down your computer. Check back anytime to see progress or steer Claude in a different direction. Remote sessions support Code and Plan modes. See Claude Code on the web for details on configuring remote environments.Review changes with diff view
After Claude makes changes to your code, the diff view lets you review modifications file by file before creating a pull request. When Claude changes files, a diff stats indicator appears showing the number of lines added and removed (for example,+12 -1). Click this indicator to open the diff viewer, which displays a file list on the left and the changes for each file on the right.
To comment on specific lines, click any line in the diff to open a comment box. Type your feedback and press Enter to send. In the full diff view, press Enter to accept each comment, then Cmd+Enter to send them all. Claude reads your comments and makes the requested changes, which appear as a new diff you can review.
Extend Claude Code
You can extend Claude Code with custom commands, automated workflows, and external integrations.Connect external tools
For local sessions, click the … button before starting and select Connectors to add integrations like Google Calendar, Slack, GitHub, Linear, Notion, and more. Connectors must be configured before the session starts and are only available for local sessions. Once connected, Claude can read your calendar, send messages, create issues, and interact with your tools directly. You can ask Claude what connectors are configured in your session. Connectors are MCP (Model Context Protocol) servers with built-in setup. You can also create custom connectors or add MCP servers manually via configuration files.Create custom skills
Skills are reusable prompts that extend Claude’s capabilities. For example, you could create areview skill that runs your standard code review checklist, or a deploy skill that walks through your deployment steps. Skills are defined as markdown files in .claude/skills/ and can include instructions, context, and even call other tools. Ask Claude what skills are available or to run a specific skill. Claude can also help you create a skill if you describe what you want, or see skills to learn how to write them yourself.
Automate workflows with hooks
Hooks run shell commands automatically in response to Claude Code events. For example, you could run a linter after every file edit, auto-format code, or send notifications when tasks complete. Hooks are configured in your settings files. See hooks for available events and configuration examples.Environment configuration
When starting a session, you choose between Local (runs on your machine) or Remote (runs on Anthropic’s cloud). Local sessions inherit environment variables from your shell. If you need additional variables, set them in your shell profile (~/.zshrc, ~/.bashrc) and restart the desktop app. See environment variables for the full list of supported variables.
Extended thinking is enabled by default, which improves performance on complex reasoning tasks but uses additional tokens. The thinking process runs in the background but isn’t displayed in the Desktop interface. To disable it or adjust the budget, set MAX_THINKING_TOKENS in your shell profile (use 0 to disable).
Remote sessions run on Anthropic’s cloud infrastructure and continue even if you close the app. Usage counts toward your subscription plan limits with no separate compute charges. See Claude Code on the web for details on configuring remote environments.
How Desktop relates to CLI
If you already use the Claude Code CLI, Desktop runs the same underlying engine with a graphical interface. You can run both simultaneously on the same machine, even on the same project. Each maintains separate session history, but they share configuration and project memory (CLAUDE.md files).CLI flag equivalents
If you’re used to CLI flags, the table below shows the Desktop equivalent for each. Some flags have no Desktop equivalent because they’re designed for scripting or automation.| CLI | Desktop equivalent |
|---|---|
--model sonnet | … menu > Model (before starting session) |
--resume, --continue | Click a session in the sidebar |
--allowedTools, --disallowedTools | Not available in Desktop |
--dangerously-skip-permissions | Not available in Desktop |
--print | Not available (Desktop is interactive) |
Shared configuration
Desktop and CLI read the same configuration files, so your setup carries over:- CLAUDE.md and CLAUDE.local.md files in your project are used by both
- MCP servers configured in
~/.claude.jsonor.mcp.jsonwork in both - Hooks and skills defined in settings apply to both
- Settings in
~/.claude.jsonand~/.claude/settings.jsonare shared - Models (Sonnet, Opus, Haiku) are available in both (Desktop requires selecting before starting a session)
MCP servers configured for the Claude Desktop chat app (in
claude_desktop_config.json) are separate from Claude Code. To use MCP servers in Claude Code, configure them in ~/.claude.json or your project’s .mcp.json file. See MCP configuration for details.What’s different
Desktop adds:- Graphical interface with visual session management
- Built-in connectors for common integrations
- Automatic session isolation for Git repositories (each session gets its own worktree)
- Third-party API providers (Bedrock, Vertex, Foundry). If you use these, continue using CLI for those projects.
- CLI flags for scripting (
--print,--resume,--continue) - Programmatic usage via the Agent SDK
Troubleshooting
Solutions to common issues with the Claude desktop app. For CLI issues, see CLI troubleshooting.Check your version
To see which version of the desktop app you’re running:- macOS: Click Claude in the menu bar, then About Claude
- Windows: Click Help, then About
”Branch doesn’t exist yet” when opening in CLI
Remote sessions can create branches that don’t exist on your local machine. Click the branch name in the session toolbar to copy it, then fetch it locally:“Failed to load session” error
This error can occur for several reasons:- The selected folder no longer exists or is inaccessible
- A Git repository requires Git LFS but it’s not installed (see Git LFS errors)
- File permissions prevent access to the project directory
App won’t quit
If the desktop app doesn’t close properly:- macOS: Press Cmd+Q. If the app doesn’t respond, use Force Quit (Cmd+Option+Esc, select Claude, click Force Quit).
- Windows: Use Task Manager (Ctrl+Shift+Esc) to end the Claude process.
Windows installation issues
If the installer fails silently or doesn’t complete properly:- PATH not updated: After installation, open a new terminal window. The PATH updates only apply to new terminal sessions.
- Concurrent installation error: If you see an error about another installation in progress but there isn’t one, try running the installer as Administrator.
Session not finding installed tools
If Claude can’t find tools likenpm, node, or other CLI commands:
- Verify the tools work in your regular terminal
- Check that your shell profile (
~/.zshrc,~/.bashrc) properly sets up PATH - Restart the desktop app to reload environment variables
MCP servers not working (Windows)
If MCP server toggles don’t respond or servers fail to connect on Windows:- Check that the MCP server is properly configured in your settings
- Restart the desktop app after making changes
- Verify the MCP server process is running (check Task Manager)
- Review the server logs for connection errors
Git LFS errors
If you see “Git LFS is required by this repository but is not installed,” your repository uses Git Large File Storage for large binary files. Install Git LFS before opening this repository:- Install Git LFS from git-lfs.com
- Run
git lfs installin your terminal - Restart the desktop app
Enterprise configuration
Organizations can disable local Claude Code use in the desktop application with theisClaudeCodeForDesktopEnabled enterprise policy option. Additionally, Claude Code on the web can be disabled in your admin settings.
Related resources
- Claude Code on the web: Run remote sessions that continue in the cloud
- CLI reference: Use Claude Code in your terminal with flags and scripting
- Common workflows: Tutorials for debugging, refactoring, testing, and more
- Settings reference: Configure Claude Code behavior with settings files
- Claude Desktop support: Help articles for the Chat tab and general desktop app usage
- Enterprise configuration: Admin policies for organizational deployments