Skip to main content
The Claude Desktop app has three tabs: Chat for conversations, Cowork for Dispatch and longer agentic work, and Code for software development. This page is the reference for the Code tab.

Download for macOS

Universal build for Intel and Apple Silicon

Download for Windows

For x64 processors

Get Claude for Linux (beta)

apt or .deb for Ubuntu and Debian
For Windows ARM64, download the ARM64 installer. On Linux, install with apt; see Claude Desktop on Linux. After installing, launch Claude, sign in, and click the Code tab. The first time you open it on Windows, you need Git for Windows installed; restart the app after installing it. For a walkthrough of your first session, see the Get started guide. In the Code tab, each conversation is a session: it has its own chat history, project folder, and code changes, independent of any other session. The sidebar lists your sessions and lets you run several in parallel. Within a session you can: For scheduled recurring work, keyboard shortcuts, or sending tasks from your phone, see the linked pages and sections. If you already use the terminal-based CLI, see the CLI comparison for what carries over.

Start a session

Before you send your first message, configure four things in the prompt area:
  • Environment: choose where Claude runs. Select Local for your machine, Cloud for a cloud session that continues after you close the app, an SSH connection for a remote machine you manage, or on Windows a WSL distribution. See environment configuration.
  • Project folder: select the folder or repository Claude works in. For cloud sessions, you can add multiple repositories.
  • Model: pick a model from the dropdown next to the send button. You can change this during the session.
  • Permission mode: choose how much autonomy Claude has from the mode selector. You can change this during the session.
Type your task and press Enter to start. Each session tracks its own context and changes independently.

Work with code

Give Claude the right context, control how much it does on its own, and review what it changed.

Use the prompt box

Type what you want Claude to do and press Enter to send. Claude reads your project files, makes changes, and runs commands based on your permission mode. You can redirect Claude at any point: click the stop button to interrupt immediately, or type a correction and press Enter to send it without stopping the running action. Claude reads the correction as soon as the current action completes and adjusts before its next step. The + button next to the prompt box gives you access to file attachments, skills, connectors, and plugins.

Add files and context to prompts

The prompt box supports two ways to bring in external context:
  • @mention files: type @ followed by a filename to add a file to the conversation context. Claude can then read and reference that file. @mention is not available in cloud or WSL sessions.
  • Attach files: attach images, PDFs, and other files to your prompt using the attachment button, or drag and drop files directly into the prompt. This is useful for sharing screenshots of bugs, design mockups, or reference documents.

Choose a permission mode

Permission modes control how much autonomy Claude has during a session: whether it asks before editing files, running commands, or both. You can switch permission modes at any time using the mode selector next to the send button. To approve each change yourself, switch to Manual. To set a default mode for new local sessions, add permissions.defaultMode to your settings file. The desktop app reads the same settings files as the CLI. A mode you pick in the selector is remembered per folder and takes precedence over defaultMode for that folder, except Plan, which applies to the current session only. Earlier versions of the Code tab labeled these modes Ask permissions, Auto accept edits, and Plan mode. The dontAsk permission mode is available only in the CLI. Auto mode is available to all users on the Anthropic API and requires Claude Opus 4.6 or later, Sonnet 4.6 or later, or Fable 5. Organization administrators can turn auto mode off with the disableAutoMode key in managed settings. In Enterprise deployments that route Desktop to Google Cloud’s Agent Platform, auto mode is also available by default; see Auto mode on Bedrock, Agent Platform, or Foundry for the supported models.
Start complex tasks in Plan so Claude maps out an approach before making changes. Once you approve the plan, switch to Accept edits or Manual to execute it. See explore first, then plan, then code for more on this workflow.
Cloud sessions support Accept edits, Plan, and Auto. Accept edits corresponds to default mode: cloud sessions pre-approve file edits, so the selector shows Accept edits instead of Manual. Bypass permissions isn’t available in cloud sessions, including sessions in a self-hosted environment. Enterprise admins can restrict which permission modes are available. See enterprise configuration for details.

