4 4
5# Use Claude Code Desktop5# Use Claude Code Desktop
6 6
7> Get more out of Claude Code Desktop: parallel sessions with Git isolation, visual diff review, app previews, PR monitoring, permission modes, connectors, and enterprise configuration.7> Get more out of Claude Code Desktop: computer use, Dispatch sessions from your phone, parallel sessions with Git isolation, visual diff review, app previews, PR monitoring, connectors, and enterprise configuration.
8 8
9The Code tab within the Claude Desktop app lets you use Claude Code through a graphical interface instead of the terminal.9The Code tab within the Claude Desktop app lets you use Claude Code through a graphical interface instead of the terminal.
10 10
12 12
13* [Visual diff review](#review-changes-with-diff-view) with inline comments13* [Visual diff review](#review-changes-with-diff-view) with inline comments
14* [Live app preview](#preview-your-app) with dev servers14* [Live app preview](#preview-your-app) with dev servers
15* [Computer use](#let-claude-use-your-computer) to open apps and control your screen on macOS
15* [GitHub PR monitoring](#monitor-pull-request-status) with auto-fix and auto-merge16* [GitHub PR monitoring](#monitor-pull-request-status) with auto-fix and auto-merge
16* [Parallel sessions](#work-in-parallel-with-sessions) with automatic Git worktree isolation17* [Parallel sessions](#work-in-parallel-with-sessions) with automatic Git worktree isolation
18* [Dispatch](#sessions-from-dispatch) integration: send a task from your phone, get a session here
17* [Scheduled tasks](#schedule-recurring-tasks) that run Claude on a recurring schedule19* [Scheduled tasks](#schedule-recurring-tasks) that run Claude on a recurring schedule
18* [Connectors](#connect-external-tools) for GitHub, Slack, Linear, and more20* [Connectors](#connect-external-tools) for GitHub, Slack, Linear, and more
19* Local, [SSH](#ssh-sessions), and [cloud](#run-long-running-tasks-remotely) environments21* Local, [SSH](#ssh-sessions), and [cloud](#run-long-running-tasks-remotely) environments
22 New to Desktop? Start with [Get started](/en/desktop-quickstart) to install the app and make your first edit.24 New to Desktop? Start with [Get started](/en/desktop-quickstart) to install the app and make your first edit.
23</Tip>25</Tip>
24 26
25This page covers [working with code](#work-with-code), [managing sessions](#manage-sessions), [extending Claude Code](#extend-claude-code), [scheduled tasks](#schedule-recurring-tasks), and [configuration](#environment-configuration). It also includes a [CLI comparison](#coming-from-the-cli) and [troubleshooting](#troubleshooting).27This page covers [working with code](#work-with-code), [computer use](#let-claude-use-your-computer), [managing sessions](#manage-sessions), [extending Claude Code](#extend-claude-code), [scheduled tasks](#schedule-recurring-tasks), and [configuration](#environment-configuration). It also includes a [CLI comparison](#coming-from-the-cli) and [troubleshooting](#troubleshooting).
26 28
27## Start a session29## Start a session
28 30
57Permission modes control how much autonomy Claude has during a session: whether it asks before editing files, running commands, or both. You can switch modes at any time using the mode selector next to the send button. Start with Ask permissions to see exactly what Claude does, then move to Auto accept edits or Plan mode as you get comfortable.59Permission modes control how much autonomy Claude has during a session: whether it asks before editing files, running commands, or both. You can switch modes at any time using the mode selector next to the send button. Start with Ask permissions to see exactly what Claude does, then move to Auto accept edits or Plan mode as you get comfortable.
58 60
59| Mode | Settings key | Behavior |61| Mode | Settings key | Behavior |
60| ---------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |62| ---------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
61| **Ask permissions** | `default` | Claude asks before editing files or running commands. You see a diff and can accept or reject each change. Recommended for new users. |63| **Ask permissions** | `default` | Claude asks before editing files or running commands. You see a diff and can accept or reject each change. Recommended for new users. |
62| **Auto accept edits** | `acceptEdits` | Claude auto-accepts file edits but still asks before running terminal commands. Use this when you trust file changes and want faster iteration. |64| **Auto accept edits** | `acceptEdits` | Claude auto-accepts file edits but still asks before running terminal commands. Use this when you trust file changes and want faster iteration. |
63| **Plan mode** | `plan` | Claude analyzes your code and creates a plan without modifying files or running commands. Good for complex tasks where you want to review the approach first. |65| **Plan mode** | `plan` | Claude analyzes your code and creates a plan without modifying files or running commands. Good for complex tasks where you want to review the approach first. |
64| **Bypass permissions** | `bypassPermissions` | Claude runs without permission prompts, equivalent to `--dangerously-skip-permissions` in the CLI. Enable in your Settings → Claude Code under "Allow bypass permissions mode". Only use this in sandboxed containers or VMs. See [permission modes](/en/permissions#permission-modes) for what is and isn't skipped. Enterprise admins can disable this option. |66| **Auto** | `auto` | Claude executes all actions with background safety checks that verify alignment with your request. Reduces permission prompts while maintaining oversight. Currently a research preview. Available on Team plans (Enterprise rolling out shortly). Requires Claude Sonnet 4.6 or Opus 4.6. Enable in your Settings → Claude Code. |
67| **Bypass permissions** | `bypassPermissions` | Claude runs without any permission prompts, equivalent to `--dangerously-skip-permissions` in the CLI. Enable in your Settings → Claude Code under "Allow bypass permissions mode". Only use this in sandboxed containers or VMs. Enterprise admins can disable this option. |
65 68
66The `dontAsk` permission mode is available only in the [CLI](/en/permissions#permission-modes).69The `dontAsk` permission mode is available only in the [CLI](/en/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).
67 70
68<Tip title="Best practice">71<Tip title="Best practice">
69 Start complex tasks in Plan mode so Claude maps out an approach before making changes. Once you approve the plan, switch to Auto accept edits or Ask permissions to execute it. See [explore first, then plan, then code](/en/best-practices#explore-first-then-plan-then-code) for more on this workflow.72 Start complex tasks in Plan mode so Claude maps out an approach before making changes. Once you approve the plan, switch to Auto accept edits or Ask permissions to execute it. See [explore first, then plan, then code](/en/best-practices#explore-first-then-plan-then-code) for more on this workflow.
121 PR monitoring requires the [GitHub CLI (`gh`)](https://cli.github.com/) to be installed and authenticated on your machine. If `gh` is not installed, Desktop prompts you to install it the first time you try to create a PR.124 PR monitoring requires the [GitHub CLI (`gh`)](https://cli.github.com/) to be installed and authenticated on your machine. If `gh` is not installed, Desktop prompts you to install it the first time you try to create a PR.
122</Note>125</Note>
123 126
127## Let Claude use your computer
128
129Computer use lets Claude open your apps, control your screen, and work directly on your machine the way you would. Ask Claude to test a native app in the iOS simulator, interact with a desktop tool that has no CLI, or automate something that only works through a GUI.
130
131<Note>
132 Computer use is a research preview on macOS that requires a Pro or Max plan. It is not available on Team or Enterprise plans. The Claude Desktop app must be running.
133</Note>
134
135Computer use is off by default. [Enable it in Settings](#enable-computer-use) and grant the required macOS permissions before Claude can control your screen.
136
137<Warning>
138 Unlike the [sandboxed Bash tool](/en/sandboxing), computer use runs on your actual desktop with access to whatever you approve. Claude checks each action and flags potential prompt injection from on-screen content, but the trust boundary is different. See the [computer use safety guide](https://support.claude.com/en/articles/14128542) for best practices.
139</Warning>
140
141### When computer use applies
142
143Claude has several ways to interact with an app or service, and computer use is the broadest and slowest. It tries the most precise tool first:
144
145* If you have a [connector](#connect-external-tools) for a service, Claude uses the connector.
146* If the task is a shell command, Claude uses Bash.
147* If the task is browser work and you have [Claude in Chrome](/en/chrome) set up, Claude uses that.
148* If none of those apply, Claude uses computer use.
149
150The [per-app access tiers](#app-permissions) reinforce this: browsers are capped at view-only, and terminals and IDEs at click-only, steering Claude toward the dedicated tool even when computer use is active. Screen control is reserved for things nothing else can reach, like native apps, hardware control panels, the iOS simulator, or proprietary tools without an API.
151
152### Enable computer use
153
154Computer use is off by default. If you ask Claude to do something that needs it while it's off, Claude tells you it could do the task if you enable computer use in Settings. To enable it, open **Settings > Desktop app > General** and toggle **Computer use** on. Before the toggle takes effect, you need to grant two macOS system permissions:
155
156* **Accessibility**: lets Claude click, type, and scroll
157* **Screen Recording**: lets Claude see what's on your screen
158
159The Settings page shows the current status of each permission. If either is denied, click the badge to open the relevant System Settings pane.
160
161### App permissions
162
163The first time Claude needs to use an app, a prompt appears in your session. Click **Allow for this session** or **Deny**. Approvals last for the current session, or 30 minutes in [Dispatch-spawned sessions](#sessions-from-dispatch).
164
165The prompt also shows what level of control Claude gets for that app. These tiers are fixed by app category and can't be changed:
166
167| Tier | What Claude can do | Applies to |
168| :----------- | :------------------------------------------------------- | :-------------------------- |
169| View only | See the app in screenshots | Browsers, trading platforms |
170| Click only | Click and scroll, but not type or use keyboard shortcuts | Terminals, IDEs |
171| Full control | Click, type, drag, and use keyboard shortcuts | Everything else |
172
173Apps with broad reach like Terminal, Finder, and System Settings show an extra warning in the prompt so you know what approving them grants.
174
175You can configure two settings in **Settings > Desktop app > General**:
176
177* **Denied apps**: add apps here to reject them without prompting. Claude may still affect a denied app indirectly through actions in an allowed app, but it can't interact with the denied app directly.
178* **Unhide apps when Claude finishes**: while Claude is working, your other windows are hidden so it interacts with only the approved app. When Claude finishes, hidden windows are restored unless you turn this setting off.
179
124## Manage sessions180## Manage sessions
125 181
126Each session is an independent conversation with its own context and changes. You can run multiple sessions in parallel or send work to the cloud.182Each session is an independent conversation with its own context and changes. You can run multiple sessions in parallel, send work to the cloud, or let Dispatch start sessions for you from your phone.
127 183
128### Work in parallel with sessions184### Work in parallel with sessions
129 185
152* **Claude Code on the Web**: sends your local session to continue running remotely. Desktop pushes your branch, generates a summary of the conversation, and creates a new remote session with the full context. You can then choose to archive the local session or keep it. This requires a clean working tree, and is not available for SSH sessions.208* **Claude Code on the Web**: sends your local session to continue running remotely. Desktop pushes your branch, generates a summary of the conversation, and creates a new remote session with the full context. You can then choose to archive the local session or keep it. This requires a clean working tree, and is not available for SSH sessions.
153* **Your IDE**: opens your project in a supported IDE at the current working directory.209* **Your IDE**: opens your project in a supported IDE at the current working directory.
154 210
211### Sessions from Dispatch
212
213[Dispatch](https://support.claude.com/en/articles/13947068) is a persistent conversation with Claude that lives in the [Cowork](https://claude.com/product/cowork#dispatch-and-computer-use) tab. You message Dispatch a task, and it decides how to handle it.
214
215A task can end up as a Code session in two ways: you ask for one directly, such as "open a Claude Code session and fix the login bug", or Dispatch decides the task is development work and spawns one on its own. Tasks that typically route to Code include fixing bugs, updating dependencies, running tests, or opening pull requests. Research, document editing, and spreadsheet work stay in Cowork.
216
217Either way, the Code session appears in the Code tab's sidebar with a **Dispatch** badge. You get a push notification on your phone when it finishes or needs your approval.
218
219If you have [computer use](#let-claude-use-your-computer) enabled, Dispatch-spawned Code sessions can use it too. App approvals in those sessions expire after 30 minutes and re-prompt, rather than lasting the full session like regular Code sessions.
220
221For setup, pairing, and Dispatch settings, see the [Dispatch help article](https://support.claude.com/en/articles/13947068). Dispatch requires a Pro or Max plan and is not available on Team or Enterprise plans.
222
223Dispatch is one of several ways to work with Claude when you're away from your terminal. See [Platforms and integrations](/en/platforms#work-when-you-are-away-from-your-terminal) to compare it with Remote Control, Channels, Slack, and scheduled tasks.
224
155## Extend Claude Code225## Extend Claude Code
156 226
157Connect external services, add reusable workflows, customize Claude's behavior, and configure preview servers.227Connect external services, add reusable workflows, customize Claude's behavior, and configure preview servers.
325 395
326### Compare scheduling options396### Compare scheduling options
327 397
328<Snippet file="scheduling-comparison.mdx" />398Claude Code offers three ways to schedule recurring work:
399
400| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop#schedule-recurring-tasks) | [`/loop`](/en/scheduled-tasks) |
401| :------------------------- | :------------------------------- | :---------------------------------------------- | :----------------------------- |
402| Runs on | Anthropic cloud | Your machine | Your machine |
403| Requires machine on | No | Yes | Yes |
404| Requires open session | No | No | Yes |
405| Persistent across restarts | Yes | Yes | No (session-scoped) |
406| Access to local files | No (fresh clone) | Yes | Yes |
407| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |
408| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |
409| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |
410| Minimum interval | 1 hour | 1 minute | 1 minute |
411
412<Tip>
413 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.
414</Tip>
329 415
330The Schedule page supports two kinds of tasks:416The Schedule page supports two kinds of tasks:
331 417
449Managed settings override project and user settings and apply when Desktop spawns CLI sessions. You can set these keys in your organization's [managed settings](/en/settings#settings-precedence) file or push them remotely through the admin console.535Managed settings override project and user settings and apply when Desktop spawns CLI sessions. You can set these keys in your organization's [managed settings](/en/settings#settings-precedence) file or push them remotely through the admin console.
450 536
451| Key | Description |537| Key | Description |
452| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |538| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
453| `disableBypassPermissionsMode` | set to `"disable"` to prevent users from enabling Bypass permissions mode. See [managed settings](/en/permissions#managed-only-settings). |539| `permissions.disableBypassPermissionsMode` | set to `"disable"` to prevent users from enabling Bypass permissions mode. |
540| `disableAutoMode` | set to `"disable"` to prevent users from enabling [Auto](/en/permission-modes#eliminate-prompts-with-auto-mode) mode. Removes Auto from the mode selector. Also accepted under `permissions`. |
541| `autoMode` | customize what the auto mode classifier trusts and blocks across your organization. See [Configure the auto mode classifier](/en/permissions#configure-the-auto-mode-classifier). |
454 542
455For the complete list of managed-only settings including `allowManagedPermissionRulesOnly` and `allowManagedHooksOnly`, see [managed-only settings](/en/permissions#managed-only-settings).543`permissions.disableBypassPermissionsMode` and `disableAutoMode` also work in user and project settings, but placing them in managed settings prevents users from overriding them. `autoMode` is read from user settings, `.claude/settings.local.json`, and managed settings, but not from the checked-in `.claude/settings.json`: a cloned repo cannot inject its own classifier rules. For the complete list of managed-only settings including `allowManagedPermissionRulesOnly` and `allowManagedHooksOnly`, see [managed-only settings](/en/permissions#managed-only-settings).
456 544
457Remote managed settings uploaded through the admin console currently apply to CLI and IDE sessions only. For Desktop-specific restrictions, use the admin console controls above.545Remote managed settings uploaded through the admin console currently apply to CLI and IDE sessions only. For Desktop-specific restrictions, use the admin console controls above.
458 546
498 586
499| CLI | Desktop equivalent |587| CLI | Desktop equivalent |
500| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |588| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
501| `--model sonnet` | model dropdown next to the send button, before starting a session |589| `--model sonnet` | Model dropdown next to the send button, before starting a session |
502| `--resume`, `--continue` | click a session in the sidebar |590| `--resume`, `--continue` | Click a session in the sidebar |
503| `--permission-mode` | mode selector next to the send button |591| `--permission-mode` | Mode selector next to the send button |
504| `--dangerously-skip-permissions` | Bypass permissions mode. Enable in Settings → Claude Code → "Allow bypass permissions mode". Enterprise admins can disable this setting. |592| `--dangerously-skip-permissions` | Bypass permissions mode. Enable in Settings → Claude Code → "Allow bypass permissions mode". Enterprise admins can disable this setting. |
505| `--add-dir` | add multiple repos with the **+** button in remote sessions |593| `--add-dir` | Add multiple repos with the **+** button in remote sessions |
506| `--allowedTools`, `--disallowedTools` | not available in Desktop |594| `--allowedTools`, `--disallowedTools` | Not available in Desktop |
507| `--verbose` | not available. Check system logs: Console.app on macOS, Event Viewer → Windows Logs → Application on Windows |595| `--verbose` | Not available. Check system logs: Console.app on macOS, Event Viewer → Windows Logs → Application on Windows |
508| `--print`, `--output-format` | not available. Desktop is interactive only. |596| `--print`, `--output-format` | Not available. Desktop is interactive only. |
509| `ANTHROPIC_MODEL` env var | model dropdown next to the send button |597| `ANTHROPIC_MODEL` env var | Model dropdown next to the send button |
510| `MAX_THINKING_TOKENS` env var | set in shell profile; applies to local sessions. See [environment configuration](#environment-configuration). |598| `MAX_THINKING_TOKENS` env var | Set in shell profile; applies to local sessions. See [environment configuration](#environment-configuration). |
511 599
512### Shared configuration600### Shared configuration
513 601
529 617
530| Feature | CLI | Desktop |618| Feature | CLI | Desktop |
531| ----------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------- |619| ----------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
532| Permission modes | all modes including `dontAsk` | Ask permissions, Auto accept edits, Plan mode, and Bypass permissions via Settings |620| Permission modes | All modes including `dontAsk` | Ask permissions, Auto accept edits, Plan mode, Auto, and Bypass permissions via Settings |
533| `--dangerously-skip-permissions` | CLI flag | Bypass permissions mode. Enable in Settings → Claude Code → "Allow bypass permissions mode" |621| `--dangerously-skip-permissions` | CLI flag | Bypass permissions mode. Enable in Settings → Claude Code → "Allow bypass permissions mode" |
534| [Third-party providers](/en/third-party-integrations) | Bedrock, Vertex, Foundry | not available. Desktop connects to Anthropic's API directly. |622| [Third-party providers](/en/third-party-integrations) | Bedrock, Vertex, Foundry | Not available. Desktop connects to Anthropic's API directly. |
535| [MCP servers](/en/mcp) | configure in settings files | Connectors UI for local and SSH sessions, or settings files |623| [MCP servers](/en/mcp) | Configure in settings files | Connectors UI for local and SSH sessions, or settings files |
536| [Plugins](/en/plugins) | `/plugin` command | plugin manager UI |624| [Plugins](/en/plugins) | `/plugin` command | Plugin manager UI |
537| @mention files | text-based | with autocomplete |625| @mention files | Text-based | With autocomplete |
538| File attachments | not available | images, PDFs |626| File attachments | Not available | Images, PDFs |
539| Session isolation | [`--worktree`](/en/cli-reference) flag | automatic worktrees |627| Session isolation | [`--worktree`](/en/cli-reference) flag | Automatic worktrees |
540| Multiple sessions | separate terminals | sidebar tabs |628| Multiple sessions | Separate terminals | Sidebar tabs |
541| Recurring tasks | cron jobs, CI pipelines | [scheduled tasks](#schedule-recurring-tasks) |629| Recurring tasks | Cron jobs, CI pipelines | [Scheduled tasks](#schedule-recurring-tasks) |
542| Scripting and automation | [`--print`](/en/cli-reference), [Agent SDK](/en/headless) | not available |630| Computer use | Not available | [App and screen control](#let-claude-use-your-computer) on macOS |
631| Dispatch integration | Not available | [Dispatch sessions](#sessions-from-dispatch) in the sidebar |
632| Scripting and automation | [`--print`](/en/cli-reference), [Agent SDK](/en/headless) | Not available |
543 633
544### What's not available in Desktop634### What's not available in Desktop
545 635