SpyBara
Go Premium

Documentation 2026-04-02 21:08 UTC to 2026-04-03 21:07 UTC

26 files changed +584 −333. View all changes and history on the product overview
2026
Wed 29 21:21 Tue 28 21:21 Mon 27 21:20 Sun 26 04:08 Sat 25 21:10 Fri 24 18:11 Thu 23 18:19 Wed 22 21:15 Tue 21 21:14 Mon 20 21:14 Sat 18 18:09 Fri 17 21:13 Thu 16 21:13 Wed 15 18:20 Tue 14 21:14 Mon 13 21:14 Sat 11 00:11 Fri 10 21:09 Thu 9 21:14 Wed 8 21:13 Tue 7 21:14 Sat 4 18:05 Fri 3 21:07 Thu 2 21:08 Wed 1 21:12
Details

23 23 

24### 1. Submit use case details24### 1. Submit use case details

25 25 

26First-time users of Anthropic models are required to submit use case details before invoking a model. This is done once per account.26First-time users of Anthropic models are required to submit use case details before invoking a model. This is done once per AWS account.

27 27 

281. Ensure you have the right IAM permissions (see more on that below)281. Ensure you have the right IAM permissions described below

292. Navigate to the [Amazon Bedrock console](https://console.aws.amazon.com/bedrock/)292. Navigate to the [Amazon Bedrock console](https://console.aws.amazon.com/bedrock/)

303. Select **Chat/Text playground**303. Select an Anthropic model from the **Model catalog**

314. Choose any Anthropic model and you will be prompted to fill out the use case form314. Complete the use case form. Access is granted immediately after submission.

32 

33If you use AWS Organizations, you can submit the form once from the management account using the [`PutUseCaseForModelAccess` API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_PutUseCaseForModelAccess.html). This call requires the `bedrock:PutUseCaseForModelAccess` IAM permission. Approval extends to child accounts automatically.

32 34 

33### 2. Configure AWS credentials35### 2. Configure AWS credentials

34 36 


279* [Bedrock documentation](https://docs.aws.amazon.com/bedrock/)281* [Bedrock documentation](https://docs.aws.amazon.com/bedrock/)

280* [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/)282* [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/)

281* [Bedrock inference profiles](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)283* [Bedrock inference profiles](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)

284* [Bedrock token burndown and quotas](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas-token-burndown.html)

282* [Claude Code on Amazon Bedrock: Quick Setup Guide](https://community.aws/content/2tXkZKrZzlrlu0KfH8gST5Dkppq/claude-code-on-amazon-bedrock-quick-setup-guide)285* [Claude Code on Amazon Bedrock: Quick Setup Guide](https://community.aws/content/2tXkZKrZzlrlu0KfH8gST5Dkppq/claude-code-on-amazon-bedrock-quick-setup-guide)

283* [Claude Code Monitoring Implementation (Bedrock)](https://github.com/aws-solutions-library-samples/guidance-for-claude-code-with-amazon-bedrock/blob/main/assets/docs/MONITORING.md)286* [Claude Code Monitoring Implementation (Bedrock)](https://github.com/aws-solutions-library-samples/guidance-for-claude-code-with-amazon-bedrock/blob/main/assets/docs/MONITORING.md)

Details

196 196 

197* **Home folder (`~/.claude/CLAUDE.md`)**: applies to all Claude sessions197* **Home folder (`~/.claude/CLAUDE.md`)**: applies to all Claude sessions

198* **Project root (`./CLAUDE.md`)**: check into git to share with your team198* **Project root (`./CLAUDE.md`)**: check into git to share with your team

199* **Project root (`./CLAUDE.local.md`)**: personal project-specific notes; add this file to your `.gitignore` so it isn't shared with your team

199* **Parent directories**: useful for monorepos where both `root/CLAUDE.md` and `root/foo/CLAUDE.md` are pulled in automatically200* **Parent directories**: useful for monorepos where both `root/CLAUDE.md` and `root/foo/CLAUDE.md` are pulled in automatically

200* **Child directories**: Claude pulls in child CLAUDE.md files on demand when working with files in those directories201* **Child directories**: Claude pulls in child CLAUDE.md files on demand when working with files in those directories

201 202 

Details

145 145 

146This pattern gives you control over the strategy while letting Claude execute autonomously in the cloud.146This pattern gives you control over the strategy while letting Claude execute autonomously in the cloud.

147 147 

148**Plan in the cloud with ultraplan**: To draft and review the plan itself in a web session, use [ultraplan](/en/ultraplan). Claude generates the plan on Claude Code on the web while you keep working, then you comment on sections in your browser and choose to execute remotely or send the plan back to your terminal.

149 

148**Run tasks in parallel**: Each `--remote` command creates its own web session that runs independently. You can kick off multiple tasks and they'll all run simultaneously in separate sessions:150**Run tasks in parallel**: Each `--remote` command creates its own web session that runs independently. You can kick off multiple tasks and they'll all run simultaneously in separate sessions:

149 151 

150```bash theme={null}152```bash theme={null}

commands.md +1 −0

Details

75| `/tasks` | List and manage background tasks. Also available as `/bashes` |75| `/tasks` | List and manage background tasks. Also available as `/bashes` |

76| `/terminal-setup` | Configure terminal keybindings for Shift+Enter and other shortcuts. Only visible in terminals that need it, like VS Code, Alacritty, or Warp |76| `/terminal-setup` | Configure terminal keybindings for Shift+Enter and other shortcuts. Only visible in terminals that need it, like VS Code, Alacritty, or Warp |

77| `/theme` | Change the color theme. Includes light and dark variants, colorblind-accessible (daltonized) themes, and ANSI themes that use your terminal's color palette |77| `/theme` | Change the color theme. Includes light and dark variants, colorblind-accessible (daltonized) themes, and ANSI themes that use your terminal's color palette |

78| `/ultraplan <prompt>` | Draft a plan in an [ultraplan](/en/ultraplan) session, review it in your browser, then execute remotely or send it back to your terminal |

78| `/upgrade` | Open the upgrade page to switch to a higher plan tier |79| `/upgrade` | Open the upgrade page to switch to a higher plan tier |

79| `/usage` | Show plan usage limits and rate limit status |80| `/usage` | Show plan usage limits and rate limit status |

80| `/vim` | Toggle between Vim and Normal editing modes |81| `/vim` | Toggle between Vim and Normal editing modes |

Details

931Pick a scheduling option based on where you want the task to run:931Pick a scheduling option based on where you want the task to run:

932 932 

933| Option | Where it runs | Best for |933| Option | Where it runs | Best for |

934| :-------------------------------------------------------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------ |934| :----------------------------------------------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------ |

935| [Cloud scheduled tasks](/en/web-scheduled-tasks) | Anthropic-managed infrastructure | Tasks that should run even when your computer is off. Configure at [claude.ai/code](https://claude.ai/code). |935| [Cloud scheduled tasks](/en/web-scheduled-tasks) | Anthropic-managed infrastructure | Tasks that should run even when your computer is off. Configure at [claude.ai/code](https://claude.ai/code). |

936| [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks) | Your machine, via the desktop app | Tasks that need direct access to local files, tools, or uncommitted changes. |936| [Desktop scheduled tasks](/en/desktop-scheduled-tasks) | Your machine, via the desktop app | Tasks that need direct access to local files, tools, or uncommitted changes. |

937| [GitHub Actions](/en/github-actions) | Your CI pipeline | Tasks tied to repo events like opened PRs, or cron schedules that should live alongside your workflow config. |937| [GitHub Actions](/en/github-actions) | Your CI pipeline | Tasks tied to repo events like opened PRs, or cron schedules that should live alongside your workflow config. |

938| [`/loop`](/en/scheduled-tasks) | The current CLI session | Quick polling while a session is open. Tasks are cancelled when you exit. |938| [`/loop`](/en/scheduled-tasks) | The current CLI session | Quick polling while a session is open. Tasks are cancelled when you exit. |

939 939 

computer-use.md +4 −3

Details

14 14 

15Computer use lets Claude open apps, control your screen, and work on your machine the way you would. From the CLI, Claude can compile a Swift app, launch it, click through every button, and screenshot the result, all in the same conversation where it wrote the code.15Computer use lets Claude open apps, control your screen, and work on your machine the way you would. From the CLI, Claude can compile a Swift app, launch it, click through every button, and screenshot the result, all in the same conversation where it wrote the code.

16 16 

17This page covers how computer use works in the CLI. For the Desktop app, see [computer use in Desktop](/en/desktop#let-claude-use-your-computer).17This page covers how computer use works in the CLI. For the Desktop app on macOS or Windows, see [computer use in Desktop](/en/desktop#let-claude-use-your-computer).

18 18 

19## What you can do with computer use19## What you can do with computer use

20 20 


169 169 

170## Differences from the Desktop app170## Differences from the Desktop app

171 171 

172The CLI and Desktop surfaces share the same computer use engine. A few Desktop-specific controls aren't yet in the CLI:172The CLI and Desktop surfaces share the same computer use engine, with a few differences:

173 173 

174| Feature | Desktop | CLI |174| Feature | Desktop | CLI |

175| :------------------- | :------------------------------------------------------- | :------------------------------ |175| :------------------- | :------------------------------------------------------- | :------------------------------ |

176| Platforms | macOS and Windows | macOS only |

176| Enable | Toggle in **Settings > General** (under **Desktop app**) | Enable `computer-use` in `/mcp` |177| Enable | Toggle in **Settings > General** (under **Desktop app**) | Enable `computer-use` in `/mcp` |

177| Denied apps list | Configurable in Settings | Not yet available |178| Denied apps list | Configurable in Settings | Not yet available |

178| Auto-unhide toggle | Optional | Always on |179| Auto-unhide toggle | Optional | Always on |


192 193 

193The server only appears on eligible setups. Check that:194The server only appears on eligible setups. Check that:

194 195 

195* You're on macOS. Computer use is not available on Linux or Windows.196* You're on macOS. Computer use in the CLI is not available on Linux or Windows. On Windows, use [computer use in Desktop](/en/desktop#let-claude-use-your-computer) instead.

196* You're running Claude Code v2.1.85 or later. Run `claude --version` to check.197* You're running Claude Code v2.1.85 or later. Run `claude --version` to check.

197* You're on a Pro or Max plan. Run `/status` to confirm your subscription.198* You're on a Pro or Max plan. Run `/status` to confirm your subscription.

198* You're authenticated through claude.ai. Computer use is not available with third-party providers like Amazon Bedrock, Google Cloud Vertex AI, or Microsoft Foundry. If you access Claude exclusively through a third-party provider, you need a separate claude.ai account to use this feature.199* You're authenticated through claude.ai. Computer use is not available with third-party providers like Amazon Bedrock, Google Cloud Vertex AI, or Microsoft Foundry. If you access Claude exclusively through a third-party provider, you need a separate claude.ai account to use this feature.

desktop.md +14 −107

Details

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 macOS15* [Computer use](#let-claude-use-your-computer) to open apps and control your screen on macOS and Windows

16* [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

17* [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 here18* [Dispatch](#sessions-from-dispatch) integration: send a task from your phone, get a session here

19* [Scheduled tasks](#schedule-recurring-tasks) that run Claude on a recurring schedule19* [Scheduled tasks](/en/desktop-scheduled-tasks) that run Claude on a recurring schedule

20* [Connectors](#connect-external-tools) for GitHub, Slack, Linear, and more20* [Connectors](#connect-external-tools) for GitHub, Slack, Linear, and more

21* 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 22 


24 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.

25</Tip>25</Tip>

26 26 

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).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), and [configuration](#environment-configuration). It also includes a [CLI comparison](#coming-from-the-cli) and [troubleshooting](#troubleshooting).

28 28 

29## Start a session29## Start a session

30 30 


126 126 

127## Let Claude use your computer127## Let Claude use your computer

128 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.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 a mobile simulator, interact with a desktop tool that has no CLI, or automate something that only works through a GUI.

130 130 

131<Note>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.132 Computer use is a research preview on macOS and Windows 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>133</Note>

134 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.135Computer use is off by default. [Enable it in Settings](#enable-computer-use) before Claude can control your screen. On macOS, you also need to grant Accessibility and Screen Recording permissions.

136 136 

137<Warning>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.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.


147* If the task is browser work and you have [Claude in Chrome](/en/chrome) set up, Claude uses that.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.148* If none of those apply, Claude uses computer use.

149 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.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, mobile simulators, or proprietary tools without an API.

151 151 

152### Enable computer use152### Enable computer use

153 153 


159 </Step>159 </Step>

160 160 

161 <Step title="Turn on the toggle">161 <Step title="Turn on the toggle">

162 In the desktop app, go to **Settings > General** (under **Desktop app**). Find the **Computer use** toggle and turn it on.162 In the desktop app, go to **Settings > General** (under **Desktop app**). Find the **Computer use** toggle and turn it on. On Windows, the toggle takes effect immediately and setup is complete. On macOS, continue to the next step.

163 163 

164 If you don't see the toggle, confirm you're on macOS with a Pro or Max plan, then update and restart the app.164 If you don't see the toggle, confirm you're on macOS or Windows with a Pro or Max plan, then update and restart the app.

165 </Step>165 </Step>

166 166 

167 <Step title="Grant macOS permissions">167 <Step title="Grant macOS permissions">

168 Before the toggle takes effect, grant two macOS system permissions:168 On macOS, grant two system permissions before the toggle takes effect:

169 169 

170 * **Accessibility**: lets Claude click, type, and scroll170 * **Accessibility**: lets Claude click, type, and scroll

171 * **Screen Recording**: lets Claude see what's on your screen171 * **Screen Recording**: lets Claude see what's on your screen


186| Click only | Click and scroll, but not type or use keyboard shortcuts | Terminals, IDEs |186| Click only | Click and scroll, but not type or use keyboard shortcuts | Terminals, IDEs |

187| Full control | Click, type, drag, and use keyboard shortcuts | Everything else |187| Full control | Click, type, drag, and use keyboard shortcuts | Everything else |

188 188 

189Apps with broad reach like Terminal, Finder, and System Settings show an extra warning in the prompt so you know what approving them grants.189Apps with broad reach, like terminals, Finder or File Explorer, and System Settings or Settings, show an extra warning in the prompt so you know what approving them grants.

190 190 

191You can configure two settings in **Settings > General** (under **Desktop app**):191You can configure two settings in **Settings > General** (under **Desktop app**):

192 192 


407 </Tab>407 </Tab>

408</Tabs>408</Tabs>

409 409 

410## Schedule recurring tasks

411 

412By default, scheduled tasks start a new session automatically at a time and frequency you choose. Use them for recurring work like daily code reviews, dependency update checks, or morning briefings that pull from your calendar and inbox.

413 

414### Compare scheduling options

415 

416Claude Code offers three ways to schedule recurring work:

417 

418| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop#schedule-recurring-tasks) | [`/loop`](/en/scheduled-tasks) |

419| :------------------------- | :------------------------------- | :---------------------------------------------- | :----------------------------- |

420| Runs on | Anthropic cloud | Your machine | Your machine |

421| Requires machine on | No | Yes | Yes |

422| Requires open session | No | No | Yes |

423| Persistent across restarts | Yes | Yes | No (session-scoped) |

424| Access to local files | No (fresh clone) | Yes | Yes |

425| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

426| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

427| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

428| Minimum interval | 1 hour | 1 minute | 1 minute |

429 

430<Tip>

431 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.

432</Tip>

433 

434The Schedule page supports two kinds of tasks:

435 

436* **Local tasks**: run on your machine. They have direct access to your local files and tools, but the desktop app must be open and your computer awake for them to run.

437* **Remote tasks**: run on Anthropic-managed cloud infrastructure. They keep running even when your computer is off, but work against a fresh clone of your repository rather than your local checkout.

438 

439Both kinds appear in the same task grid. Click **New task** to pick which kind to create. The rest of this section covers local tasks; for remote tasks, see [Cloud scheduled tasks](/en/web-scheduled-tasks).

440 

441See [How scheduled tasks run](#how-scheduled-tasks-run) for details on missed runs and catch-up behavior for local tasks.

442 

443<Note>

444 By default, local scheduled tasks run against whatever state your working directory is in, including uncommitted changes. Enable the worktree toggle in the prompt input to give each run its own isolated Git worktree, the same way [parallel sessions](#work-in-parallel-with-sessions) work.

445</Note>

446 

447To create a local scheduled task, click **Schedule** in the sidebar, click **New task**, and choose **New local task**. Configure these fields:

448 

449| Field | Description |

450| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

451| Name | Identifier for the task. Converted to lowercase kebab-case and used as the folder name on disk. Must be unique across your tasks. |

452| Description | Short summary shown in the task list. |

453| Prompt | The instructions sent to Claude when the task runs. Write this the same way you'd write any message in the prompt box. The prompt input also includes controls for model, permission mode, working folder, and worktree. |

454| Frequency | How often the task runs. See [frequency options](#frequency-options) below. |

455 

456You can also create a task by describing what you want in any session. For example, "set up a daily code review that runs every morning at 9am."

457 

458### Frequency options

459 

460* **Manual**: no schedule, only runs when you click **Run now**. Useful for saving a prompt you trigger on demand

461* **Hourly**: runs every hour. Each task gets a fixed offset of up to 10 minutes from the top of the hour to stagger API traffic

462* **Daily**: shows a time picker, defaults to 9:00 AM local time

463* **Weekdays**: same as Daily but skips Saturday and Sunday

464* **Weekly**: shows a time picker and a day picker

465 

466For intervals the picker doesn't offer (every 15 minutes, first of each month, etc.), ask Claude in any Desktop session to set the schedule. Use plain language; for example, "schedule a task to run all the tests every 6 hours."

467 

468### How scheduled tasks run

469 

470Local scheduled tasks run on your machine. Desktop checks the schedule every minute while the app is open and starts a fresh session when a task is due, independent of any manual sessions you have open. Each task gets a fixed delay of up to 10 minutes after the scheduled time to stagger API traffic. The delay is deterministic: the same task always starts at the same offset.

471 

472When a task fires, you get a desktop notification and a new session appears under a **Scheduled** section in the sidebar. Open it to see what Claude did, review changes, or respond to permission prompts. The session works like any other: Claude can edit files, run commands, create commits, and open pull requests.

473 

474Tasks only run while the desktop app is running and your computer is awake. If your computer sleeps through a scheduled time, the run is skipped. To prevent idle-sleep, enable **Keep computer awake** in Settings under **Desktop app → General**. Closing the laptop lid still puts it to sleep. For tasks that need to run even when your computer is off, use a [remote task](/en/web-scheduled-tasks) instead.

475 

476### Missed runs

477 

478When the app starts or your computer wakes, Desktop checks whether each task missed any runs in the last seven days. If it did, Desktop starts exactly one catch-up run for the most recently missed time and discards anything older. A daily task that missed six days runs once on wake. Desktop shows a notification when a catch-up run starts.

479 

480Keep this in mind when writing prompts. A task scheduled for 9am might run at 11pm if your computer was asleep all day. If timing matters, add guardrails to the prompt itself, for example: "Only review today's commits. If it's after 5pm, skip the review and just post a summary of what was missed."

481 

482### Permissions for scheduled tasks

483 

484Each task has its own permission mode, which you set when creating or editing the task. Allow rules from `~/.claude/settings.json` also apply to scheduled task sessions. If a task runs in Ask mode and needs to run a tool it doesn't have permission for, the run stalls until you approve it. The session stays open in the sidebar so you can answer later.

485 

486To avoid stalls, click **Run now** after creating a task, watch for permission prompts, and select "always allow" for each one. Future runs of that task auto-approve the same tools without prompting. You can review and revoke these approvals from the task's detail page.

487 

488### Manage scheduled tasks

489 

490Click a task in the **Schedule** list to open its detail page. From here you can:

491 

492* **Run now**: start the task immediately without waiting for the next scheduled time

493* **Toggle repeats**: pause or resume scheduled runs without deleting the task

494* **Edit**: change the prompt, frequency, folder, or other settings

495* **Review history**: see every past run, including ones that were skipped because your computer was asleep

496* **Review allowed permissions**: see and revoke saved tool approvals for this task from the **Always allowed** panel

497* **Delete**: remove the task and archive all sessions it created

498 

499You can also manage tasks by asking Claude in any Desktop session. For example, "pause my dependency-audit task", "delete the standup-prep task", or "show me my scheduled tasks."

500 

501To edit a task's prompt on disk, open `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (or under [`CLAUDE_CONFIG_DIR`](/en/env-vars) if set). The file uses YAML frontmatter for `name` and `description`, with the prompt as the body. Changes take effect on the next run. Schedule, folder, model, and enabled state are not in this file: change them through the Edit form or ask Claude.

502 

503## Environment configuration410## Environment configuration

504 411 

505The environment you pick when [starting a session](#start-a-session) determines where Claude executes and how you connect:412The environment you pick when [starting a session](#start-a-session) determines where Claude executes and how you connect:


619 526 

620Desktop and CLI read the same configuration files, so your setup carries over:527Desktop and CLI read the same configuration files, so your setup carries over:

621 528 

622* **[CLAUDE.md](/en/memory)** files in your project are used by both529* **[CLAUDE.md](/en/memory)** and `CLAUDE.local.md` files in your project are used by both

623* **[MCP servers](/en/mcp)** configured in `~/.claude.json` or `.mcp.json` work in both530* **[MCP servers](/en/mcp)** configured in `~/.claude.json` or `.mcp.json` work in both

624* **[Hooks](/en/hooks)** and **[skills](/en/skills)** defined in settings apply to both531* **[Hooks](/en/hooks)** and **[skills](/en/skills)** defined in settings apply to both

625* **[Settings](/en/settings)** in `~/.claude.json` and `~/.claude/settings.json` are shared. Permission rules, allowed tools, and other settings in `settings.json` apply to Desktop sessions.532* **[Settings](/en/settings)** in `~/.claude.json` and `~/.claude/settings.json` are shared. Permission rules, allowed tools, and other settings in `settings.json` apply to Desktop sessions.


644| File attachments | Not available | Images, PDFs |551| File attachments | Not available | Images, PDFs |

645| Session isolation | [`--worktree`](/en/cli-reference) flag | Automatic worktrees |552| Session isolation | [`--worktree`](/en/cli-reference) flag | Automatic worktrees |

646| Multiple sessions | Separate terminals | Sidebar tabs |553| Multiple sessions | Separate terminals | Sidebar tabs |

647| Recurring tasks | Cron jobs, CI pipelines | [Scheduled tasks](#schedule-recurring-tasks) |554| Recurring tasks | Cron jobs, CI pipelines | [Scheduled tasks](/en/desktop-scheduled-tasks) |

648| Computer use | [Enable via `/mcp`](/en/computer-use) on macOS | [App and screen control](#let-claude-use-your-computer) on macOS |555| Computer use | [Enable via `/mcp`](/en/computer-use) on macOS | [App and screen control](#let-claude-use-your-computer) on macOS and Windows |

649| Dispatch integration | Not available | [Dispatch sessions](#sessions-from-dispatch) in the sidebar |556| Dispatch integration | Not available | [Dispatch sessions](#sessions-from-dispatch) in the sidebar |

650| Scripting and automation | [`--print`](/en/cli-reference), [Agent SDK](/en/headless) | Not available |557| Scripting and automation | [`--print`](/en/cli-reference), [Agent SDK](/en/headless) | Not available |

651 558 

Details

8 8 

9The desktop app gives you Claude Code with a graphical interface: visual diff review, live app preview, GitHub PR monitoring with auto-merge, parallel sessions with Git worktree isolation, scheduled tasks, and the ability to run tasks remotely. No terminal required.9The desktop app gives you Claude Code with a graphical interface: visual diff review, live app preview, GitHub PR monitoring with auto-merge, parallel sessions with Git worktree isolation, scheduled tasks, and the ability to run tasks remotely. No terminal required.

10 10 

11This page walks through installing the app and starting your first session. If you're already set up, see [Use Claude Code Desktop](/en/desktop) for the full reference.11Download Claude for your platform:

12 

13<CardGroup cols={2}>

14 <Card title="macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

15 Universal build for Intel and Apple Silicon

16 </Card>

17 

18 <Card title="Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

19 For x64 processors

20 </Card>

21</CardGroup>

12 22 

13<Frame>23For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). Linux is not currently supported.

14 <img src="https://mintcdn.com/claude-code/CNLUpFGiXoc9mhvD/images/desktop-code-tab-light.png?fit=max&auto=format&n=CNLUpFGiXoc9mhvD&q=85&s=9a36a7a27b9f4c6f2e1c83bdb34f69ce" className="block dark:hidden" alt="The Claude Code Desktop interface showing the Code tab selected, with a prompt box, permission mode selector set to Ask permissions, model picker, folder selector, and Local environment option" width="2500" height="1376" data-path="images/desktop-code-tab-light.png" />

15 24 

16 <img src="https://mintcdn.com/claude-code/CNLUpFGiXoc9mhvD/images/desktop-code-tab-dark.png?fit=max&auto=format&n=CNLUpFGiXoc9mhvD&q=85&s=5463defe81c459fb9b1f91f6a958cfb8" className="hidden dark:block" alt="The Claude Code Desktop interface in dark mode showing the Code tab selected, with a prompt box, permission mode selector set to Ask permissions, model picker, folder selector, and Local environment option" width="2504" height="1374" data-path="images/desktop-code-tab-dark.png" />25<Note>

17</Frame>26 Claude Code requires a [Pro, Max, Team, or Enterprise subscription](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

27</Note>

28 

29This page walks through installing the app and starting your first session. If you're already set up, see [Use Claude Code Desktop](/en/desktop) for the full reference.

18 30 

19The desktop app has three tabs:31The desktop app has three tabs:

20 32 


24 36 

25Chat and Cowork are covered in the [Claude Desktop support articles](https://support.claude.com/en/collections/16163169-claude-desktop). This page focuses on the **Code** tab.37Chat and Cowork are covered in the [Claude Desktop support articles](https://support.claude.com/en/collections/16163169-claude-desktop). This page focuses on the **Code** tab.

26 38 

27<Note>

28 Claude Code requires a [Pro, Max, Team, or Enterprise subscription](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

29</Note>

30 

31## Install39## Install

32 40 

33<Steps>41<Steps>

34 <Step title="Download the app">42 <Step title="Install and sign in">

35 Download Claude for your platform.43 Download Claude for your platform and run the installer:

36 

37 <CardGroup cols={2}>

38 <Card title="macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

39 Universal build for Intel and Apple Silicon

40 </Card>

41 44 

42 <Card title="Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">45 * [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs): universal build for Intel and Apple Silicon

43 For x64 processors46 * [Windows x64](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs): for x64 processors

44 </Card>47 * [Windows ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs): for ARM processors

45 </CardGroup>

46 

47 For Windows ARM64, [download here](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs).

48 

49 Linux is not currently supported.

50 </Step>

51 48 

52 <Step title="Sign in">

53 Launch Claude from your Applications folder (macOS) or Start menu (Windows). Sign in with your Anthropic account.49 Launch Claude from your Applications folder (macOS) or Start menu (Windows). Sign in with your Anthropic account.

54 </Step>50 </Step>

55 51 


123 119 

124**Track your pull request.** After opening a PR, Claude Code monitors CI check results and can automatically fix failures or merge the PR once all checks pass. See [Monitor pull request status](/en/desktop#monitor-pull-request-status).120**Track your pull request.** After opening a PR, Claude Code monitors CI check results and can automatically fix failures or merge the PR once all checks pass. See [Monitor pull request status](/en/desktop#monitor-pull-request-status).

125 121 

126**Put Claude on a schedule.** Set up [scheduled tasks](/en/desktop#schedule-recurring-tasks) to run Claude automatically on a recurring basis: a daily code review every morning, a weekly dependency audit, or a briefing that pulls from your connected tools.122**Put Claude on a schedule.** Set up [scheduled tasks](/en/desktop-scheduled-tasks) to run Claude automatically on a recurring basis: a daily code review every morning, a weekly dependency audit, or a briefing that pulls from your connected tools.

127 123 

128**Scale up when you're ready.** Open [parallel sessions](/en/desktop#work-in-parallel-with-sessions) from the sidebar to work on multiple tasks at once, each in its own Git worktree. Send [long-running work to the cloud](/en/desktop#run-long-running-tasks-remotely) so it continues even if you close the app, or [continue a session on the web or in your IDE](/en/desktop#continue-in-another-surface) if a task takes longer than expected. [Connect external tools](/en/desktop#extend-claude-code) like GitHub, Slack, and Linear to bring your workflow together.124**Scale up when you're ready.** Open [parallel sessions](/en/desktop#work-in-parallel-with-sessions) from the sidebar to work on multiple tasks at once, each in its own Git worktree. Send [long-running work to the cloud](/en/desktop#run-long-running-tasks-remotely) so it continues even if you close the app, or [continue a session on the web or in your IDE](/en/desktop#continue-in-another-surface) if a task takes longer than expected. [Connect external tools](/en/desktop#extend-claude-code) like GitHub, Slack, and Linear to bring your workflow together.

129 125 

desktop-scheduled-tasks.md +109 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Schedule recurring tasks in Claude Code Desktop

6 

7> Set up scheduled tasks in Claude Code Desktop to run Claude automatically on a recurring basis for daily code reviews, dependency audits, or morning briefings.

8 

9By default, scheduled tasks start a new session automatically at a time and frequency you choose. Use them for recurring work like daily code reviews, dependency update checks, or morning briefings that pull from your calendar and inbox.

10 

11## Compare scheduling options

12 

13Claude Code offers three ways to schedule recurring work:

14 

15| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

16| :------------------------- | :------------------------------- | :------------------------------------- | :----------------------------- |

17| Runs on | Anthropic cloud | Your machine | Your machine |

18| Requires machine on | No | Yes | Yes |

19| Requires open session | No | No | Yes |

20| Persistent across restarts | Yes | Yes | No (session-scoped) |

21| Access to local files | No (fresh clone) | Yes | Yes |

22| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

23| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

24| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

25| Minimum interval | 1 hour | 1 minute | 1 minute |

26 

27<Tip>

28 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.

29</Tip>

30 

31The Schedule page supports two kinds of tasks:

32 

33* **Local tasks**: run on your machine. They have direct access to your local files and tools, but the desktop app must be open and your computer awake for them to run.

34* **Remote tasks**: run on Anthropic-managed cloud infrastructure. They keep running even when your computer is off, but work against a fresh clone of your repository rather than your local checkout.

35 

36Both kinds appear in the same task grid. Click **New task** to pick which kind to create. The rest of this page covers local tasks; for remote tasks, see [Cloud scheduled tasks](/en/web-scheduled-tasks).

37 

38See [How scheduled tasks run](#how-scheduled-tasks-run) for details on missed runs and catch-up behavior for local tasks.

39 

40<Note>

41 By default, local scheduled tasks run against whatever state your working directory is in, including uncommitted changes. Enable the worktree toggle in the prompt input to give each run its own isolated Git worktree, the same way [parallel sessions](/en/desktop#work-in-parallel-with-sessions) work.

42</Note>

43 

44## Create a scheduled task

45 

46To create a local scheduled task, click **Schedule** in the sidebar, click **New task**, and choose **New local task**. Configure these fields:

47 

48| Field | Description |

49| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

50| Name | Identifier for the task. Converted to lowercase kebab-case and used as the folder name on disk. Must be unique across your tasks. |

51| Description | Short summary shown in the task list. |

52| Prompt | The instructions sent to Claude when the task runs. Write this the same way you'd write any message in the prompt box. The prompt input also includes controls for model, permission mode, working folder, and worktree. |

53| Frequency | How often the task runs. See [frequency options](#frequency-options) below. |

54 

55You can also create a task by describing what you want in any session. For example, "set up a daily code review that runs every morning at 9am."

56 

57## Frequency options

58 

59Pick a preset from the frequency dropdown, or ask Claude for anything the picker doesn't cover:

60 

61* **Manual**: no schedule, only runs when you click **Run now**. Useful for saving a prompt you trigger on demand

62* **Hourly**: runs every hour. Each task gets a fixed offset of up to 10 minutes from the top of the hour to stagger API traffic

63* **Daily**: shows a time picker, defaults to 9:00 AM local time

64* **Weekdays**: same as Daily but skips Saturday and Sunday

65* **Weekly**: shows a time picker and a day picker

66 

67For intervals the picker doesn't offer (every 15 minutes, first of each month, etc.), ask Claude in any Desktop session to set the schedule. Use plain language; for example, "schedule a task to run all the tests every 6 hours."

68 

69## How scheduled tasks run

70 

71Local scheduled tasks run on your machine. Desktop checks the schedule every minute while the app is open and starts a fresh session when a task is due, independent of any manual sessions you have open. Each task gets a fixed delay of up to 10 minutes after the scheduled time to stagger API traffic. The delay is deterministic: the same task always starts at the same offset.

72 

73When a task fires, you get a desktop notification and a new session appears under a **Scheduled** section in the sidebar. Open it to see what Claude did, review changes, or respond to permission prompts. The session works like any other: Claude can edit files, run commands, create commits, and open pull requests.

74 

75Tasks only run while the desktop app is running and your computer is awake. If your computer sleeps through a scheduled time, the run is skipped. To prevent idle-sleep, enable **Keep computer awake** in Settings under **Desktop app → General**. Closing the laptop lid still puts it to sleep. For tasks that need to run even when your computer is off, use a [remote task](/en/web-scheduled-tasks) instead.

76 

77## Missed runs

78 

79When the app starts or your computer wakes, Desktop checks whether each task missed any runs in the last seven days. If it did, Desktop starts exactly one catch-up run for the most recently missed time and discards anything older. A daily task that missed six days runs once on wake. Desktop shows a notification when a catch-up run starts.

80 

81Keep this in mind when writing prompts. A task scheduled for 9am might run at 11pm if your computer was asleep all day. If timing matters, add guardrails to the prompt itself, for example: "Only review today's commits. If it's after 5pm, skip the review and just post a summary of what was missed."

82 

83## Permissions for scheduled tasks

84 

85Each task has its own permission mode, which you set when creating or editing the task. Allow rules from `~/.claude/settings.json` also apply to scheduled task sessions. If a task runs in Ask mode and needs to run a tool it doesn't have permission for, the run stalls until you approve it. The session stays open in the sidebar so you can answer later.

86 

87To avoid stalls, click **Run now** after creating a task, watch for permission prompts, and select "always allow" for each one. Future runs of that task auto-approve the same tools without prompting. You can review and revoke these approvals from the task's detail page.

88 

89## Manage scheduled tasks

90 

91Click a task in the **Schedule** list to open its detail page. From here you can:

92 

93* **Run now**: start the task immediately without waiting for the next scheduled time

94* **Toggle repeats**: pause or resume scheduled runs without deleting the task

95* **Edit**: change the prompt, frequency, folder, or other settings

96* **Review history**: see every past run, including ones that were skipped because your computer was asleep

97* **Review allowed permissions**: see and revoke saved tool approvals for this task from the **Always allowed** panel

98* **Delete**: remove the task and archive all sessions it created

99 

100You can also manage tasks by asking Claude in any Desktop session. For example, "pause my dependency-audit task", "delete the standup-prep task", or "show me my scheduled tasks."

101 

102To edit a task's prompt on disk, open `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (or under [`CLAUDE_CONFIG_DIR`](/en/env-vars) if set). The file uses YAML frontmatter for `name` and `description`, with the prompt as the body. Changes take effect on the next run. Schedule, folder, model, and enabled state are not in this file: change them through the Edit form or ask Claude.

103 

104## Related resources

105 

106* [Cloud scheduled tasks](/en/web-scheduled-tasks): schedule tasks that run on Anthropic-managed infrastructure even when your computer is off

107* [Run prompts on a schedule](/en/scheduled-tasks): session-scoped scheduling with `/loop` in the CLI

108* [Claude Code GitHub Actions](/en/github-actions): run Claude on a schedule in CI instead of on your machine

109* [Use Claude Code Desktop](/en/desktop): the full Desktop app guide

headless.md +6 −0

Details

145 --allowedTools "Bash,Read,Edit"145 --allowedTools "Bash,Read,Edit"

146```146```

147 147 

148To set a baseline for the whole session instead of listing individual tools, pass a [permission mode](/en/permission-modes). `dontAsk` denies anything not in your `permissions.allow` rules, which is useful for locked-down CI runs. `acceptEdits` lets Claude write files without prompting, but shell commands and network requests still need an `--allowedTools` entry or a `permissions.allow` rule, otherwise the run aborts when one is attempted:

149 

150```bash theme={null}

151claude -p "Apply the lint fixes" --permission-mode acceptEdits

152```

153 

148### Create a commit154### Create a commit

149 155 

150This example reviews staged changes and creates a commit with an appropriate message:156This example reviews staged changes and creates a commit with an appropriate message:

mcp.md +17 −2

Details

989To increase the limit for tools that produce large outputs:989To increase the limit for tools that produce large outputs:

990 990 

991```bash theme={null}991```bash theme={null}

992# Set a higher limit for MCP tool outputs

993export MAX_MCP_OUTPUT_TOKENS=50000992export MAX_MCP_OUTPUT_TOKENS=50000

994claude993claude

995```994```


1000* Generate detailed reports or documentation999* Generate detailed reports or documentation

1001* Process extensive log files or debugging information1000* Process extensive log files or debugging information

1002 1001 

1002### Override result size per tool

1003 

1004If you're building an MCP server, you can allow individual tools to return results larger than the default limit by setting `_meta["anthropic/maxResultSizeChars"]` in the tool's `tools/list` response entry. Claude Code uses this value as the maximum result size for that tool, up to a hard ceiling of 500,000 characters.

1005 

1006This is useful for tools that return inherently large but necessary outputs, such as database schemas or full file trees. Without the annotation, results that exceed the default limit are persisted to disk and replaced with a file reference in the conversation.

1007 

1008```json theme={null}

1009{

1010 "name": "get_schema",

1011 "description": "Returns the full database schema",

1012 "_meta": {

1013 "anthropic/maxResultSizeChars": 500000

1014 }

1015}

1016```

1017 

1003<Warning>1018<Warning>

1004 If you frequently encounter output warnings with specific MCP servers, consider increasing the limit or configuring the server to paginate or filter its responses.1019 If you frequently encounter output warnings with specific MCP servers you don't control, consider increasing the `MAX_MCP_OUTPUT_TOKENS` limit or asking the server author to add the `anthropic/maxResultSizeChars` annotation.

1005</Warning>1020</Warning>

1006 1021 

1007## Respond to MCP elicitation requests1022## Respond to MCP elicitation requests

memory.md +14 −7

Details

43CLAUDE.md files can live in several locations, each with a different scope. More specific locations take precedence over broader ones.43CLAUDE.md files can live in several locations, each with a different scope. More specific locations take precedence over broader ones.

44 44 

45| Scope | Location | Purpose | Use case examples | Shared with |45| Scope | Location | Purpose | Use case examples | Shared with |

46| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------- |46| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------- |

47| **Managed policy** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux and WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Organization-wide instructions managed by IT/DevOps | Company coding standards, security policies, compliance requirements | All users in organization |47| **Managed policy** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux and WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Organization-wide instructions managed by IT/DevOps | Company coding standards, security policies, compliance requirements | All users in organization |

48| **Project instructions** | `./CLAUDE.md` or `./.claude/CLAUDE.md` | Team-shared instructions for the project | Project architecture, coding standards, common workflows | Team members via source control |48| **Project instructions** | `./CLAUDE.md` or `./.claude/CLAUDE.md` | Team-shared instructions for the project | Project architecture, coding standards, common workflows | Team members via source control |

49| **User instructions** | `~/.claude/CLAUDE.md` | Personal preferences for all projects | Code styling preferences, personal tooling shortcuts | Just you (all projects) |49| **User instructions** | `~/.claude/CLAUDE.md` | Personal preferences for all projects | Code styling preferences, personal tooling shortcuts | Just you (all projects) |

50| **Local instructions** | `./CLAUDE.local.md` | Personal project-specific preferences; add to `.gitignore` | Your sandbox URLs, preferred test data | Just you (current project) |

50 51 

51CLAUDE.md files in the directory hierarchy above the working directory are loaded in full at launch. CLAUDE.md files in subdirectories load on demand when Claude reads files in those directories. See [How CLAUDE.md files load](#how-claude-md-files-load) for the full resolution order.52CLAUDE.md and CLAUDE.local.md files in the directory hierarchy above the working directory are loaded in full at launch. Files in subdirectories load on demand when Claude reads files in those directories. See [How CLAUDE.md files load](#how-claude-md-files-load) for the full resolution order.

52 53 

53For large projects, you can break instructions into topic-specific files using [project rules](#organize-rules-with-claude/rules/). Rules let you scope instructions to specific file types or subdirectories.54For large projects, you can break instructions into topic-specific files using [project rules](#organize-rules-with-claude/rules/). Rules let you scope instructions to specific file types or subdirectories.

54 55 


93- git workflow @docs/git-instructions.md94- git workflow @docs/git-instructions.md

94```95```

95 96 

96For personal preferences you don't want to check in, import a file from your home directory. The import goes in the shared CLAUDE.md, but the file it points to stays on your machine:97For private per-project preferences that shouldn't be checked into version control, create a `CLAUDE.local.md` at the project root. It loads alongside `CLAUDE.md` and is treated the same way. Add `CLAUDE.local.md` to your `.gitignore` so it isn't committed; running `/init` and choosing the personal option does this for you.

98 

99If you work across multiple git worktrees of the same repository, a gitignored `CLAUDE.local.md` only exists in the worktree where you created it. To share personal instructions across worktrees, import a file from your home directory instead:

97 100 

98```text theme={null}101```text theme={null}

99# Individual Preferences102# Individual Preferences


120 123 

121### How CLAUDE.md files load124### How CLAUDE.md files load

122 125 

123Claude Code reads CLAUDE.md files by walking up the directory tree from your current working directory, checking each directory along the way. This means if you run Claude Code in `foo/bar/`, it loads instructions from both `foo/bar/CLAUDE.md` and `foo/CLAUDE.md`.126Claude Code reads CLAUDE.md files by walking up the directory tree from your current working directory, checking each directory along the way for `CLAUDE.md` and `CLAUDE.local.md` files. This means if you run Claude Code in `foo/bar/`, it loads instructions from `foo/bar/CLAUDE.md`, `foo/CLAUDE.md`, and any `CLAUDE.local.md` files alongside them.

127 

128All discovered files are concatenated into context rather than overriding each other. Within each directory, `CLAUDE.local.md` is appended after `CLAUDE.md`, so when instructions conflict, your personal notes are the last thing Claude reads at that level.

124 129 

125Claude also discovers CLAUDE.md files in subdirectories under your current working directory. Instead of loading them at launch, they are included when Claude reads files in those subdirectories.130Claude also discovers `CLAUDE.md` and `CLAUDE.local.md` files in subdirectories under your current working directory. Instead of loading them at launch, they are included when Claude reads files in those subdirectories.

126 131 

127If you work in a large monorepo where other teams' CLAUDE.md files get picked up, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) to skip them.132If you work in a large monorepo where other teams' CLAUDE.md files get picked up, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) to skip them.

128 133 


138CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config143CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

139```144```

140 145 

146`CLAUDE.local.md` files in additional directories are not loaded.

147 

141### Organize rules with `.claude/rules/`148### Organize rules with `.claude/rules/`

142 149 

143For larger projects, you can organize instructions into multiple files using the `.claude/rules/` directory. This keeps instructions modular and easier for teams to maintain. Rules can also be [scoped to specific file paths](#path-specific-rules), so they only load into context when Claude works with matching files, reducing noise and saving context space.150For larger projects, you can organize instructions into multiple files using the `.claude/rules/` directory. This keeps instructions modular and easier for teams to maintain. Rules can also be [scoped to specific file paths](#path-specific-rules), so they only load into context when Claude works with matching files, reducing noise and saving context space.


341 348 

342## View and edit with `/memory`349## View and edit with `/memory`

343 350 

344The `/memory` command lists all CLAUDE.md and rules files loaded in your current session, lets you toggle auto memory on or off, and provides a link to open the auto memory folder. Select any file to open it in your editor.351The `/memory` command lists all CLAUDE.md, CLAUDE.local.md, and rules files loaded in your current session, lets you toggle auto memory on or off, and provides a link to open the auto memory folder. Select any file to open it in your editor.

345 352 

346When you ask Claude to remember something, like "always use pnpm, not npm" or "remember that the API tests require a local Redis instance," Claude saves it to auto memory. To add instructions to CLAUDE.md instead, ask Claude directly, like "add this to CLAUDE.md," or edit the file yourself via `/memory`.353When you ask Claude to remember something, like "always use pnpm, not npm" or "remember that the API tests require a local Redis instance," Claude saves it to auto memory. To add instructions to CLAUDE.md instead, ask Claude directly, like "add this to CLAUDE.md," or edit the file yourself via `/memory`.

347 354 


355 362 

356To debug:363To debug:

357 364 

358* Run `/memory` to verify your CLAUDE.md files are being loaded. If a file isn't listed, Claude can't see it.365* Run `/memory` to verify your CLAUDE.md and CLAUDE.local.md files are being loaded. If a file isn't listed, Claude can't see it.

359* Check that the relevant CLAUDE.md is in a location that gets loaded for your session (see [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).366* Check that the relevant CLAUDE.md is in a location that gets loaded for your session (see [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).

360* Make instructions more specific. "Use 2-space indentation" works better than "format code nicely."367* Make instructions more specific. "Use 2-space indentation" works better than "format code nicely."

361* Look for conflicting instructions across CLAUDE.md files. If two files give different guidance for the same behavior, Claude may pick one arbitrarily.368* Look for conflicting instructions across CLAUDE.md files. If two files give different guidance for the same behavior, Claude may pick one arbitrarily.

overview.md +3 −3

Details

192 Run Claude on a schedule to automate work that repeats: morning PR reviews, overnight CI failure analysis, weekly dependency audits, or syncing docs after PRs merge.192 Run Claude on a schedule to automate work that repeats: morning PR reviews, overnight CI failure analysis, weekly dependency audits, or syncing docs after PRs merge.

193 193 

194 * [Cloud scheduled tasks](/en/web-scheduled-tasks) run on Anthropic-managed infrastructure, so they keep running even when your computer is off. Create them from the web, the Desktop app, or by running `/schedule` in the CLI.194 * [Cloud scheduled tasks](/en/web-scheduled-tasks) run on Anthropic-managed infrastructure, so they keep running even when your computer is off. Create them from the web, the Desktop app, or by running `/schedule` in the CLI.

195 * [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks) run on your machine, with direct access to your local files and tools195 * [Desktop scheduled tasks](/en/desktop-scheduled-tasks) run on your machine, with direct access to your local files and tools

196 * [`/loop`](/en/scheduled-tasks) repeats a prompt within a CLI session for quick polling196 * [`/loop`](/en/scheduled-tasks) repeats a prompt within a CLI session for quick polling

197 </Accordion>197 </Accordion>

198 198 


214Beyond the [Terminal](/en/quickstart), [VS Code](/en/vs-code), [JetBrains](/en/jetbrains), [Desktop](/en/desktop), and [Web](/en/claude-code-on-the-web) environments above, Claude Code integrates with CI/CD, chat, and browser workflows:214Beyond the [Terminal](/en/quickstart), [VS Code](/en/vs-code), [JetBrains](/en/jetbrains), [Desktop](/en/desktop), and [Web](/en/claude-code-on-the-web) environments above, Claude Code integrates with CI/CD, chat, and browser workflows:

215 215 

216| I want to... | Best option |216| I want to... | Best option |

217| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |217| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |

218| Continue a local session from my phone or another device | [Remote Control](/en/remote-control) |218| Continue a local session from my phone or another device | [Remote Control](/en/remote-control) |

219| Push events from Telegram, Discord, iMessage, or my own webhooks into a session | [Channels](/en/channels) |219| Push events from Telegram, Discord, iMessage, or my own webhooks into a session | [Channels](/en/channels) |

220| Start a task locally, continue on mobile | [Web](/en/claude-code-on-the-web) or [Claude iOS app](https://apps.apple.com/app/claude-by-anthropic/id6473753684) |220| Start a task locally, continue on mobile | [Web](/en/claude-code-on-the-web) or [Claude iOS app](https://apps.apple.com/app/claude-by-anthropic/id6473753684) |

221| Run Claude on a recurring schedule | [Cloud scheduled tasks](/en/web-scheduled-tasks) or [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks) |221| Run Claude on a recurring schedule | [Cloud scheduled tasks](/en/web-scheduled-tasks) or [Desktop scheduled tasks](/en/desktop-scheduled-tasks) |

222| Automate PR reviews and issue triage | [GitHub Actions](/en/github-actions) or [GitLab CI/CD](/en/gitlab-ci-cd) |222| Automate PR reviews and issue triage | [GitHub Actions](/en/github-actions) or [GitLab CI/CD](/en/gitlab-ci-cd) |

223| Get automatic code review on every PR | [GitHub Code Review](/en/code-review) |223| Get automatic code review on every PR | [GitHub Code Review](/en/code-review) |

224| Route bug reports from Slack to pull requests | [Slack](/en/slack) |224| Route bug reports from Slack to pull requests | [Slack](/en/slack) |

permission-modes.md +144 −151

Details

4 4 

5# Choose a permission mode5# Choose a permission mode

6 6 

7> Switch between supervised editing, read-only planning, and auto mode where a background classifier replaces manual permission prompts. Cycle modes with Shift+Tab in the CLI or use the mode selector in VS Code, Desktop, and claude.ai.7> Control whether Claude asks before editing files or running commands. Cycle modes with Shift+Tab in the CLI or use the mode selector in VS Code, Desktop, and claude.ai.

8 8 

9Permission modes control whether Claude asks before acting. Different tasks call for different levels of autonomy: you might want full oversight for sensitive work, minimal interruptions for a long refactor, or read-only access while exploring a codebase.9When Claude wants to edit a file, run a shell command, or make a network request, it pauses and asks you to approve the action. Permission modes control how often that pause happens. The mode you pick shapes the flow of a session: default mode has you review each action as it comes, while looser modes let Claude work in longer uninterrupted stretches and report back when done. Pick more oversight for sensitive work, or fewer interruptions when you trust the direction.

10 10 

11This page covers how to:11## Available modes

12 

13Each mode makes a different tradeoff between convenience and oversight. The table below shows what Claude can do without a permission prompt in each mode.

14 

15| Mode | What runs without asking | Best for |

16| :------------------------------------------------------------------ | :---------------------------------------- | :-------------------------------------- |

17| `default` | Reads only | Getting started, sensitive work |

18| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | Reads and file edits | Iterating on code you're reviewing |

19| [`plan`](#analyze-before-you-edit-with-plan-mode) | Reads only | Exploring a codebase before changing it |

20| [`auto`](#eliminate-prompts-with-auto-mode) | Everything, with background safety checks | Long tasks, reducing prompt fatigue |

21| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Only pre-approved tools | Locked-down CI and scripts |

22| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Everything except protected paths | Isolated containers and VMs only |

23 

24Regardless of mode, writes to [protected paths](#protected-paths) are never auto-approved, guarding repository state and Claude's own configuration against accidental corruption.

12 25 

13* [Switch modes](#switch-permission-modes) during a session, at startup, or as a default26Modes set the baseline. Layer [permission rules](/en/permissions#manage-permissions) on top to pre-approve or block specific tools in any mode except `bypassPermissions`, which skips the permission layer entirely.

14* [Choose a mode](#available-modes) based on what Claude should be able to do without asking

15* [Run auto mode](#eliminate-prompts-with-auto-mode) with background safety checks, and see what it [blocks by default](#what-the-classifier-blocks-by-default)

16* [Plan changes read-only](#analyze-before-you-edit-with-plan-mode) before approving edits

17* [Restrict Claude to pre-approved tools](#allow-only-pre-approved-tools-with-dontask-mode) for locked-down environments

18* [Skip checks entirely](#skip-all-checks-with-bypasspermissions-mode) in isolated environments

19 27 

20## Switch permission modes28## Switch permission modes

21 29 

22You can switch modes at any time during a session, at startup, or as a persistent default. The mechanism depends on where you're running Claude Code.30You can switch modes mid-session, at startup, or as a persistent default. The mode is set through these controls, not by asking Claude in chat. Select your interface below to see how to change it.

23 31 

24<Tabs>32<Tabs>

25 <Tab title="CLI">33 <Tab title="CLI">

26 **During a session**: press `Shift+Tab` to cycle through `default` → `acceptEdits` → `plan` → `auto`. The current mode appears in the status bar. `auto` does not appear in the cycle until you pass `--enable-auto-mode` at startup. Auto also requires a Team, Enterprise, or API plan and Claude Sonnet 4.6 or Opus 4.6, so the option may remain unavailable even with the flag. If `bypassPermissions` is also enabled, it appears in the cycle between `plan` and `auto`.34 **During a session**: press `Shift+Tab` to cycle `default` → `acceptEdits` → `plan`. The current mode appears in the status bar. Not every mode is in the default cycle:

27 35 

28 **At startup**: pass the mode as a CLI flag:36 * `auto`: appears after you opt in with `--enable-auto-mode` or the persisted equivalent in settings

37 * `bypassPermissions`: appears after you start with `--permission-mode bypassPermissions`, `--dangerously-skip-permissions`, or `--allow-dangerously-skip-permissions`; the `--allow-` variant adds the mode to the cycle without activating it

38 * `dontAsk`: never appears in the cycle; set it with `--permission-mode dontAsk`

39 

40 Enabled optional modes slot in after `plan`, with `bypassPermissions` first and `auto` last. If you have both enabled, you will cycle through `bypassPermissions` on the way to `auto`.

41 

42 **At startup**: pass the mode as a flag.

29 43 

30 ```bash theme={null}44 ```bash theme={null}

31 claude --permission-mode plan45 claude --permission-mode plan

32 ```46 ```

33 47 

34 **As a default**: set `defaultMode` in your [settings file](/en/settings#settings-files):48 **As a default**: set `defaultMode` in [settings](/en/settings#settings-files).

35 49 

36 ```json theme={null}50 ```json theme={null}

37 {51 {


41 }55 }

42 ```56 ```

43 57 

44 **Non-interactively**: the same flag works with `-p` for scripted runs:58 The same `--permission-mode` flag works with `-p` for [non-interactive runs](/en/headless).

45 

46 ```bash theme={null}

47 claude -p "refactor auth" --permission-mode acceptEdits

48 ```

49 

50 `dontAsk` is never in the `Shift+Tab` cycle. `bypassPermissions` appears in the cycle only if you started the session with `--permission-mode bypassPermissions`, `--dangerously-skip-permissions`, or `--allow-dangerously-skip-permissions`. The third flag adds the mode to the cycle without activating it, so you can compose it with a different starting mode like `--permission-mode plan`. Set any of these at startup or in your settings file.

51 </Tab>

52 

53 <Tab title="JetBrains">

54 The JetBrains plugin launches Claude Code in the IDE terminal, so switching modes works the same as in the CLI: press `Shift+Tab` to cycle, or pass `--permission-mode` when launching.

55 </Tab>59 </Tab>

56 60 

57 <Tab title="VS Code">61 <Tab title="VS Code">

58 **During a session**: click the mode indicator at the bottom of the prompt box to switch modes.62 **During a session**: click the mode indicator at the bottom of the prompt box.

59 63 

60 **As a default**: set `claudeCode.initialPermissionMode` in VS Code settings, or use the Claude Code extension settings panel.64 **As a default**: set `claudeCode.initialPermissionMode` in VS Code settings, or use the Claude Code extension settings panel.

61 65 

62 The VS Code UI uses friendly labels that map to the settings keys below:66 The mode indicator shows these labels, mapped to the mode each one applies:

63 67 

64 | UI label | Settings key |68 | UI label | Mode |

65 | :----------------- | :------------------ |69 | :----------------- | :------------------ |

66 | Ask permissions | `default` |70 | Ask before edits | `default` |

67 | Auto accept edits | `acceptEdits` |71 | Edit automatically | `acceptEdits` |

68 | Plan mode | `plan` |72 | Plan mode | `plan` |

69 | Auto | `auto` |73 | Auto mode | `auto` |

70 | Bypass permissions | `bypassPermissions` |74 | Bypass permissions | `bypassPermissions` |

71 75 

72 Auto and Bypass permissions appear only after you enable **Allow dangerously skip permissions** in the extension settings. Auto also requires a Team, Enterprise, or API plan and Claude Sonnet 4.6 or Opus 4.6, so the option may remain unavailable even with the toggle on.76 Auto mode appears in the mode indicator after you enable **Allow dangerously skip permissions** in the extension settings, but it stays unavailable until your account meets every requirement listed in the [auto mode section](#eliminate-prompts-with-auto-mode). The `claudeCode.initialPermissionMode` setting does not accept `auto`; to start in auto mode by default, set `defaultMode` in your Claude Code [`settings.json`](/en/settings#settings-files) instead.

77 

78 Bypass permissions also requires the **Allow dangerously skip permissions** toggle before it appears in the mode indicator.

73 79 

74 See the [VS Code guide](/en/vs-code) for extension-specific details.80 See the [VS Code guide](/en/vs-code) for extension-specific details.

75 </Tab>81 </Tab>

76 82 

77 <Tab title="Desktop">83 <Tab title="JetBrains">

78 **During a session**: use the mode selector next to the send button. You can change it before or during a session.84 The JetBrains plugin runs Claude Code in the IDE terminal, so switching modes works the same as in the CLI: press `Shift+Tab` to cycle, or pass `--permission-mode` when launching.

79 85 </Tab>

80 The Desktop UI uses friendly labels that map to the settings keys below:

81 

82 | UI label | Settings key |

83 | :----------------- | :------------------ |

84 | Ask permissions | `default` |

85 | Auto accept edits | `acceptEdits` |

86 | Plan mode | `plan` |

87 | Auto | `auto` |

88 | Bypass permissions | `bypassPermissions` |

89 86 

90 Auto and Bypass permissions appear in the selector only after you enable them in Desktop settings. See the [Desktop guide](/en/desktop#choose-a-permission-mode) for details.87 <Tab title="Desktop">

88 Use the mode selector next to the send button. Auto and Bypass permissions appear only after you enable them in Desktop settings. See the [Desktop guide](/en/desktop#choose-a-permission-mode).

91 </Tab>89 </Tab>

92 90 

93 <Tab title="Web and mobile">91 <Tab title="Web and mobile">

94 **During a session**: use the mode dropdown next to the prompt box on [claude.ai/code](https://claude.ai/code) or in the Claude mobile app.92 Use the mode dropdown next to the prompt box on [claude.ai/code](https://claude.ai/code) or in the mobile app. Permission prompts appear in claude.ai for approval. Which modes appear depends on where the session runs:

95 93 

96 For [Claude Code on the web](/en/claude-code-on-the-web) sessions running on Anthropic's cloud VMs, the dropdown offers Auto accept edits and Plan mode. Ask permissions and Auto are not available for cloud sessions.94 * **Cloud sessions** on [Claude Code on the web](/en/claude-code-on-the-web): Auto accept edits and Plan mode. Ask permissions, Auto, and Bypass permissions are not available.

95 * **[Remote Control](/en/remote-control) sessions** on your local machine: Ask permissions, Auto accept edits, and Plan mode. Auto and Bypass permissions are not available.

97 96 

98 For [Remote Control](/en/remote-control) sessions running on your local machine, the dropdown offers Ask permissions, Auto accept edits, and Plan mode. You can also set the starting mode when you launch the local host:97 For Remote Control, you can also set the starting mode when launching the host:

99 98 

100 ```bash theme={null}99 ```bash theme={null}

101 claude remote-control --permission-mode acceptEdits100 claude remote-control --permission-mode acceptEdits

102 ```101 ```

103 

104 Permission prompts appear in claude.ai for approval.

105 </Tab>102 </Tab>

106</Tabs>103</Tabs>

107 104 

108Permission modes are set through the UI, CLI flags, or settings files. Telling Claude "stop asking for permission" in the chat does not change the mode. See [Permissions](/en/permissions) for how modes interact with allow, ask, and deny rules.105## Auto-approve file edits with acceptEdits mode

109 106 

110## Available modes107`acceptEdits` mode lets Claude create and edit files in your working directory without prompting. Writes to [protected paths](#protected-paths) and all non-edit actions still prompt the same as default mode. The status bar shows `⏵⏵ accept edits on` while this mode is active.

111 

112Each mode makes a different tradeoff between convenience and oversight. Pick the one that matches your task.

113 108 

114| Mode | What Claude can do without asking | Best for |109Use `acceptEdits` when you want to review changes in your editor or via `git diff` after the fact rather than approving each edit inline. Press `Shift+Tab` once from default mode to enter it, or start with it directly:

115| :------------------------------------------------------------------ | :-------------------------------------------------- | :------------------------------------------ |

116| `default` | Read files | Getting started, sensitive work |

117| `acceptEdits` | Read and edit files except in protected directories | Iterating on code you're reviewing |

118| [`plan`](#analyze-before-you-edit-with-plan-mode) | Read files | Exploring a codebase, planning a refactor |

119| [`auto`](#eliminate-prompts-with-auto-mode) | All actions, with background safety checks | Long-running tasks, reducing prompt fatigue |

120| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | All actions except writes to protected directories | Isolated containers and VMs only |

121| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Only pre-approved tools | Locked-down environments |

122 110 

123Regardless of mode, writes to `.git`, `.vscode`, `.idea`, `.husky`, and `.claude` are never auto-approved, except for `.claude/commands`, `.claude/agents`, and `.claude/skills` where Claude routinely creates skills, subagents, and commands. This protects repository state, editor configuration, git hooks, and Claude's own settings from accidental corruption.111```bash theme={null}

112claude --permission-mode acceptEdits

113```

124 114 

125## Analyze before you edit with plan mode115## Analyze before you edit with plan mode

126 116 

127Plan mode tells Claude to research and propose changes without making them. Claude reads files, runs shell commands to explore, asks clarifying questions, and writes a plan file, but does not edit your source code. Permission prompts work the same as default mode: you still approve Bash commands, network requests, and other actions that would normally prompt.117Plan mode tells Claude to research and propose changes without making them. Claude reads files, runs shell commands to explore, and writes a plan, but does not edit your source. Permission prompts still apply the same as default mode.

128 

129### When to use plan mode

130 

131Plan mode is useful when you want Claude to research and propose an approach before making changes:

132 

133* **Multi-step implementation**: when a feature requires edits across many files

134* **Code exploration**: when you want to research the codebase before changing anything

135* **Interactive development**: when you want to iterate on the direction with Claude

136 

137### Start and use plan mode

138 118 

139Enter plan mode for a single request by prefixing your prompt with `/plan`, or switch the whole session into plan mode by pressing `Shift+Tab` to [cycle through permission modes](#switch-permission-modes). You can also start in plan mode from the CLI:119Enter plan mode by pressing `Shift+Tab` or prefixing a single prompt with `/plan`. You can also start in plan mode from the CLI:

140 120 

141```bash theme={null}121```bash theme={null}

142claude --permission-mode plan122claude --permission-mode plan

143```123```

144 124 

145This example starts a planning session for a complex refactor:125Press `Shift+Tab` again to leave plan mode without approving a plan.

146 

147```text theme={null}

148I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.

149```

150 

151Claude analyzes the current implementation and creates a plan. Refine with follow-ups:

152 

153```text theme={null}

154What about backward compatibility?

155How should we handle database migration?

156```

157 126 

158When the plan is ready, Claude presents it and asks how to proceed. From that prompt you can:127When the plan is ready, Claude presents it and asks how to proceed. From that prompt you can:

159 128 

160* Approve and start in auto mode129* Approve and start in auto mode

161* Approve and accept edits130* Approve and accept edits

162* Approve and manually review each edit131* Approve and review each edit manually

163* Keep planning, which sends your feedback back to Claude for another round132* Keep planning with feedback

133* Refine with [Ultraplan](/en/ultraplan) for browser-based review

164 134 

165Each approve option also offers to clear the planning context first.135Each approve option also offers to clear the planning context first.

166 136 

167## Eliminate prompts with auto mode137## Eliminate prompts with auto mode

168 138 

169Auto mode is available on Team, Enterprise, and API plans. On Team and Enterprise, an admin must enable it in [Claude Code admin settings](https://claude.ai/admin-settings/claude-code) before users can turn it on. It requires Claude Sonnet 4.6 or Claude Opus 4.6, and is not available on Haiku, claude-3 models, or third-party providers (Bedrock, Vertex, Foundry).139<Note>

140 Auto mode requires Claude Code v2.1.83 or later.

141</Note>

170 142 

171Auto mode lets Claude execute actions without showing permission prompts. Before each action runs, a separate classifier model reviews the conversation and decides whether the action matches what you asked for. It blocks actions that escalate beyond the task scope, target infrastructure the classifier doesn't recognize as trusted, or appear to be driven by prompt injection: hostile instructions embedded in a file, web page, or tool result that attempt to redirect Claude toward actions you never asked for. The defense is layered: a server-side probe scans incoming tool results and flags suspicious content before Claude reads it, while the classifier itself is never shown tool results, so injected instructions cannot influence its approval decisions. For a deeper look at how these layers work together, see the [auto mode announcement](https://claude.com/blog/auto-mode) and the [engineering deep dive](https://www.anthropic.com/engineering/claude-code-auto-mode).143Auto mode lets Claude execute without permission prompts. A separate classifier model reviews actions before they run, blocking anything that escalates beyond your request, targets unrecognized infrastructure, or appears driven by hostile content Claude read.

172 144 

173<Warning>145<Warning>

174 Auto mode is a research preview. It reduces prompts but does not guarantee safety. It provides more protection than `bypassPermissions` but is not as thorough as manually reviewing each action. Use it for tasks where you trust the general direction, not as a replacement for review on sensitive operations.146 Auto mode is a research preview. It reduces prompts but does not guarantee safety. Use it for tasks where you trust the general direction, not as a replacement for review on sensitive operations.

175</Warning>147</Warning>

176 148 

177**Model**: the classifier runs on Claude Sonnet 4.6, even if your main session uses a different model.149Auto mode is available only when your account meets all of these requirements:

178 

179**Cost**: classifier calls count toward your token usage the same as main-session calls. Each checked action sends a portion of the conversation transcript plus the pending action to the classifier. The extra cost comes mainly from shell commands and network operations, since read-only actions and file edits in your working directory outside protected directories don't trigger a classifier call.

180 

181**Latency**: each classifier check adds a round-trip before the action executes.

182 

183### How actions are evaluated

184 150 

185Each action goes through a fixed decision order. The first matching step wins:151* **Plan**: Team, Enterprise, or API. Not available on Pro or Max.

152* **Admin**: on Team and Enterprise, an admin must enable it in [Claude Code admin settings](https://claude.ai/admin-settings/claude-code) before users can turn it on. Admins can also lock it off by setting `permissions.disableAutoMode` to `"disable"` in [managed settings](/en/permissions#managed-settings).

153* **Model**: Claude Sonnet 4.6 or Opus 4.6. Not available on Haiku or claude-3 models.

154* **Provider**: Anthropic API only. Not available on Bedrock, Vertex, or Foundry.

186 155 

1871. Actions matching your [allow or deny rules](/en/permissions#manage-permissions) resolve immediately156If Claude Code reports auto mode as unavailable, one of these requirements is unmet; this is not a transient outage.

1882. Read-only actions and file edits in your working directory are auto-approved, except writes to protected directories

1893. Everything else goes to the classifier

1904. If the classifier blocks, Claude receives the reason and attempts an alternative approach

191 157 

192On entering auto mode, Claude Code drops any allow rule that is known to grant arbitrary code execution: blanket shell access like `Bash(*)`, wildcarded script interpreters like `Bash(python*)` or `Bash(node*)`, package-manager run commands, and any `Agent` allow rule. These rules would auto-approve the commands and subagent delegations most capable of causing damage before the classifier ever sees them. Narrow rules like `Bash(npm test)` carry over. The dropped rules are restored when you leave auto mode.158Once enabled, start with the flag and `auto` joins the `Shift+Tab` cycle:

193 159 

194The classifier receives user messages and tool calls as input, with Claude's own text and tool results stripped out. It also receives your CLAUDE.md content, so actions described in your project instructions are factored into allow and block decisions. Because tool results never reach the classifier, hostile content in a file or web page cannot manipulate it directly. The classifier evaluates the pending action against a customizable set of block and allow rules, checking whether the action is an overeager escalation beyond what you asked for, a mistake about what's safe to touch, or a sudden departure from your stated intent that suggests Claude may have been steered by something it read.160```bash theme={null}

195 161claude --enable-auto-mode

196Unlike your permission rules, which match tool names and argument patterns, the classifier reads prose descriptions of what to block and allow: it reasons about the action in context rather than matching syntax.162```

197 

198### How auto mode handles subagents

199 

200When Claude spawns a [subagent](/en/sub-agents), the classifier evaluates the delegated task before the subagent starts. A task description that looks dangerous on its own, like "delete all remote branches matching this pattern", is blocked at spawn time.

201 

202Inside the subagent, auto mode runs with the same block and allow rules as the parent session. Any `permissionMode` the subagent defines in its own frontmatter is ignored. The subagent's own tool calls go through the classifier independently.

203 

204When the subagent finishes, the classifier reviews its full action history. A subagent that was benign at spawn could have been compromised mid-run by content it read. If the return check flags a concern, a security warning is prepended to the subagent's results so the main agent can decide how to proceed.

205 163 

206### What the classifier blocks by default164### What the classifier blocks by default

207 165 

208Out of the box, the classifier trusts your working directory and, if you're in a git repo, that repo's configured remotes. Everything else is treated as external: your company's source control orgs, cloud buckets, and internal services are unknown until you tell the classifier about them.166The classifier trusts your working directory and your repo's configured remotes. Everything else is treated as external until you [configure trusted infrastructure](/en/permissions#configure-the-auto-mode-classifier).

209 167 

210**Blocked by default**:168**Blocked by default**:

211 169 

212* Downloading and executing code, like `curl | bash` or scripts from cloned repos170* Downloading and executing code, like `curl | bash`

213* Sending sensitive data to external endpoints171* Sending sensitive data to external endpoints

214* Production deploys and migrations172* Production deploys and migrations

215* Mass deletion on cloud storage173* Mass deletion on cloud storage

216* Granting IAM or repo permissions174* Granting IAM or repo permissions

217* Modifying shared infrastructure175* Modifying shared infrastructure

218* Irreversibly destroying files that existed before the session started176* Irreversibly destroying files that existed before the session

219* Destructive source control operations like force push or pushing directly to `main`177* Force push, or pushing directly to `main`

220 178 

221**Allowed by default**:179**Allowed by default**:

222 180 

223* Local file operations in your working directory181* Local file operations in your working directory

224* Installing dependencies already declared in your lock files or manifests182* Installing dependencies declared in your lock files or manifests

225* Reading `.env` and sending credentials to their matching API183* Reading `.env` and sending credentials to their matching API

226* Read-only HTTP requests184* Read-only HTTP requests

227* Pushing to the branch you started on or one Claude created185* Pushing to the branch you started on or one Claude created

228 186 

229To see the full default rule lists as the classifier receives them, run `claude auto-mode defaults`.187Run `claude auto-mode defaults` to see the full rule lists. If routine actions get blocked, an administrator can add trusted repos, buckets, and services via the `autoMode.environment` setting: see [Configure the auto mode classifier](/en/permissions#configure-the-auto-mode-classifier).

230 

231If auto mode blocks something routine for your team, like pushing to your own org's repo or writing to a company bucket, it's because the classifier doesn't know those are trusted. Administrators can add trusted repos, buckets, and internal services via the `autoMode.environment` setting: see [Configure the auto mode classifier](/en/permissions#configure-the-auto-mode-classifier) for the full configuration guide.

232 188 

233### When auto mode falls back189### When auto mode falls back

234 190 

235The fallback design keeps false positives from derailing a session: a mistaken block costs Claude a retry, not your progress. If the classifier blocks an action 3 times in a row or 20 times total in one session, auto mode pauses and Claude Code resumes prompting for each action. These thresholds are not configurable.191Each denied action shows a notification and appears in `/permissions` under the Recently denied tab, where you can press `r` to retry it with a manual approval.

236 192 

237* **CLI**: you see a notification in the status area, and the denied action appears in `/permissions` under the Recently denied tab. Approving the prompted action resets the denial counters, so you can continue in auto mode193If the classifier blocks an action 3 times in a row or 20 times total, auto mode pauses and Claude Code resumes prompting. Approving the prompted action resumes auto mode. These thresholds are not configurable. Any allowed action resets the consecutive counter, while the total counter persists for the session and resets only when its own limit triggers a fallback.

238* **Non-interactive mode** with the `-p` flag: aborts the session, since there is no user to prompt

239 194 

240Repeated blocks usually mean one of two things: the task genuinely requires actions the classifier is built to stop, or the classifier is missing context about your trusted infrastructure and treating safe actions as risky. If the blocks look like false positives, or if the classifier misses something it should have caught, use `/feedback` to report it. If blocks are happening because the classifier doesn't recognize your repos or services as trusted, have an administrator [configure trusted infrastructure](/en/permissions#configure-the-auto-mode-classifier) in managed settings.195In [non-interactive mode](/en/headless) with the `-p` flag, repeated blocks abort the session since there is no user to prompt.

196 

197Repeated blocks usually mean the classifier is missing context about your infrastructure. Use `/feedback` to report false positives, or have an administrator [configure trusted infrastructure](/en/permissions#configure-the-auto-mode-classifier).

198 

199<AccordionGroup>

200 <Accordion title="How the classifier evaluates actions">

201 Each action goes through a fixed decision order. The first matching step wins:

202 

203 1. Actions matching your [allow or deny rules](/en/permissions#manage-permissions) resolve immediately

204 2. Read-only actions and file edits in your working directory are auto-approved, except writes to [protected paths](#protected-paths)

205 3. Everything else goes to the classifier

206 4. If the classifier blocks, Claude receives the reason and tries an alternative

207 

208 On entering auto mode, broad allow rules that grant arbitrary code execution are dropped:

209 

210 * Blanket `Bash(*)`

211 * Wildcarded interpreters like `Bash(python*)`

212 * Package-manager run commands

213 * `Agent` allow rules

214 

215 Narrow rules like `Bash(npm test)` carry over. Dropped rules are restored when you leave auto mode.

216 

217 The classifier sees user messages, tool calls, and your CLAUDE.md content. Tool results are stripped, so hostile content in a file or web page cannot manipulate it directly. A separate server-side probe scans incoming tool results and flags suspicious content before Claude reads it. For more on how these layers work together, see the [auto mode announcement](https://claude.com/blog/auto-mode) and the [engineering deep dive](https://www.anthropic.com/engineering/claude-code-auto-mode).

218 </Accordion>

219 

220 <Accordion title="How auto mode handles subagents">

221 The classifier checks [subagent](/en/sub-agents) work at three points:

222 

223 1. Before a subagent starts, the delegated task description is evaluated, so a dangerous-looking task is blocked at spawn time.

224 2. While the subagent runs, each of its actions goes through the classifier with the same rules as the parent session, and any `permissionMode` in the subagent's frontmatter is ignored.

225 3. When the subagent finishes, the classifier reviews its full action history; if that return check flags a concern, a security warning is prepended to the subagent's results.

226 </Accordion>

227 

228 <Accordion title="Cost and latency">

229 The classifier currently runs on Claude Sonnet 4.6 regardless of your main session model. Classifier calls count toward your token usage. Each check sends a portion of the transcript plus the pending action, adding a round-trip before execution. Reads and working-directory edits outside protected paths skip the classifier, so the overhead comes mainly from shell commands and network operations.

230 </Accordion>

231</AccordionGroup>

241 232 

242## Allow only pre-approved tools with dontAsk mode233## Allow only pre-approved tools with dontAsk mode

243 234 

244`dontAsk` mode auto-denies every tool that is not explicitly allowed. Only actions matching your `/permissions` allow rules or `permissions.allow` settings can execute. If a tool has an explicit `ask` rule, the action is also denied rather than prompting. This makes the mode fully non-interactive, suitable for CI pipelines or restricted environments where you pre-define exactly what Claude is permitted to do.235`dontAsk` mode auto-denies every tool that is not explicitly allowed. Only actions matching your `permissions.allow` rules can execute; explicit `ask` rules are also denied rather than prompting. This makes the mode fully non-interactive for CI pipelines or restricted environments where you pre-define exactly what Claude may do.

236 

237Set it at startup with the flag:

245 238 

246```bash theme={null}239```bash theme={null}

247claude --permission-mode dontAsk240claude --permission-mode dontAsk


249 242 

250## Skip all checks with bypassPermissions mode243## Skip all checks with bypassPermissions mode

251 244 

252`bypassPermissions` mode disables permission prompts and safety checks. Tool calls execute immediately, except for writes to `.git`, `.vscode`, `.idea`, and `.husky`, which still prompt to prevent accidental corruption of repository state, editor configuration, and git hooks. Writes to `.claude` also prompt, except for `.claude/commands`, `.claude/agents`, and `.claude/skills` where Claude routinely creates skills, subagents, and commands. Only use this mode in isolated environments like containers, VMs, or devcontainers without internet access, where Claude Code cannot cause damage to your host system.245`bypassPermissions` mode disables permission prompts and safety checks so tool calls execute immediately. Writes to [protected paths](#protected-paths) are the only actions that still prompt. Only use this mode in isolated environments like containers, VMs, or devcontainers without internet access, where Claude Code cannot damage your host system.

246 

247You cannot enter `bypassPermissions` from a session that was started without one of the enabling flags; restart with one to enable it:

253 248 

254```bash theme={null}249```bash theme={null}

255claude --permission-mode bypassPermissions250claude --permission-mode bypassPermissions

256```251```

257 252 

258The `--dangerously-skip-permissions` flag is equivalent to `--permission-mode bypassPermissions`:253The `--dangerously-skip-permissions` flag is equivalent.

259 

260```bash theme={null}

261claude -p "refactor the auth module" --dangerously-skip-permissions

262```

263 254 

264<Warning>255<Warning>

265 `bypassPermissions` mode offers no protection against prompt injection or unintended actions. For a safer alternative that still maintains background safety checks, use [auto mode](#eliminate-prompts-with-auto-mode). Administrators can block this mode by setting `permissions.disableBypassPermissionsMode` to `"disable"` in [managed settings](/en/permissions#managed-settings).256 `bypassPermissions` offers no protection against prompt injection or unintended actions. For background safety checks without prompts, use [auto mode](#eliminate-prompts-with-auto-mode) instead. Administrators can block this mode by setting `permissions.disableBypassPermissionsMode` to `"disable"` in [managed settings](/en/permissions#managed-settings).

266</Warning>257</Warning>

267 258 

268## Compare permission approaches259## Protected paths

269 

270The table below summarizes the key differences in how each mode handles approvals. `plan` is omitted since it restricts what Claude can do rather than how approvals work.

271 260 

272| | `default` | `acceptEdits` | `auto` | `dontAsk` | `bypassPermissions` |261Writes to a small set of paths are never auto-approved, in every mode. This prevents accidental corruption of repository state and Claude's own configuration. In `default`, `acceptEdits`, `plan`, and `bypassPermissions` these writes prompt; in `auto` they route to the classifier; in `dontAsk` they are denied.

273| :----------------- | :---------------------- | :------------------------------------------------- | :--------------------------------------------------------- | :------------------------------- | :------------------------------------ |

274| Permission prompts | File edits and commands | Commands and protected directories | None unless fallback triggers | None, blocked unless pre-allowed | Protected directories only |

275| Safety checks | You review each action | You review commands and protected-directory writes | Classifier reviews commands and protected-directory writes | Your pre-approved rules only | You review protected-directory writes |

276| Token usage | Standard | Standard | Higher, from classifier calls | Standard | Standard |

277 262 

278## Customize permissions further263Protected directories:

279 264 

280Permission modes set the baseline approval behavior. For control over individual tools or commands, layer additional configuration on top of the active mode.265* `.git`

266* `.vscode`

267* `.idea`

268* `.husky`

269* `.claude`, except for `.claude/commands`, `.claude/agents`, `.claude/skills`, and `.claude/worktrees` where Claude routinely creates content

281 270 

282**Permission rules** are the first stop. Add `allow`, `ask`, or `deny` entries to your settings file to pre-approve safe commands, force a prompt for risky ones, or block specific tools entirely. Rules apply in every mode except `bypassPermissions`, and are matched by tool name and argument pattern. See [Manage permissions](/en/permissions#manage-permissions) for syntax and examples.271Protected files:

283 272 

284**Hooks** cover logic that pattern-matching rules can't express. A [`PreToolUse` hook](/en/hooks#pretooluse-decision-control) runs before every tool call and can allow, deny, or escalate based on command content, file paths, time of day, or a response from an external policy service. A [`PermissionRequest` hook](/en/hooks#permissionrequest) intercepts the permission dialog itself and answers on your behalf. See [Hooks](/en/hooks) for configuration.273* `.gitconfig`, `.gitmodules`

274* `.bashrc`, `.bash_profile`, `.zshrc`, `.zprofile`, `.profile`

275* `.ripgreprc`

276* `.mcp.json`, `.claude.json`

285 277 

286## See also278## See also

287 279 

288* [Permissions](/en/permissions): permission rules, syntax, managed policies280* [Permissions](/en/permissions): allow, ask, and deny rules; auto mode classifier configuration; managed policies

289* [Hooks](/en/hooks): custom permission logic, lifecycle scripting281* [Hooks](/en/hooks): custom permission logic via `PreToolUse` and `PermissionRequest` hooks

290* [Security](/en/security): security safeguards and best practices282* [Ultraplan](/en/ultraplan): run plan mode in a Claude Code on the web session with browser-based review

283* [Security](/en/security): safeguards and best practices

291* [Sandboxing](/en/sandboxing): filesystem and network isolation for Bash commands284* [Sandboxing](/en/sandboxing): filesystem and network isolation for Bash commands

292* [Non-interactive mode](/en/headless): run Claude Code programmatically with the `-p` flag285* [Non-interactive mode](/en/headless): run Claude Code with the `-p` flag

permissions.md +2 −0

Details

246* Filesystem restrictions in the sandbox use Read and Edit deny rules, not separate sandbox configuration246* Filesystem restrictions in the sandbox use Read and Edit deny rules, not separate sandbox configuration

247* Network restrictions combine WebFetch permission rules with the sandbox's `allowedDomains` list247* Network restrictions combine WebFetch permission rules with the sandbox's `allowedDomains` list

248 248 

249When sandboxing is enabled with `autoAllowBashIfSandboxed: true`, which is the default, sandboxed Bash commands run without prompting even if your permissions include `ask: Bash(*)`. The sandbox boundary substitutes for the per-command prompt. See [sandbox modes](/en/sandboxing#sandbox-modes) to change this behavior.

250 

249## Managed settings251## Managed settings

250 252 

251For organizations that need centralized control over Claude Code configuration, administrators can deploy managed settings that cannot be overridden by user or project settings. These policy settings follow the same format as regular settings files and can be delivered through MDM/OS-level policies, managed settings files, or [server-managed settings](/en/server-managed-settings). See [settings files](/en/settings#settings-files) for delivery mechanisms and file locations.253For organizations that need centralized control over Claude Code configuration, administrators can deploy managed settings that cannot be overridden by user or project settings. These policy settings follow the same format as regular settings files and can be delivered through MDM/OS-level policies, managed settings files, or [server-managed settings](/en/server-managed-settings). See [settings files](/en/settings#settings-files) for delivery mechanisms and file locations.

platforms.md +3 −3

Details

14 14 

15| Platform | Best for | What you get |15| Platform | Best for | What you get |

16| :-------------------------------- | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |16| :-------------------------------- | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |

17| [CLI](/en/quickstart) | Terminal workflows, scripting, remote servers | Full feature set, [Agent SDK](/en/headless), [computer use](/en/computer-use) on Pro and Max, third-party providers |17| [CLI](/en/quickstart) | Terminal workflows, scripting, remote servers | Full feature set, [Agent SDK](/en/headless), [computer use](/en/computer-use) on macOS (Pro and Max), third-party providers |

18| [Desktop](/en/desktop) | Visual review, parallel sessions, managed setup | Diff viewer, app preview, [computer use](/en/desktop#let-claude-use-your-computer) and [Dispatch](/en/desktop#sessions-from-dispatch) on Pro and Max |18| [Desktop](/en/desktop) | Visual review, parallel sessions, managed setup | Diff viewer, app preview, [computer use](/en/desktop#let-claude-use-your-computer) and [Dispatch](/en/desktop#sessions-from-dispatch) on Pro and Max |

19| [VS Code](/en/vs-code) | Working inside VS Code without switching to a terminal | Inline diffs, integrated terminal, file context |19| [VS Code](/en/vs-code) | Working inside VS Code without switching to a terminal | Inline diffs, integrated terminal, file context |

20| [JetBrains](/en/jetbrains) | Working inside IntelliJ, PyCharm, WebStorm, or other JetBrains IDEs | Diff viewer, selection sharing, terminal session |20| [JetBrains](/en/jetbrains) | Working inside IntelliJ, PyCharm, WebStorm, or other JetBrains IDEs | Diff viewer, selection sharing, terminal session |


43Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.43Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.

44 44 

45| | Trigger | Claude runs on | Setup | Best for |45| | Trigger | Claude runs on | Setup | Best for |

46| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |46| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

47| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |47| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |

48| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |48| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |

49| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |49| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |

50| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |50| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |

51| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop#schedule-recurring-tasks), or [cloud](/en/web-scheduled-tasks) | Pick a frequency | Recurring automation like daily reviews |51| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop-scheduled-tasks), or [cloud](/en/web-scheduled-tasks) | Pick a frequency | Recurring automation like daily reviews |

52 52 

53If you're not sure where to start, [install the CLI](/en/quickstart) and run it in a project directory. If you'd rather not use a terminal, [Desktop](/en/desktop-quickstart) gives you the same engine with a graphical interface.53If you're not sure where to start, [install the CLI](/en/quickstart) and run it in a project directory. If you'd rather not use a terminal, [Desktop](/en/desktop-quickstart) gives you the same engine with a graphical interface.

54 54 

Details

220Once a plugin is cloned or copied into the local machine, it is copied into the local versioned plugin cache at `~/.claude/plugins/cache`.220Once a plugin is cloned or copied into the local machine, it is copied into the local versioned plugin cache at `~/.claude/plugins/cache`.

221 221 

222| Source | Type | Fields | Notes |222| Source | Type | Fields | Notes |

223| ------------- | ------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------- |223| ------------- | ------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |

224| Relative path | `string` (e.g. `"./my-plugin"`) | none | Local directory within the marketplace repo. Must start with `./` |224| Relative path | `string` (e.g. `"./my-plugin"`) | none | Local directory within the marketplace repo. Must start with `./`. Resolved relative to the marketplace root, not the `.claude-plugin/` directory |

225| `github` | object | `repo`, `ref?`, `sha?` | |225| `github` | object | `repo`, `ref?`, `sha?` | |

226| `url` | object | `url`, `ref?`, `sha?` | Git URL source |226| `url` | object | `url`, `ref?`, `sha?` | Git URL source |

227| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdirectory within a git repo. Clones sparsely to minimize bandwidth for monorepos |227| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdirectory within a git repo. Clones sparsely to minimize bandwidth for monorepos |


247}247}

248```248```

249 249 

250Paths resolve relative to the marketplace root, which is the directory containing `.claude-plugin/`. In the example above, `./plugins/my-plugin` points to `<repo>/plugins/my-plugin`, even though `marketplace.json` lives at `<repo>/.claude-plugin/marketplace.json`. Do not use `../` to climb out of `.claude-plugin/`.250Paths resolve relative to the marketplace root, which is the directory containing `.claude-plugin/`. In the example above, `./plugins/my-plugin` points to `<repo>/plugins/my-plugin`, even though `marketplace.json` lives at `<repo>/.claude-plugin/marketplace.json`. Do not use `../` to reference paths outside the marketplace root.

251 251 

252<Note>252<Note>

253 Relative paths only work when users add your marketplace via Git (GitHub, GitLab, or git URL). If users add your marketplace via a direct URL to the `marketplace.json` file, relative paths will not resolve correctly. For URL-based distribution, use GitHub, npm, or git URL sources instead. See [Troubleshooting](#plugins-with-relative-paths-fail-in-url-based-marketplaces) for details.253 Relative paths only work when users add your marketplace via Git (GitHub, GitLab, or git URL). If users add your marketplace via a direct URL to the `marketplace.json` file, relative paths will not resolve correctly. For URL-based distribution, use GitHub, npm, or git URL sources instead. See [Troubleshooting](#plugins-with-relative-paths-fail-in-url-based-marketplaces) for details.


576 cache/<marketplace>/<plugin>/<version>/...576 cache/<marketplace>/<plugin>/<version>/...

577```577```

578 578 

579The simplest way to build a seed directory is to run Claude Code once during image build, install the plugins you need, then copy the resulting `~/.claude/plugins` directory into your image and point `CLAUDE_CODE_PLUGIN_SEED_DIR` at it.579To build a seed directory, run Claude Code once during image build, install the plugins you need, then copy the resulting `~/.claude/plugins` directory into your image and point `CLAUDE_CODE_PLUGIN_SEED_DIR` at it.

580 

581To skip the copy step, set `CLAUDE_CODE_PLUGIN_CACHE_DIR` to your target seed path during the build so plugins install directly there:

582 

583```bash theme={null}

584CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

585CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

586```

587 

588Then set `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` in your container's runtime environment so Claude Code reads from the seed on startup.

580 589 

581At startup, Claude Code registers marketplaces found in the seed's `known_marketplaces.json` into the primary configuration, and uses plugin caches found under `cache/` in place without re-cloning. This works in both interactive mode and non-interactive mode with the `-p` flag.590At startup, Claude Code registers marketplaces found in the seed's `known_marketplaces.json` into the primary configuration, and uses plugin caches found under `cache/` in place without re-cloning. This works in both interactive mode and non-interactive mode with the `-p` flag.

582 591 


585* **Read-only**: the seed directory is never written to. Auto-updates are disabled for seed marketplaces since git pull would fail on a read-only filesystem.594* **Read-only**: the seed directory is never written to. Auto-updates are disabled for seed marketplaces since git pull would fail on a read-only filesystem.

586* **Seed entries take precedence**: marketplaces declared in the seed overwrite any matching entries in the user's configuration on each startup. To opt out of a seed plugin, use `/plugin disable` rather than removing the marketplace.595* **Seed entries take precedence**: marketplaces declared in the seed overwrite any matching entries in the user's configuration on each startup. To opt out of a seed plugin, use `/plugin disable` rather than removing the marketplace.

587* **Path resolution**: Claude Code locates marketplace content by probing `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` at runtime, not by trusting paths stored inside the seed's JSON. This means the seed works correctly even when mounted at a different path than where it was built.596* **Path resolution**: Claude Code locates marketplace content by probing `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` at runtime, not by trusting paths stored inside the seed's JSON. This means the seed works correctly even when mounted at a different path than where it was built.

597* **Mutation is blocked**: running `/plugin marketplace remove` or `/plugin marketplace update` against a seed-managed marketplace fails with guidance to ask your administrator to update the seed image.

588* **Composes with settings**: if `extraKnownMarketplaces` or `enabledPlugins` declare a marketplace that already exists in the seed, Claude Code uses the seed copy instead of cloning.598* **Composes with settings**: if `extraKnownMarketplaces` or `enabledPlugins` declare a marketplace that already exists in the seed, Claude Code uses the seed copy instead of cloning.

589 599 

590### Managed marketplace restrictions600### Managed marketplace restrictions


790 800 

791For complete plugin testing workflows, see [Test your plugins locally](/en/plugins#test-your-plugins-locally). For technical troubleshooting, see [Plugins reference](/en/plugins-reference).801For complete plugin testing workflows, see [Test your plugins locally](/en/plugins#test-your-plugins-locally). For technical troubleshooting, see [Plugins reference](/en/plugins-reference).

792 802 

803## Manage marketplaces from the CLI

804 

805Claude Code provides non-interactive `claude plugin marketplace` subcommands for scripting and automation. These are equivalent to the `/plugin marketplace` commands available inside an interactive session.

806 

807### Plugin marketplace add

808 

809Add a marketplace from a GitHub repository, git URL, remote URL, or local path.

810 

811```bash theme={null}

812claude plugin marketplace add <source> [options]

813```

814 

815**Arguments:**

816 

817* `<source>`: GitHub `owner/repo` shorthand, git URL, remote URL to a `marketplace.json` file, or local directory path. To pin to a branch or tag, append `@ref` to the GitHub shorthand or `#ref` to a git URL

818 

819**Options:**

820 

821| Option | Description | Default |

822| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

823| `--scope <scope>` | Where to declare the marketplace: `user`, `project`, or `local`. See [Plugin installation scopes](/en/plugins-reference#plugin-installation-scopes) | `user` |

824| `--sparse <paths...>` | Limit checkout to specific directories via git sparse-checkout. Useful for monorepos | |

825 

826Add a marketplace from GitHub using `owner/repo` shorthand:

827 

828```bash theme={null}

829claude plugin marketplace add acme-corp/claude-plugins

830```

831 

832Pin to a specific branch or tag with `@ref`:

833 

834```bash theme={null}

835claude plugin marketplace add acme-corp/claude-plugins@v2.0

836```

837 

838Add from a git URL on a non-GitHub host:

839 

840```bash theme={null}

841claude plugin marketplace add https://gitlab.example.com/team/plugins.git

842```

843 

844Add from a remote URL that serves the `marketplace.json` file directly:

845 

846```bash theme={null}

847claude plugin marketplace add https://example.com/marketplace.json

848```

849 

850Add from a local directory for testing:

851 

852```bash theme={null}

853claude plugin marketplace add ./my-marketplace

854```

855 

856Declare the marketplace at project scope so it is shared with your team via `.claude/settings.json`:

857 

858```bash theme={null}

859claude plugin marketplace add acme-corp/claude-plugins --scope project

860```

861 

862For a monorepo, limit the checkout to the directories that contain plugin content:

863 

864```bash theme={null}

865claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

866```

867 

868### Plugin marketplace list

869 

870List all configured marketplaces.

871 

872```bash theme={null}

873claude plugin marketplace list [options]

874```

875 

876**Options:**

877 

878| Option | Description |

879| :------- | :------------- |

880| `--json` | Output as JSON |

881 

882### Plugin marketplace remove

883 

884Remove a configured marketplace. The alias `rm` is also accepted.

885 

886```bash theme={null}

887claude plugin marketplace remove <name>

888```

889 

890**Arguments:**

891 

892* `<name>`: marketplace name to remove, as shown by `claude plugin marketplace list`. This is the `name` from `marketplace.json`, not the source you passed to `add`

893 

894<Warning>

895 Removing a marketplace also uninstalls any plugins you installed from it. To refresh a marketplace without losing installed plugins, use `claude plugin marketplace update` instead.

896</Warning>

897 

898### Plugin marketplace update

899 

900Refresh marketplaces from their sources to retrieve new plugins and version changes.

901 

902```bash theme={null}

903claude plugin marketplace update [name]

904```

905 

906**Arguments:**

907 

908* `[name]`: marketplace name to update, as shown by `claude plugin marketplace list`. Updates all marketplaces if omitted

909 

910Both `remove` and `update` fail when run against a seed-managed marketplace, which is read-only. When updating all marketplaces, seed-managed entries are skipped and other marketplaces still update. To change seed-provided plugins, ask your administrator to update the seed image. See [Pre-populate plugins for containers](#pre-populate-plugins-for-containers).

911 

793## Troubleshooting912## Troubleshooting

794 913 

795### Marketplace not loading914### Marketplace not loading

plugins.md +1 −0

Details

188| `hooks/` | Plugin root | Event handlers in `hooks.json` |188| `hooks/` | Plugin root | Event handlers in `hooks.json` |

189| `.mcp.json` | Plugin root | MCP server configurations |189| `.mcp.json` | Plugin root | MCP server configurations |

190| `.lsp.json` | Plugin root | LSP server configurations for code intelligence |190| `.lsp.json` | Plugin root | LSP server configurations for code intelligence |

191| `bin/` | Plugin root | Executables added to the Bash tool's `PATH` while the plugin is enabled |

191| `settings.json` | Plugin root | Default [settings](/en/settings) applied when the plugin is enabled |192| `settings.json` | Plugin root | Default [settings](/en/settings) applied when the plugin is enabled |

192 193 

193<Note>194<Note>

Details

545├── hooks/ # Hook configurations545├── hooks/ # Hook configurations

546│ ├── hooks.json # Main hook config546│ ├── hooks.json # Main hook config

547│ └── security-hooks.json # Additional hooks547│ └── security-hooks.json # Additional hooks

548├── bin/ # Plugin executables added to PATH

549│ └── my-tool # Invokable as bare command in Bash tool

548├── settings.json # Default settings for the plugin550├── settings.json # Default settings for the plugin

549├── .mcp.json # MCP server definitions551├── .mcp.json # MCP server definitions

550├── .lsp.json # LSP server configurations552├── .lsp.json # LSP server configurations


563### File locations reference565### File locations reference

564 566 

565| Component | Default Location | Purpose |567| Component | Default Location | Purpose |

566| :---------------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------ |568| :---------------- | :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

567| **Manifest** | `.claude-plugin/plugin.json` | Plugin metadata and configuration (optional) |569| **Manifest** | `.claude-plugin/plugin.json` | Plugin metadata and configuration (optional) |

568| **Commands** | `commands/` | Skill Markdown files (legacy; use `skills/` for new skills) |570| **Commands** | `commands/` | Skill Markdown files (legacy; use `skills/` for new skills) |

569| **Agents** | `agents/` | Subagent Markdown files |571| **Agents** | `agents/` | Subagent Markdown files |


572| **Hooks** | `hooks/hooks.json` | Hook configuration |574| **Hooks** | `hooks/hooks.json` | Hook configuration |

573| **MCP servers** | `.mcp.json` | MCP server definitions |575| **MCP servers** | `.mcp.json` | MCP server definitions |

574| **LSP servers** | `.lsp.json` | Language server configurations |576| **LSP servers** | `.lsp.json` | Language server configurations |

577| **Executables** | `bin/` | Executables added to the Bash tool's `PATH`. Files here are invokable as bare commands in any Bash tool call while the plugin is enabled |

575| **Settings** | `settings.json` | Default configuration applied when the plugin is enabled. Only [`agent`](/en/sub-agents) settings are currently supported |578| **Settings** | `settings.json` | Default configuration applied when the plugin is enabled. Only [`agent`](/en/sub-agents) settings are currently supported |

576 579 

577***580***


599| `-s, --scope <scope>` | Installation scope: `user`, `project`, or `local` | `user` |602| `-s, --scope <scope>` | Installation scope: `user`, `project`, or `local` | `user` |

600| `-h, --help` | Display help for command | |603| `-h, --help` | Display help for command | |

601 604 

602Scope determines which settings file the installed plugin is added to. For example, --scope project writes to `enabledPlugins` in .claude/settings.json, making the plugin available to everyone who clones the project repository.605Scope determines which settings file the installed plugin is added to. For example, `--scope project` writes to `enabledPlugins` in .claude/settings.json, making the plugin available to everyone who clones the project repository.

603 606 

604**Examples:**607**Examples:**

605 608 

Details

134* **One remote session per interactive process**: outside of server mode, each Claude Code instance supports one remote session at a time. Use server mode with `--spawn` to run multiple concurrent sessions from a single process.134* **One remote session per interactive process**: outside of server mode, each Claude Code instance supports one remote session at a time. Use server mode with `--spawn` to run multiple concurrent sessions from a single process.

135* **Terminal must stay open**: Remote Control runs as a local process. If you close the terminal or stop the `claude` process, the session ends. Run `claude remote-control` again to start a new one.135* **Terminal must stay open**: Remote Control runs as a local process. If you close the terminal or stop the `claude` process, the session ends. Run `claude remote-control` again to start a new one.

136* **Extended network outage**: if your machine is awake but unable to reach the network for more than roughly 10 minutes, the session times out and the process exits. Run `claude remote-control` again to start a new session.136* **Extended network outage**: if your machine is awake but unable to reach the network for more than roughly 10 minutes, the session times out and the process exits. Run `claude remote-control` again to start a new session.

137* **Ultraplan disconnects Remote Control**: starting an [ultraplan](/en/ultraplan) session disconnects any active Remote Control session because both features occupy the claude.ai/code interface and only one can be connected at a time.

137 138 

138## Troubleshooting139## Troubleshooting

139 140 


185Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.186Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.

186 187 

187| | Trigger | Claude runs on | Setup | Best for |188| | Trigger | Claude runs on | Setup | Best for |

188| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |189| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

189| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |190| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |

190| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |191| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |

191| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |192| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |

192| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |193| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |

193| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop#schedule-recurring-tasks), or [cloud](/en/web-scheduled-tasks) | Pick a frequency | Recurring automation like daily reviews |194| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop-scheduled-tasks), or [cloud](/en/web-scheduled-tasks) | Pick a frequency | Recurring automation like daily reviews |

194 195 

195## Related resources196## Related resources

196 197 

197* [Claude Code on the web](/en/claude-code-on-the-web): run sessions in Anthropic-managed cloud environments instead of on your machine198* [Claude Code on the web](/en/claude-code-on-the-web): run sessions in Anthropic-managed cloud environments instead of on your machine

199* [Ultraplan](/en/ultraplan): launch a cloud planning session from your terminal and review the plan in your browser

198* [Channels](/en/channels): forward Telegram, Discord, or iMessage into a session so Claude reacts to messages while you're away200* [Channels](/en/channels): forward Telegram, Discord, or iMessage into a session so Claude reacts to messages while you're away

199* [Dispatch](/en/desktop#sessions-from-dispatch): message a task from your phone and it can spawn a Desktop session to handle it201* [Dispatch](/en/desktop#sessions-from-dispatch): message a task from your phone and it can spawn a Desktop session to handle it

200* [Authentication](/en/authentication): set up `/login` and manage credentials for claude.ai202* [Authentication](/en/authentication): set up `/login` and manage credentials for claude.ai

sandboxing.md +2 −2

Details

103 103 

104Claude Code offers two sandbox modes:104Claude Code offers two sandbox modes:

105 105 

106**Auto-allow mode**: Bash commands will attempt to run inside the sandbox and are automatically allowed without requiring permission. Commands that cannot be sandboxed (such as those needing network access to non-allowed hosts) fall back to the regular permission flow. Explicit ask/deny rules you've configured are always respected.106**Auto-allow mode**: Bash commands will attempt to run inside the sandbox and are automatically allowed without requiring permission. Commands that cannot be sandboxed (such as those needing network access to non-allowed hosts) fall back to the regular permission flow. Explicit deny rules are always respected. Ask rules apply only to commands that fall back to the regular permission flow.

107 107 

108**Regular permissions mode**: All bash commands go through the standard permission flow, even when sandboxed. This provides more control but requires more approvals.108**Regular permissions mode**: All bash commands go through the standard permission flow, even when sandboxed. This provides more control but requires more approvals.

109 109 


314The sandbox isolates Bash subprocesses. Other tools operate under different boundaries:314The sandbox isolates Bash subprocesses. Other tools operate under different boundaries:

315 315 

316* **Built-in file tools**: Read, Edit, and Write use the permission system directly rather than running through the sandbox. See [permissions](/en/permissions).316* **Built-in file tools**: Read, Edit, and Write use the permission system directly rather than running through the sandbox. See [permissions](/en/permissions).

317* **Computer use**: when Claude opens apps and controls your screen on macOS, it runs on your actual desktop rather than in an isolated environment. Per-app permission prompts gate each application. See [computer use in the CLI](/en/computer-use) or [computer use in Desktop](/en/desktop#let-claude-use-your-computer).317* **Computer use**: when Claude opens apps and controls your screen, it runs on your actual desktop rather than in an isolated environment. Per-app permission prompts gate each application. See [computer use in the CLI](/en/computer-use) or [computer use in Desktop](/en/desktop#let-claude-use-your-computer).

318 318 

319## See also319## See also

320 320 

Details

12 12 

13Scheduled tasks let Claude re-run a prompt automatically on an interval. Use them to poll a deployment, babysit a PR, check back on a long-running build, or remind yourself to do something later in the session. To react to events as they happen instead of polling, see [Channels](/en/channels): your CI can push the failure into the session directly.13Scheduled tasks let Claude re-run a prompt automatically on an interval. Use them to poll a deployment, babysit a PR, check back on a long-running build, or remind yourself to do something later in the session. To react to events as they happen instead of polling, see [Channels](/en/channels): your CI can push the failure into the session directly.

14 14 

15Tasks are session-scoped: they live in the current Claude Code process and are gone when you exit. For durable scheduling that survives restarts, use [Cloud](/en/web-scheduled-tasks) or [Desktop](/en/desktop#schedule-recurring-tasks) scheduled tasks, or [GitHub Actions](/en/github-actions).15Tasks are session-scoped: they live in the current Claude Code process and are gone when you exit. For durable scheduling that survives restarts, use [Cloud](/en/web-scheduled-tasks) or [Desktop](/en/desktop-scheduled-tasks) scheduled tasks, or [GitHub Actions](/en/github-actions).

16 16 

17## Compare scheduling options17## Compare scheduling options

18 18 

19Claude Code offers three ways to schedule recurring work:19Claude Code offers three ways to schedule recurring work:

20 20 

21| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop#schedule-recurring-tasks) | [`/loop`](/en/scheduled-tasks) |21| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

22| :------------------------- | :------------------------------- | :---------------------------------------------- | :----------------------------- |22| :------------------------- | :------------------------------- | :------------------------------------- | :----------------------------- |

23| Runs on | Anthropic cloud | Your machine | Your machine |23| Runs on | Anthropic cloud | Your machine | Your machine |

24| Requires machine on | No | Yes | Yes |24| Requires machine on | No | Yes | Yes |

25| Requires open session | No | No | Yes |25| Requires open session | No | No | Yes |


119 119 

120### Seven-day expiry120### Seven-day expiry

121 121 

122Recurring tasks automatically expire 7 days after creation. The task fires one final time, then deletes itself. This bounds how long a forgotten loop can run. If you need a recurring task to last longer, cancel and recreate it before it expires, or use [Cloud scheduled tasks](/en/web-scheduled-tasks) or [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks) for durable scheduling.122Recurring tasks automatically expire 7 days after creation. The task fires one final time, then deletes itself. This bounds how long a forgotten loop can run. If you need a recurring task to last longer, cancel and recreate it before it expires, or use [Cloud scheduled tasks](/en/web-scheduled-tasks) or [Desktop scheduled tasks](/en/desktop-scheduled-tasks) for durable scheduling.

123 123 

124## Cron expression reference124## Cron expression reference

125 125 


154 154 

155* [Cloud scheduled tasks](/en/web-scheduled-tasks): run on Anthropic-managed infrastructure155* [Cloud scheduled tasks](/en/web-scheduled-tasks): run on Anthropic-managed infrastructure

156* [GitHub Actions](/en/github-actions): use a `schedule` trigger in CI156* [GitHub Actions](/en/github-actions): use a `schedule` trigger in CI

157* [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks): run locally on your machine157* [Desktop scheduled tasks](/en/desktop-scheduled-tasks): run locally on your machine

settings.md +2 −2

Details

69| **Subagents** | `~/.claude/agents/` | `.claude/agents/` | None |69| **Subagents** | `~/.claude/agents/` | `.claude/agents/` | None |

70| **MCP servers** | `~/.claude.json` | `.mcp.json` | `~/.claude.json` (per-project) |70| **MCP servers** | `~/.claude.json` | `.mcp.json` | `~/.claude.json` (per-project) |

71| **Plugins** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |71| **Plugins** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |

72| **CLAUDE.md** | `~/.claude/CLAUDE.md` | `CLAUDE.md` or `.claude/CLAUDE.md` | None |72| **CLAUDE.md** | `~/.claude/CLAUDE.md` | `CLAUDE.md` or `.claude/CLAUDE.md` | `CLAUDE.local.md` |

73 73 

74***74***

75 75 


178| `deniedMcpServers` | When set in managed-settings.json, denylist of MCP servers that are explicitly blocked. Applies to all scopes including managed servers. Denylist takes precedence over allowlist. See [Managed MCP configuration](/en/mcp#managed-mcp-configuration) | `[{ "serverName": "filesystem" }]` |178| `deniedMcpServers` | When set in managed-settings.json, denylist of MCP servers that are explicitly blocked. Applies to all scopes including managed servers. Denylist takes precedence over allowlist. See [Managed MCP configuration](/en/mcp#managed-mcp-configuration) | `[{ "serverName": "filesystem" }]` |

179| `disableAllHooks` | Disable all [hooks](/en/hooks) and any custom [status line](/en/statusline) | `true` |179| `disableAllHooks` | Disable all [hooks](/en/hooks) and any custom [status line](/en/statusline) | `true` |

180| `disableAutoMode` | Set to `"disable"` to prevent [auto mode](/en/permission-modes#eliminate-prompts-with-auto-mode) from being activated. Removes `auto` from the `Shift+Tab` cycle and rejects `--permission-mode auto` at startup. Most useful in [managed settings](/en/permissions#managed-settings) where users cannot override it | `"disable"` |180| `disableAutoMode` | Set to `"disable"` to prevent [auto mode](/en/permission-modes#eliminate-prompts-with-auto-mode) from being activated. Removes `auto` from the `Shift+Tab` cycle and rejects `--permission-mode auto` at startup. Most useful in [managed settings](/en/permissions#managed-settings) where users cannot override it | `"disable"` |

181| `disableDeepLinkRegistration` | Set to `"disable"` to prevent Claude Code from registering the `claude-cli://` protocol handler with the operating system on startup. Deep links let external tools open a Claude Code session with a pre-filled prompt via `claude-cli://open?q=...`. Useful in environments where protocol handler registration is restricted or managed separately | `"disable"` |181| `disableDeepLinkRegistration` | Set to `"disable"` to prevent Claude Code from registering the `claude-cli://` protocol handler with the operating system on startup. Deep links let external tools open a Claude Code session with a pre-filled prompt via `claude-cli://open?q=...`. The `q` parameter supports multi-line prompts using URL-encoded newlines (`%0A`). Useful in environments where protocol handler registration is restricted or managed separately | `"disable"` |

182| `disabledMcpjsonServers` | List of specific MCP servers from `.mcp.json` files to reject | `["filesystem"]` |182| `disabledMcpjsonServers` | List of specific MCP servers from `.mcp.json` files to reject | `["filesystem"]` |

183| `effortLevel` | Persist the [effort level](/en/model-config#adjust-effort-level) across sessions. Accepts `"low"`, `"medium"`, or `"high"`. Written automatically when you run `/effort low`, `/effort medium`, or `/effort high`. Supported on Opus 4.6 and Sonnet 4.6 | `"medium"` |183| `effortLevel` | Persist the [effort level](/en/model-config#adjust-effort-level) across sessions. Accepts `"low"`, `"medium"`, or `"high"`. Written automatically when you run `/effort low`, `/effort medium`, or `/effort high`. Supported on Opus 4.6 and Sonnet 4.6 | `"medium"` |

184| `enableAllProjectMcpServers` | Automatically approve all MCP servers defined in project `.mcp.json` files | `true` |184| `enableAllProjectMcpServers` | Automatically approve all MCP servers defined in project `.mcp.json` files | `true` |

ultraplan.md +83 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Plan in the cloud with ultraplan

6 

7> Start a plan from your CLI, draft it on Claude Code on the web, then execute it remotely or back in your terminal

8 

9<Note>

10 Ultraplan is in research preview. Behavior and capabilities may change based on feedback.

11</Note>

12 

13Ultraplan hands a planning task from your local CLI to a [Claude Code on the web](/en/claude-code-on-the-web) session running in [plan mode](/en/permission-modes#analyze-before-you-edit-with-plan-mode). Claude drafts the plan in the cloud while you keep working in your terminal. When the plan is ready, you open it in your browser to comment on specific sections, ask for revisions, and choose where to execute it.

14 

15This is useful when you want a richer review surface than the terminal offers:

16 

17* **Targeted feedback**: comment on individual sections of the plan instead of replying to the whole thing

18* **Hands-off drafting**: the plan is generated remotely, so your terminal stays free for other work

19* **Flexible execution**: approve the plan to run on the web and open a pull request, or send it back to your terminal

20 

21Ultraplan requires a [Claude Code on the web](/en/claude-code-on-the-web#who-can-use-claude-code-on-the-web) account and a GitHub repository. The cloud session runs in your account's default [cloud environment](/en/claude-code-on-the-web#cloud-environment).

22 

23## Launch ultraplan from the CLI

24 

25From your local CLI session, you can launch ultraplan in three ways:

26 

27* **Command**: run `/ultraplan` followed by your prompt

28* **Keyword**: include the word `ultraplan` anywhere in a normal prompt

29* **From a local plan**: when Claude finishes a local plan and shows the approval dialog, choose **No, refine with Ultraplan on Claude Code on the web** to send the draft to the cloud for further iteration

30 

31For example, to plan a service migration with the command:

32 

33```

34/ultraplan migrate the auth service from sessions to JWTs

35```

36 

37The command and keyword paths open a confirmation dialog before launching. The local plan path skips this dialog because that selection already serves as confirmation. If [Remote Control](/en/remote-control) is active, it disconnects when ultraplan starts because both features occupy the claude.ai/code interface and only one can be connected at a time.

38 

39After the cloud session launches, your CLI's prompt input shows a status indicator while the remote session works:

40 

41| Status | Meaning |

42| :----------------------------- | :----------------------------------------------------------------- |

43| `◇ ultraplan` | Claude is researching your codebase and drafting the plan |

44| `◇ ultraplan needs your input` | Claude has a clarifying question; open the session link to respond |

45| `◆ ultraplan ready` | The plan is ready to review in your browser |

46 

47Run `/tasks` and select the ultraplan entry to open a detail view with the session link, agent activity, and a **Stop ultraplan** action. Stopping archives the cloud session and clears the indicator; nothing is saved to your terminal.

48 

49## Review and revise the plan in your browser

50 

51When the status changes to `◆ ultraplan ready`, open the session link to view the plan on claude.ai. The plan appears in a dedicated review view:

52 

53* **Inline comments**: highlight any passage and leave a comment for Claude to address

54* **Emoji reactions**: react to a section to signal approval or concern without writing a full comment

55* **Outline sidebar**: jump between sections of the plan

56 

57When you ask Claude to address your comments, it revises the plan and presents an updated draft. You can iterate as many times as needed before choosing where to execute.

58 

59## Choose where to execute

60 

61When the plan looks right, you choose from the browser whether Claude implements it in the same cloud session or sends it back to your waiting terminal.

62 

63### Execute on the web

64 

65Select **Approve Claude's plan and start coding** in your browser to have Claude implement it in the same Claude Code on the web session. Your terminal shows a confirmation, the status indicator clears, and the work continues in the cloud. When the implementation finishes, [review the diff](/en/claude-code-on-the-web#review-changes-with-diff-view) and create a pull request from the web interface.

66 

67### Send the plan back to your terminal

68 

69Select **Approve plan and teleport back to terminal** in your browser to implement the plan locally with full access to your environment. This option appears when the session was launched from your CLI and the terminal is still polling. The web session is archived so it doesn't continue working in parallel.

70 

71Your terminal shows the plan in a dialog titled **Ultraplan approved** with three options:

72 

73* **Implement here**: inject the plan into your current conversation and continue from where you left off

74* **Start new session**: clear the current conversation and begin fresh with only the plan as context

75* **Cancel**: save the plan to a file without executing it; Claude prints the file path so you can return to it later

76 

77If you start a new session, Claude prints a `claude --resume` command at the top so you can return to your previous conversation later.

78 

79## Related resources

80 

81* [Claude Code on the web](/en/claude-code-on-the-web): the cloud infrastructure ultraplan runs on

82* [Plan mode](/en/permission-modes#analyze-before-you-edit-with-plan-mode): how planning works in a local session

83* [Remote Control](/en/remote-control): use the claude.ai/code interface with a session running on your own machine

vs-code.md +3 −3

Details

273### Extension settings273### Extension settings

274 274 

275| Setting | Default | Description |275| Setting | Default | Description |

276| --------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |276| --------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

277| `selectedModel` | `default` | Model for new conversations. Change per-session with `/model`. |277| `selectedModel` | `default` | Model for new conversations. Change per-session with `/model`. |

278| `useTerminal` | `false` | Launch Claude in terminal mode instead of graphical panel |278| `useTerminal` | `false` | Launch Claude in terminal mode instead of graphical panel |

279| `initialPermissionMode` | `default` | Controls approval prompts for new conversations: `default`, `plan`, `acceptEdits`, `auto`, or `bypassPermissions`. See [permission modes](/en/permission-modes). |279| `initialPermissionMode` | `default` | Controls approval prompts for new conversations: `default`, `plan`, `acceptEdits`, or `bypassPermissions`. See [permission modes](/en/permission-modes). |

280| `preferredLocation` | `panel` | Where Claude opens: `sidebar` (right) or `panel` (new tab) |280| `preferredLocation` | `panel` | Where Claude opens: `sidebar` (right) or `panel` (new tab) |

281| `autosave` | `true` | Auto-save files before Claude reads or writes them |281| `autosave` | `true` | Auto-save files before Claude reads or writes them |

282| `useCtrlEnterToSend` | `false` | Use Ctrl/Cmd+Enter instead of Enter to send prompts |282| `useCtrlEnterToSend` | `false` | Use Ctrl/Cmd+Enter instead of Enter to send prompts |


285| `respectGitIgnore` | `true` | Exclude .gitignore patterns from file searches |285| `respectGitIgnore` | `true` | Exclude .gitignore patterns from file searches |

286| `environmentVariables` | `[]` | Set environment variables for the Claude process. Use Claude Code settings instead for shared config. |286| `environmentVariables` | `[]` | Set environment variables for the Claude process. Use Claude Code settings instead for shared config. |

287| `disableLoginPrompt` | `false` | Skip authentication prompts (for third-party provider setups) |287| `disableLoginPrompt` | `false` | Skip authentication prompts (for third-party provider setups) |

288| `allowDangerouslySkipPermissions` | `false` | Adds [Auto](/en/permission-modes#eliminate-prompts-with-auto-mode) and Bypass permissions to the mode selector. Auto requires a Team, Enterprise, or API plan and Claude Sonnet 4.6 or Opus 4.6, so the option may remain unavailable even with this toggle on. Use Bypass permissions only in sandboxes with no internet access. |288| `allowDangerouslySkipPermissions` | `false` | Adds [Auto mode](/en/permission-modes#eliminate-prompts-with-auto-mode) and Bypass permissions to the mode selector. Auto mode has [plan, admin, model, and provider requirements](/en/permission-modes#eliminate-prompts-with-auto-mode), so it may remain unavailable even with this toggle on. Use Bypass permissions only in sandboxes with no internet access. |

289| `claudeProcessWrapper` | - | Executable path used to launch the Claude process |289| `claudeProcessWrapper` | - | Executable path used to launch the Claude process |

290 290 

291## VS Code extension vs. Claude Code CLI291## VS Code extension vs. Claude Code CLI

Details

21 21 

22Claude Code offers three ways to schedule recurring work:22Claude Code offers three ways to schedule recurring work:

23 23 

24| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop#schedule-recurring-tasks) | [`/loop`](/en/scheduled-tasks) |24| | [Cloud](/en/web-scheduled-tasks) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

25| :------------------------- | :------------------------------- | :---------------------------------------------- | :----------------------------- |25| :------------------------- | :------------------------------- | :------------------------------------- | :----------------------------- |

26| Runs on | Anthropic cloud | Your machine | Your machine |26| Runs on | Anthropic cloud | Your machine | Your machine |

27| Requires machine on | No | Yes | Yes |27| Requires machine on | No | Yes | Yes |

28| Requires open session | No | No | Yes |28| Requires open session | No | No | Yes |


42You can create a scheduled task from three places:42You can create a scheduled task from three places:

43 43 

44* **Web**: visit [claude.ai/code/scheduled](https://claude.ai/code/scheduled) and click **New scheduled task**44* **Web**: visit [claude.ai/code/scheduled](https://claude.ai/code/scheduled) and click **New scheduled task**

45* **Desktop app**: open the **Schedule** page, click **New task**, and choose **New remote task**. See [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks) for details.45* **Desktop app**: open the **Schedule** page, click **New task**, and choose **New remote task**. See [Desktop scheduled tasks](/en/desktop-scheduled-tasks) for details.

46* **CLI**: run `/schedule` in any session. Claude walks you through the setup conversationally. You can also pass a description directly, like `/schedule daily PR review at 9am`.46* **CLI**: run `/schedule` in any session. Claude walks you through the setup conversationally. You can also pass a description directly, like `/schedule daily PR review at 9am`.

47 47 

48The web and Desktop entry points open a form. The CLI collects the same information through a guided conversation.48The web and Desktop entry points open a form. The CLI collects the same information through a guided conversation.


147 147 

148## Related resources148## Related resources

149 149 

150* [Desktop scheduled tasks](/en/desktop#schedule-recurring-tasks): schedule tasks that run on your machine with access to local files. The Desktop app's **Schedule** page shows both local and remote tasks in the same grid.150* [Desktop scheduled tasks](/en/desktop-scheduled-tasks): schedule tasks that run on your machine with access to local files. The Desktop app's **Schedule** page shows both local and remote tasks in the same grid.

151* [`/loop` and CLI scheduled tasks](/en/scheduled-tasks): lightweight scheduling within a CLI session151* [`/loop` and CLI scheduled tasks](/en/scheduled-tasks): lightweight scheduling within a CLI session

152* [Cloud environment](/en/claude-code-on-the-web#cloud-environment): configure the runtime environment for cloud tasks152* [Cloud environment](/en/claude-code-on-the-web#cloud-environment): configure the runtime environment for cloud tasks

153* [MCP connectors](/en/mcp): connect external services like Slack, Linear, and Google Drive153* [MCP connectors](/en/mcp): connect external services like Slack, Linear, and Google Drive