Preview your app

Claude can start a dev server and open it in the Browser pane to verify its changes. This works for frontend web apps as well as backend servers: Claude can test API endpoints, view server logs, and iterate on issues it finds. In most cases, Claude starts the server automatically after editing project files. You can also ask Claude to preview at any time. By default, Claude auto-verifies changes after every edit. The Browser pane can also open static HTML files, PDFs, images, and videos from your project. Click an HTML, PDF, image, or video path in the chat to open it there. From the Browser pane, you can:
  • Interact with your running app directly in the Browser pane
  • Watch Claude verify its own changes automatically: it takes screenshots, inspects the DOM, clicks elements, fills forms, and fixes issues it finds
  • Start or stop servers from the server dropdown in the session toolbar
  • Persist cookies and local storage across server restarts by selecting Persist sessions in the dropdown, so you don’t have to re-login during development
  • Edit the server configuration or stop all servers at once
Claude creates the initial server configuration based on your project. If your app uses a custom dev command, edit .claude/launch.json to match your setup. See Configure preview servers for the full reference. To clear saved session data, or to turn the Browser off entirely, use the toggles in Settings → Claude Code.

Browse external sites

The Browser pane is a tabbed browser, so you can open documentation, issue trackers, or any other site next to your running app. To open the Browser, press Cmd+Shift+B on macOS or Ctrl+Shift+B on Windows, or select it from the Views menu. When you click an external link in the chat, a chooser offers Open in app to use the Browser pane or Default browser to use your own; Cmd-click on macOS or Ctrl-click on Windows opens a link in your system browser directly. You can sign in to sites in the pane, including popup sign-in flows such as Google OAuth. Claude can read and interact with external pages using the same tools it uses to verify your app, with two additional safety checks:
  • Safety classifiers review Claude’s write actions on external pages, such as clicking and typing, in every permission mode. These are the same classifiers auto mode uses, and when they flag an action, you get a permission prompt regardless of mode.
  • In permission modes other than Auto and Bypass permissions, a domain allowlist check also applies before Claude navigates to a new site.

Approve Claude’s actions on a site

The first time Claude acts on an external site, a permission card appears and Claude waits for your choice: Allow once, Always allow, or Deny. Allow once approves the action without saving anything. Always allow saves the approval for that site on your device, and you can revoke it in Settings. Each site needs its own approval, including subdomains. Your local dev servers and project files don’t need approval, so auto-verify keeps working without prompts. Even on an approved site, Claude won’t purchase items, create accounts, or bypass CAPTCHAs without your input. Browsing in the Browser pane uses the same safety model as the Claude in Chrome extension. See Using Claude in Chrome safely for how Claude handles sensitive sites and risky actions.

Choose between the Browser and the Chrome extension

The Browser pane uses a clean browser profile, separate from your personal browser, with none of your saved logins or history. Use it for building and testing your app and for sites that don’t need your identity. When you want Claude to act as you in your logged-in sessions, use the Claude in Chrome extension instead, which shares your browser’s login state.

Restrict external browsing for your organization

The Browser follows the same site allowlist and blocklist controls as the Claude in Chrome extension. If your organization already configured those lists for the extension, the Browser respects them automatically. Administrators can also turn off Claude’s tools on external pages with the browserExternalPageTools managed setting. With tools disabled, users can still navigate to external sites; Claude’s tools can’t read or act on them. To turn off external browsing entirely, set the disableBrowserExternalNavigation managed setting to true. This blocks all external navigation in the Browser, including sites on your organization’s allowlist; localhost dev servers and file previews keep working. Use browserExternalPageTools to let users keep browsing external sites without Claude’s tools, and disableBrowserExternalNavigation to block external sites for both users and Claude.

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, such as +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 add the comment. After adding comments to multiple lines, submit all comments at once:
  • macOS: press Cmd+Enter
  • Windows: press Ctrl+Enter
Claude reads your comments and makes the requested changes, which appear as a new diff you can review.

Review your code

In the diff view, click