Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · claude-code

One read of Claude Code CLIclaude-code-20261020T183702Z

212 pages moved out of 228 read.

Pages moved 212 significant first
Pages read 228 in this capture
Captured 18:37 UTC
Corpus hash f4a7dc09bf09 corpus-hash

What this read moved

176-200 of 212, page 8 of 9

This capture is too large to show at once. Changes 176-200 of 212 are below, significant first; the rest are on the following screens.

tools-reference Changed · +12 / -10 lines

from line 8
88 
99To add custom tools, connect an [MCP server](/docs/en/mcp). To extend Claude with reusable prompt-based workflows, write a [skill](/docs/en/skills), which runs through the existing `Skill` tool rather than adding a new tool entry.
1010 
11<Info>
12 In [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode), a classifier decides most permission prompts instead of you. The `Permission required` column shows whether the tool prompts in [Manual mode](/docs/en/permission-modes) for paths inside the working directory. File-access tools marked No, including `Read`, `Grep`, and `Glob`, still prompt for paths outside the [working directory and additional directories](/docs/en/permissions#working-directories). `Bash` is marked Yes but runs a built-in set of [read-only commands](/docs/en/permissions#read-only-commands) without prompting.
13</Info>
11> [!NOTE]
12>
13> In [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode), a classifier decides most permission prompts instead of you. The `Permission required` column shows whether the tool prompts in [Manual mode](/docs/en/permission-modes) for paths inside the working directory. File-access tools marked No, including `Read`, `Grep`, and `Glob`, still prompt for paths outside the [working directory and additional directories](/docs/en/permissions#working-directories). `Bash` is marked Yes but runs a built-in set of [read-only commands](/docs/en/permissions#read-only-commands) without prompting.
1414 
1515| Tool | Description | Permission required |
1616| :- | :- | :- |
from line 503
503503* **PDFs**: Claude reads short `.pdf` files whole. For PDFs longer than 10 pages, it reads in ranges with a `pages` parameter, such as `"1-5"`, up to 20 pages at a time. Page-range reads render pages with `pdftoppm` from poppler-utils, so install it with `brew install poppler` on macOS or `apt-get install poppler-utils` on Debian and Ubuntu. On Windows and other platforms, install a poppler build that puts `pdftoppm` on your `PATH`. Without it, a page-range read fails with `pdftoppm is not installed`.
504504* **Jupyter notebooks**: `.ipynb` files return all cells with their outputs, including code, markdown, and visualizations. A notebook whose cells come to more than 256 KB, or more than the [token limit](#large-files), returns an error instead. Claude Code refuses to read a notebook file over 100 MB; the error tells Claude how to read a portion of the notebook instead, such as a slice of cells, with a shell command.
505505 
506Read refuses an image file larger than 128 MB with an error that tells Claude to resize the image or export a smaller copy, then read that copy. If Claude stops at the error instead of doing so, see [File is too large to read as an image](/docs/en/errors#file-is-too-large-to-read-as-an-image).
507 
506508Read only reads files, not directories. Claude lists directory contents with a shell command such as `ls`.
507509 
508510Read refuses a file whose extension it treats as binary, such as `.xlsx`, `.parquet`, `.heic`, or `.zip`. Claude keeps working after a refusal: the error suggests a skill for that file type if one is available, or else a shell command or script that reads the format. If you [`@`-mention](/docs/en/common-workflows#reference-files-and-directories) a file that Read refuses, Claude receives the file's path but not its contents.
from line 556
554556 
555557Claude Code keeps your working directory in the local draft so it can find the transcript, and doesn't send the directory.
556558 
557In [organizations with Zero Data Retention](/docs/en/zero-data-retention#features-disabled-under-zdr), and in organizations with the [HIPAA configuration](/docs/en/hipaa-setup) applied, Claude Code leaves the tool out, as it does for `/feedback`. If a session in an organization with Zero Data Retention still offers the tool, drafts stay on your machine, and sending fails with `Feedback collection is not available for organizations with custom data retention policies.`
559In [organizations with Zero Data Retention](/docs/en/zero-data-retention#features-disabled-under-zdr), and in organizations with the [HIPAA configuration](/docs/en/hipaa-setup) applied, Claude Code leaves the SendFeedback tool out of your sessions. If a session in an organization with Zero Data Retention still offers the tool, drafts stay on your machine, and sending fails with `Feedback collection is not available for organizations with custom data retention policies.`
558560 
559561### Discard or keep a draft
560562 
from line 647
645647 
646648The search backend is not configurable. To search with a different provider, add an [MCP server](/docs/en/mcp) that exposes a search tool.
647649 
648<Note>
649 WebSearch is available on the Claude API, [Claude Platform on AWS](/docs/en/claude-platform-on-aws), and Microsoft Foundry. On Google Cloud's Agent Platform it works with Opus 4, Sonnet 4, Haiku 4.5, and later models. Amazon Bedrock doesn't expose the server-side web search tool.
650</Note>
650> [!NOTE]
651>
652> WebSearch is available on the Claude API, [Claude Platform on AWS](/docs/en/claude-platform-on-aws), and Microsoft Foundry. On Google Cloud's Agent Platform it works with Opus 4, Sonnet 4, Haiku 4.5, and later models. Amazon Bedrock doesn't expose the server-side web search tool.
651653 
652654### Session search limit
653655 
from line 689
687689 
688690Claude gives a conversational summary. For exact MCP tool names, run `/mcp`.
689691 
690<Note>
691 The [advisor tool](/docs/en/advisor) is a [server tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) that the API runs, rather than a tool that Claude Code implements. It has no name you can reference in permission rules or hook matchers.
692</Note>
692> [!NOTE]
693>
694> The [advisor tool](/docs/en/advisor) is a [server tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) that the API runs, rather than a tool that Claude Code implements. It has no name you can reference in permission rules or hook matchers.
693695 
694696## See also
695697 

troubleshoot-install Changed · +316 / -348 lines

### `Cask 'claude-code@latest' is not installed` ### `running scripts is disabled on this system` ### `claude.exe` missing after an update on Windows ### npm `ENOTEMPTY` error during update or reinstall

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 59
5959 
6060If your issue isn't listed, work through the diagnostic checks below to narrow down the cause.
6161 
62<Tip>
63 If you'd rather skip the terminal entirely, the [Claude Code Desktop app](/docs/en/desktop-quickstart) lets you install and use Claude Code through a graphical interface. Download it for [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) or [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) and start coding without any command-line setup. On Linux, install the app with apt by following the [Linux install instructions](/docs/en/desktop-linux).
64</Tip>
62> [!TIP]
63>
64> If you'd rather skip the terminal entirely, the [Claude Code Desktop app](/docs/en/desktop-quickstart) lets you install and use Claude Code through a graphical interface. Download it for [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) or [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) and start coding without any command-line setup. On Linux, install the app with apt by following the [Linux install instructions](/docs/en/desktop-linux).
6565 
6666## Run diagnostic checks
6767 
from line 69
6969 
7070The installer downloads from `downloads.claude.ai`. Verify you can reach it:
7171 
72<Tabs>
73 <Tab title="macOS/Linux">
74 ```bash theme={null}
75 curl -sI https://downloads.claude.ai/claude-code-releases/latest
76 ```
77 </Tab>
78 
79 <Tab title="Windows PowerShell">
80 ```powershell theme={null}
81 curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest
82 ```
83 
84 PowerShell aliases `curl` to `Invoke-WebRequest`, which rejects the `-sI` flags, so call `curl.exe` explicitly.
85 </Tab>
86</Tabs>
72**macOS/Linux**
73 
74```bash theme={null}
75curl -sI https://downloads.claude.ai/claude-code-releases/latest
76```
77 
78**Windows PowerShell**
79 
80```powershell theme={null}
81curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest
82```
83 
84PowerShell aliases `curl` to `Invoke-WebRequest`, which rejects the `-sI` flags, so call `curl.exe` explicitly.
8785 
8886You reached the server if the first line shows a `200` status. You see `HTTP/2 200` on macOS and Linux, and `HTTP/1.1 200 OK` from the `curl.exe` included with Windows. Other results point to the cause:
8987 
from line 98
10098 
10199This example sets both proxy variables, then runs the installer through your proxy:
102100 
103<Tabs>
104 <Tab title="macOS/Linux">
105 ```bash theme={null}
106 export HTTP_PROXY=http://proxy.example.com:8080
107 export HTTPS_PROXY=http://proxy.example.com:8080
108 curl -fsSL https://claude.ai/install.sh | bash
109 ```
110 </Tab>
111 
112 <Tab title="Windows PowerShell">
113 ```powershell theme={null}
114 $env:HTTP_PROXY = 'http://proxy.example.com:8080'
115 $env:HTTPS_PROXY = 'http://proxy.example.com:8080'
116 irm https://claude.ai/install.ps1 | iex
117 ```
118 </Tab>
119</Tabs>
101**macOS/Linux**
102 
103```bash theme={null}
104export HTTP_PROXY=http://proxy.example.com:8080
105export HTTPS_PROXY=http://proxy.example.com:8080
106curl -fsSL https://claude.ai/install.sh | bash
107```
108 
109**Windows PowerShell**
110 
111```powershell theme={null}
112$env:HTTP_PROXY = 'http://proxy.example.com:8080'
113$env:HTTPS_PROXY = 'http://proxy.example.com:8080'
114irm https://claude.ai/install.ps1 | iex
115```
120116 
121117### Verify your PATH
122118 
from line 120
124120 
125121The installer detects this case and reports it under `Setup notes:` in its output: `Native installation exists but ~/.local/bin is not in your PATH.` on macOS and Linux, or `Native installation exists but C:\Users\you\.local\bin is not in your PATH.` on Windows. It prints the fix with that note but doesn't change PATH itself.
126122 
127<Note>
128 The [VS Code extension](/docs/en/vs-code) does not place `claude` at this location. It bundles a private copy of the CLI inside the extension directory for its own chat panel and does not add it to PATH. If you have only installed the extension, `~/.local/bin/claude` will not exist. Run the [standalone install](/docs/en/setup) to use `claude` from a terminal, then continue below.
129</Note>
123> [!NOTE]
124>
125> The [VS Code extension](/docs/en/vs-code) does not place `claude` at this location. It bundles a private copy of the CLI inside the extension directory for its own chat panel and does not add it to PATH. If you have only installed the extension, `~/.local/bin/claude` will not exist. Run the [standalone install](/docs/en/setup) to use `claude` from a terminal, then continue below.
130126 
131127First check that the program is there at all, then check whether its folder is in your PATH. The PATH fix is permanent, so you apply it once. Pick your platform's tab and run its commands there: in your terminal on macOS and Linux, or in PowerShell or Command Prompt on Windows.
132128 
133<Tabs>
134 <Tab title="macOS/Linux">
135 Check that the installer put the program in place:
136 
137 ```bash theme={null}
138 ls -la ~/.local/bin/claude
139 ```
140 
141 * **`No such file or directory`**: there's no native install. If you haven't installed Claude Code another way, such as with npm, Homebrew, or a Linux package manager, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
142 * **A listing for the file**: the program is there. Check your PATH next.
143 
144 List your PATH entries and filter for the install folder:
145 
146 ```bash theme={null}
147 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"
148 ```
149 
150 If this prints `/Users/you/.local/bin` or `/home/you/.local/bin`, the directory is in your PATH and you can skip to [Check for conflicting installations](#check-for-conflicting-installations). If there's no output, add it to your shell configuration with the two commands for your shell. The `echo` command saves the setting for every new terminal, and `source` applies it to the window you're in. The `echo` command prints nothing when it succeeds.
151 
152 For Zsh, the default on macOS:
153 
154 ```bash theme={null}
155 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
156 source ~/.zshrc
157 ```
158 
159 For Bash on Linux, where it's the default on most distributions:
160 
161 ```bash theme={null}
162 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
163 source ~/.bashrc
164 ```
165 
166 For Bash on macOS, add the line to `~/.bash_profile` instead. Terminal on macOS starts Bash as a login shell, which ignores `~/.bashrc` and reads only the first of `~/.bash_profile`, `~/.bash_login`, or `~/.profile` that exists. If you already have a `~/.bash_login` or `~/.profile` and no `~/.bash_profile`, put the line in that file rather than creating `~/.bash_profile`:
167 
168 ```bash theme={null}
169 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
170 source ~/.bash_profile
171 ```
172 
173 Alternatively, close and reopen your terminal.
174 
175 If the `echo` command prints `permission denied`, see [`permission denied` when adding to your PATH](#permission-denied-when-adding-to-your-path).
176 
177 For other shells such as fish or Nushell, add `~/.local/bin` to your PATH using your shell's own configuration syntax, then restart your terminal.
178 
179 Verify the fix worked:
180 
181 ```bash theme={null}
182 claude --version
183 ```
184 
185 If `claude` is still not found, check these causes:
186 
187 * **The terminal predates the change**: a window that was already open keeps its old PATH, and a terminal inside an editor takes its PATH from the editor. Open a new window, or quit and reopen the editor.
188 * **The line wasn't saved**: run `grep -n '.local/bin' ~/.zshrc`, using your shell's file name. It prints the line with its line number when the line is there. If it prints nothing, run the two PATH commands again.
189 * **The line went to another shell's file**: run `echo $0` to see your shell, then run the two PATH commands for that shell.
190 </Tab>
191 
192 <Tab title="Windows PowerShell">
193 Check that the installer put the program in place:
194 
195 ```powershell theme={null}
196 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
197 ```
198 
199 * **`False`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
200 * **`True`**: the program is there. Check your PATH next.
201 
202 List your PATH entries and filter for the install folder:
203 
204 ```powershell theme={null}
205 $env:PATH -split ';' | Select-String '\.local\\bin'
206 ```
207 
208 If this prints `C:\Users\you\.local\bin`, the directory is in your PATH and you can skip to [Check for conflicting installations](#check-for-conflicting-installations). If there's no output, add the install directory to your User PATH:
209 
210 ```powershell theme={null}
211 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
212 [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
213 ```
214 
215 Restart your terminal for the change to take effect.
216 
217 Verify the fix worked:
218 
219 ```powershell theme={null}
220 claude --version
221 ```
222 
223 If `claude` is still not found in a new terminal, check these causes:
224 
225 * **The terminal runs inside an editor**: it takes its PATH from the editor, so quit and reopen the editor.
226 * **The change wasn't saved**: run `[Environment]::GetEnvironmentVariable('PATH', 'User')` and look for `.local\bin` in the PATH it prints. If it's missing, run the two commands again.
227 </Tab>
228 
229 <Tab title="Windows CMD">
230 Check that the installer put the program in place:
231 
232 ```batch theme={null}
233 dir "%USERPROFILE%\.local\bin\claude.exe"
234 ```
235 
236 * **`File Not Found` or `The system cannot find the path specified.`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
237 * **A listing for `claude.exe`**: the program is there. Check your PATH next.
238 
239 List your PATH entries and filter for the install folder:
240 
241 ```batch theme={null}
242 echo %PATH% | findstr /i "local\bin"
243 ```
244 
245 If there's no output, open System Settings, go to Environment Variables, and add `%USERPROFILE%\.local\bin` to your User PATH variable. Restart your terminal.
246 
247 Verify the fix worked:
248 
249 ```batch theme={null}
250 claude --version
251 ```
252 
253 If `claude` is still not found in a new terminal, a terminal inside an editor takes its PATH from the editor, so quit and reopen the editor too.
254 </Tab>
255</Tabs>
129**macOS/Linux**
130 
131Check that the installer put the program in place:
132 
133```bash theme={null}
134ls -la ~/.local/bin/claude
135```
136 
137* **`No such file or directory`**: there's no native install. If you haven't installed Claude Code another way, such as with npm, Homebrew, or a Linux package manager, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
138* **A listing for the file**: the program is there. Check your PATH next.
139 
140List your PATH entries and filter for the install folder:
141 
142```bash theme={null}
143echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"
144```
145 
146If this prints `/Users/you/.local/bin` or `/home/you/.local/bin`, the directory is in your PATH and you can skip to [Check for conflicting installations](#check-for-conflicting-installations). If there's no output, add it to your shell configuration with the two commands for your shell. The `echo` command saves the setting for every new terminal, and `source` applies it to the window you're in. The `echo` command prints nothing when it succeeds.
147 
148For Zsh, the default on macOS:
149 
150```bash theme={null}
151echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
152source ~/.zshrc
153```
154 
155For Bash on Linux, where it's the default on most distributions:
156 
157```bash theme={null}
158echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
159source ~/.bashrc
160```
161 
162For Bash on macOS, add the line to `~/.bash_profile` instead. Terminal on macOS starts Bash as a login shell, which ignores `~/.bashrc` and reads only the first of `~/.bash_profile`, `~/.bash_login`, or `~/.profile` that exists. If you already have a `~/.bash_login` or `~/.profile` and no `~/.bash_profile`, put the line in that file rather than creating `~/.bash_profile`:
163 
164```bash theme={null}
165echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
166source ~/.bash_profile
167```
168 
169Alternatively, close and reopen your terminal.
170 
171If the `echo` command prints `permission denied`, see [`permission denied` when adding to your PATH](#permission-denied-when-adding-to-your-path).
172 
173For other shells such as fish or Nushell, add `~/.local/bin` to your PATH using your shell's own configuration syntax, then restart your terminal.
174 
175Verify the fix worked:
176 
177```bash theme={null}
178claude --version
179```
180 
181If `claude` is still not found, check these causes:
182 
183* **The terminal predates the change**: a window that was already open keeps its old PATH, and a terminal inside an editor takes its PATH from the editor. Open a new window, or quit and reopen the editor.
184* **The line wasn't saved**: run `grep -n '.local/bin' ~/.zshrc`, using your shell's file name. It prints the line with its line number when the line is there. If it prints nothing, run the two PATH commands again.
185* **The line went to another shell's file**: run `echo $0` to see your shell, then run the two PATH commands for that shell.
186 
187**Windows PowerShell**
188 
189Check that the installer put the program in place:
190 
191```powershell theme={null}
192Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
193```
194 
195* **`False`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
196* **`True`**: the program is there. Check your PATH next.
197 
198List your PATH entries and filter for the install folder:
199 
200```powershell theme={null}
201$env:PATH -split ';' | Select-String '\.local\\bin'
202```
203 
204If this prints `C:\Users\you\.local\bin`, the directory is in your PATH and you can skip to [Check for conflicting installations](#check-for-conflicting-installations). If there's no output, add the install directory to your User PATH:
205 
206```powershell theme={null}
207$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
208[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
209```
210 
211Restart your terminal for the change to take effect.
212 
213Verify the fix worked:
214 
215```powershell theme={null}
216claude --version
217```
218 
219If `claude` is still not found in a new terminal, check these causes:
220 
221* **The terminal runs inside an editor**: it takes its PATH from the editor, so quit and reopen the editor.
222* **The change wasn't saved**: run `[Environment]::GetEnvironmentVariable('PATH', 'User')` and look for `.local\bin` in the PATH it prints. If it's missing, run the two commands again.
223 
224**Windows CMD**
225 
226Check that the installer put the program in place:
227 
228```batch theme={null}
229dir "%USERPROFILE%\.local\bin\claude.exe"
230```
231 
232* **`File Not Found` or `The system cannot find the path specified.`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code). If you installed it another way, see [Check for conflicting installations](#check-for-conflicting-installations).
233* **A listing for `claude.exe`**: the program is there. Check your PATH next.
234 
235List your PATH entries and filter for the install folder:
236 
237```batch theme={null}
238echo %PATH% | findstr /i "local\bin"
239```
240 
241If there's no output, open System Settings, go to Environment Variables, and add `%USERPROFILE%\.local\bin` to your User PATH variable. Restart your terminal.
242 
243Verify the fix worked:
244 
245```batch theme={null}
246claude --version
247```
248 
249If `claude` is still not found in a new terminal, a terminal inside an editor takes its PATH from the editor, so quit and reopen the editor too.
256250 
257251### Check for conflicting installations
258252 
259253Multiple Claude Code installations can cause version mismatches or unexpected behavior. Check what's installed:
260254 
261<Tabs>
262 <Tab title="macOS/Linux">
263 List all `claude` binaries found in your PATH:
264 
265 ```bash theme={null}
266 which -a claude
267 ```
268 
269 If this prints `claude not found`, a `no claude in` line, or nothing, no `claude` is on your PATH. The next checks show whether one is installed at all.
270 
271 Check the three locations a `claude` binary can come from. `~/.local/bin/claude` is the native installer, `~/.claude/local/` is a legacy local npm install created by older versions of Claude Code, and the npm global list shows a `-g` install:
272 
273 ```bash theme={null}
274 ls -la ~/.local/bin/claude
275 ```
276 
277 A native install shows a symlink into `~/.local/share/claude/versions/`. A script or a symlink you created yourself at this path is a custom launcher, which [auto-update leaves in place](/docs/en/setup#auto-updates).
278 
279 If either `ls` command prints `No such file or directory`, that's not an error. It means nothing is installed at that location, so move on to the next check.
280 
281 ```bash theme={null}
282 ls -la ~/.claude/local/
283 ```
284 
285 ```bash theme={null}
286 npm -g ls @anthropic-ai/claude-code 2>/dev/null
287 ```
288 
289 If `ls -la ~/.local/bin/claude` printed `No such file or directory`, there's no native install. If you haven't installed Claude Code another way, such as with npm, Homebrew, or a Linux package manager, [install Claude Code](/docs/en/setup#install-claude-code). If `~/.local/bin/claude` exists but `which -a claude` didn't list it, the folder isn't in your PATH: see [Verify your PATH](#verify-your-path).
290 </Tab>
291 
292 <Tab title="Windows PowerShell">
293 List all `claude` binaries found in your PATH:
294 
295 ```powershell theme={null}
296 where.exe claude
297 ```
298 
299 If this prints `INFO: Could not find files for the given pattern(s).`, no `claude` is on your PATH.
300 
301 Check whether the native installer placed a binary:
302 
303 ```powershell theme={null}
304 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
305 ```
306 
307 * **`True`**: the native install is there. If `where.exe` found nothing, its folder isn't in your PATH: see [Verify your PATH](#verify-your-path).
308 * **`False`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code).
309 </Tab>
310</Tabs>
255**macOS/Linux**
256 
257List all `claude` binaries found in your PATH:
258 
259```bash theme={null}
260which -a claude
261```
262 
263If this prints `claude not found`, a `no claude in` line, or nothing, no `claude` is on your PATH. The next checks show whether one is installed at all.
264 
265Check the three locations a `claude` binary can come from. `~/.local/bin/claude` is the native installer, `~/.claude/local/` is a legacy local npm install created by older versions of Claude Code, and the npm global list shows a `-g` install:
266 
267```bash theme={null}
268ls -la ~/.local/bin/claude
269```
270 
271A native install shows a symlink into `~/.local/share/claude/versions/`. A script or a symlink you created yourself at this path is a custom launcher, which [auto-update leaves in place](/docs/en/setup#auto-updates).
272 
273If either `ls` command prints `No such file or directory`, that's not an error. It means nothing is installed at that location, so move on to the next check.
274 
275```bash theme={null}
276ls -la ~/.claude/local/
277```
278 
279```bash theme={null}
280npm -g ls @anthropic-ai/claude-code 2>/dev/null
281```
282 
283If `ls -la ~/.local/bin/claude` printed `No such file or directory`, there's no native install. If you haven't installed Claude Code another way, such as with npm, Homebrew, or a Linux package manager, [install Claude Code](/docs/en/setup#install-claude-code). If `~/.local/bin/claude` exists but `which -a claude` didn't list it, the folder isn't in your PATH: see [Verify your PATH](#verify-your-path).
284 
285**Windows PowerShell**
286 
287List all `claude` binaries found in your PATH:
288 
289```powershell theme={null}
290where.exe claude
291```
292 
293If this prints `INFO: Could not find files for the given pattern(s).`, no `claude` is on your PATH.
294 
295Check whether the native installer placed a binary:
296 
297```powershell theme={null}
298Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
299```
300 
301* **`True`**: the native install is there. If `where.exe` found nothing, its folder isn't in your PATH: see [Verify your PATH](#verify-your-path).
302* **`False`**: there's no native install. If you haven't installed Claude Code another way, such as with npm or WinGet, [install Claude Code](/docs/en/setup#install-claude-code).
311303 
312304If you find multiple installations, keep only one. The native install at `~/.local/bin/claude` on macOS/Linux or `%USERPROFILE%\.local\bin\claude.exe` on Windows is recommended. Remove the extras:
313305 
from line 311
319311 
320312Remove the legacy local npm install:
321313 
322<Tabs>
323 <Tab title="macOS/Linux">
324 ```bash theme={null}
325 rm -rf ~/.claude/local
326 ```
327 </Tab>
328 
329 <Tab title="Windows PowerShell">
330 ```powershell theme={null}
331 Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"
332 ```
333 </Tab>
334</Tabs>
314**macOS/Linux**
315 
316```bash theme={null}
317rm -rf ~/.claude/local
318```
319 
320**Windows PowerShell**
321 
322```powershell theme={null}
323Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"
324```
335325 
336326Remove a Homebrew install on macOS. If you installed the `claude-code@latest` cask, substitute that name:
337327 
from line 370
380370 
381371Confirm the binary exists and is executable:
382372 
383<Tabs>
384 <Tab title="macOS/Linux">
385 ```bash theme={null}
386 ls -la "$(command -v claude)"
387 ```
388 </Tab>
389 
390 <Tab title="Windows PowerShell">
391 ```powershell theme={null}
392 Get-Command claude | Select-Object Source
393 ```
394 </Tab>
395</Tabs>
373**macOS/Linux**
374 
375```bash theme={null}
376ls -la "$(command -v claude)"
377```
378 
379**Windows PowerShell**
380 
381```powershell theme={null}
382Get-Command claude | Select-Object Source
383```
396384 
397385On Linux, check for missing shared libraries. If `ldd` shows missing libraries, you may need to install system packages. On Alpine Linux and other musl-based distributions, see [Alpine Linux setup](/docs/en/setup#alpine-linux-and-musl-based-distributions).
398386 
from line 518
530518 
531519If Homebrew installs an older Claude Code version than you expect, the same stale index is usually the cause. The `claude-code` cask tracks the stable channel and is typically about one week behind the latest release; for the newest version run `brew install --cask claude-code@latest` instead. See [Configure release channel](/docs/en/setup#configure-release-channel) for the difference between the two casks.
532520 
533<h3 id="cask-is-not-installed">
534 `Cask 'claude-code@latest' is not installed`
535</h3>
521### `Cask 'claude-code@latest' is not installed`
536522 
537523Homebrew offers two casks, `claude-code` and `claude-code@latest`. Running `brew upgrade --cask claude-code@latest` when that cask isn't the one installed prints `Error: Cask 'claude-code@latest' is not installed.` To see which cask you have, run this in your terminal:
538524 
from line 562
576562 
5775633. **Check for proxy or firewall interference**: corporate proxies that perform TLS inspection can cause these errors, including `unable to get local issuer certificate` and `SELF_SIGNED_CERT_IN_CHAIN`. For the install step, make the install download trust your corporate proxy's CA:
578564 
579 <Tabs>
580 <Tab title="macOS/Linux">
581 ```bash theme={null}
582 curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash
583 ```
584 </Tab>
585 
586 <Tab title="Windows PowerShell">
587 The PowerShell installer downloads through .NET, which validates TLS against the Windows certificate store. Ask your IT team to add the proxy's CA certificate to the Windows store if it isn't already there, then run the installer:
588 
589 ```powershell theme={null}
590 irm https://claude.ai/install.ps1 | iex
591 ```
592 </Tab>
593 </Tabs>
565 **macOS/Linux**
566 
567 ```bash theme={null}
568 curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash
569 ```
570 
571 **Windows PowerShell**
572 
573 The PowerShell installer downloads through .NET, which validates TLS against the Windows certificate store. Ask your IT team to add the proxy's CA certificate to the Windows store if it isn't already there, then run the installer:
574 
575 ```powershell theme={null}
576 irm https://claude.ai/install.ps1 | iex
577 ```
594578 
595579 For Claude Code itself once installed, set `NODE_EXTRA_CA_CERTS` so API requests trust the same bundle:
596580 
597 <Tabs>
598 <Tab title="macOS/Linux">
599 ```bash theme={null}
600 export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
601 ```
602 </Tab>
603 
604 <Tab title="Windows PowerShell">
605 ```powershell theme={null}
606 $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'
607 ```
608 </Tab>
609 </Tabs>
581 **macOS/Linux**
582 
583 ```bash theme={null}
584 export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
585 ```
586 
587 **Windows PowerShell**
588 
589 ```powershell theme={null}
590 $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'
591 ```
610592 
611593 Ask your IT team for the certificate file if you don't have it. You can also try on a direct connection to confirm the proxy is the cause.
612594 
from line 674
692674 
693675Whichever installer you use, confirm it worked: open a new terminal and run `claude --version`, which prints a version number such as `2.1.211 (Claude Code)`.
694676 
695<h3 id="running-scripts-is-disabled-on-this-system">
696 `running scripts is disabled on this system`
697</h3>
677### `running scripts is disabled on this system`
698678 
699679Installing or running Claude Code through npm on Windows can fail with a `SecurityError`:
700680 
from line 706
726706irm https://claude.ai/install.ps1 | iex
727707```
728708 
729<h3 id="claude-exe-missing-after-an-update-on-windows">
730 `claude.exe` missing after an update on Windows
731</h3>
709### `claude.exe` missing after an update on Windows
732710 
733711If your terminal reports `'claude' is not recognized` right after Claude Code updated on Windows, check whether `%USERPROFILE%\.local\bin` still contains `claude.exe`. If that directory isn't on your PATH at all, see [Verify your PATH](#verify-your-path) instead. To update on Windows, Claude Code renames the existing `claude.exe` aside to a backup and moves the new version into its place. If moving the new version into place fails and Claude Code can't rename the backup back either, the directory keeps the backup but has no `claude.exe`.
734712 
from line 800
822800 
823801In every other configuration, rerunning the installer gets past this error, because the script runs the latest release's `install` command even when you ask it to install an older version. Rerun the command for your platform:
824802 
825<Tabs>
826 <Tab title="macOS/Linux">
827 ```bash theme={null}
828 curl -fsSL https://claude.ai/install.sh | bash
829 ```
830 </Tab>
831 
832 <Tab title="Windows PowerShell">
833 ```powershell theme={null}
834 irm https://claude.ai/install.ps1 | iex
835 ```
836 </Tab>
837</Tabs>
803**macOS/Linux**
804 
805```bash theme={null}
806curl -fsSL https://claude.ai/install.sh | bash
807```
808 
809**Windows PowerShell**
810 
811```powershell theme={null}
812irm https://claude.ai/install.ps1 | iex
813```
838814 
839815`claude --version` prints the version the rerun installed.
840816 
from line 994
1018994export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"
1019995```
1020996 
1021<Warning>
1022 Avoid disabling Windows PATH importing via `appendWindowsPath = false` as this breaks the ability to call Windows executables from WSL. Similarly, avoid uninstalling Node.js from Windows if you use it for Windows development.
1023</Warning>
997> [!WARNING]
998>
999> Avoid disabling Windows PATH importing via `appendWindowsPath = false` as this breaks the ability to call Windows executables from WSL. Similarly, avoid uninstalling Node.js from Windows if you use it for Windows development.
10241000 
10251001### Permission errors during installation
10261002 
from line 1034
10581034* **Unsupported platform.** Prebuilt binaries are published for `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64`, and `win32-arm64`. Claude Code does not ship a binary for other platforms; see the [system requirements](/docs/en/setup#system-requirements). On FreeBSD, the installer reports the platform as unsupported. Before v2.1.205, it treated FreeBSD as Linux and downloaded a binary that couldn't run.
10591035* **Corporate npm mirror is missing the platform packages.** Ensure your registry mirrors all eight `@anthropic-ai/claude-code-*` platform packages in addition to the meta package.
10601036 
1061<h3 id="npm-enotempty-during-update-or-reinstall">
1062 npm `ENOTEMPTY` error during update or reinstall
1063</h3>
1037### npm `ENOTEMPTY` error during update or reinstall
10641038 
10651039When you run `npm install -g @anthropic-ai/claude-code` over an existing installation, npm can fail while moving the old package directory aside:
10661040 
from line 1049
10751049 
10761050The `npm error path` line names the directory npm couldn't move. Delete that directory and any leftover `.claude-code-*` directories next to it, which earlier interrupted runs can leave behind. The commands below find your global package directory with `npm root -g`; if the directory the `npm error path` line names is not under the directory `npm root -g` prints, for example because you switched Node versions with nvm, delete the directories the error names instead:
10771051 
1078<Tabs>
1079 <Tab title="macOS/Linux">
1080 ```bash theme={null}
1081 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"
1082 ```
1083 
1084 Then remove any leftover temp directories. If Zsh prints `no matches found`, there were none to remove:
1085 
1086 ```bash theme={null}
1087 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*
1088 ```
1089 </Tab>
1090 
1091 <Tab title="Windows PowerShell">
1092 ```powershell theme={null}
1093 Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*"
1094 ```
1095 </Tab>
1096</Tabs>
1052**macOS/Linux**
1053 
1054```bash theme={null}
1055rm -rf "$(npm root -g)/@anthropic-ai/claude-code"
1056```
1057 
1058Then remove any leftover temp directories. If Zsh prints `no matches found`, there were none to remove:
1059 
1060```bash theme={null}
1061rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*
1062```
1063 
1064**Windows PowerShell**
1065 
1066```powershell theme={null}
1067Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*"
1068```
10971069 
10981070Then reinstall:
10991071 
from line 1124
11521124 
11531125To use your subscription instead, unset the environment variable and remove it from your shell profile:
11541126 
1155<Tabs>
1156 <Tab title="macOS/Linux">
1157 ```bash theme={null}
1158 unset ANTHROPIC_API_KEY
1159 claude
1160 ```
1161 </Tab>
1162 
1163 <Tab title="Windows PowerShell">
1164 ```powershell theme={null}
1165 Remove-Item Env:ANTHROPIC_API_KEY
1166 claude
1167 ```
1168 </Tab>
1169</Tabs>
1127**macOS/Linux**
1128 
1129```bash theme={null}
1130unset ANTHROPIC_API_KEY
1131claude
1132```
1133 
1134**Windows PowerShell**
1135 
1136```powershell theme={null}
1137Remove-Item Env:ANTHROPIC_API_KEY
1138claude
1139```
11701140 
11711141Check `~/.zshrc`, `~/.bashrc`, or `~/.profile` for `export ANTHROPIC_API_KEY=...` lines and remove them to make the change permanent. On Windows, check your PowerShell profile at `$PROFILE` and your User environment variables for `ANTHROPIC_API_KEY`. Run `/status` inside Claude Code to confirm which authentication method is active.
11721142 
from line 1175
12051175 
12061176To make the Keychain writable again and move your login back into the encrypted Keychain:
12071177 
1208<Steps>
1209 <Step title="Check Keychain access">
1210 Run `claude doctor` to check Keychain access. When the Keychain rejects writes, the report lists a warning that starts with `macOS Keychain is not writable`, followed by a suggested fix. When the report lists no Keychain warning, the Keychain is writable and you can skip to the last step.
1211 </Step>
1212 
1213 <Step title="Unlock the Keychain">
1214 ```bash theme={null}
1215 security unlock-keychain ~/Library/Keychains/login.keychain-db
1216 ```
1217 
1218 Enter your Keychain password when the command asks for it, then run `claude doctor` again. When the unlock worked, the report no longer lists the Keychain warning.
1219 </Step>
1220 
1221 <Step title="Resync the Keychain password if unlocking doesn't help">
1222 Open Keychain Access, select the `login` keychain, and choose **Edit > Change Password for Keychain "login"** to resync it with your account password. Then run `claude doctor` again. Go on to the next step once the report no longer lists the Keychain warning.
1223 </Step>
1224 
1225 <Step title="Log out and back in">
1226 Once the Keychain is writable again, Claude Code moves the credentials back the next time it writes a credential. To force it now, run `/logout` and then `/login`. Logging out removes all stored credentials, including the plaintext file's contents, saved MCP server logins, and plugin sensitive values, so expect to re-authorize MCP servers and re-enter plugin secrets afterwards. Logging in again stores your login in the Keychain.
1227 </Step>
1228</Steps>
1178**1. Check Keychain access**
1179 
1180Run `claude doctor` to check Keychain access. When the Keychain rejects writes, the report lists a warning that starts with `macOS Keychain is not writable`, followed by a suggested fix. When the report lists no Keychain warning, the Keychain is writable and you can skip to the last step.
1181 
1182**2. Unlock the Keychain**
1183 
1184```bash theme={null}
1185security unlock-keychain ~/Library/Keychains/login.keychain-db
1186```
1187 
1188Enter your Keychain password when the command asks for it, then run `claude doctor` again. When the unlock worked, the report no longer lists the Keychain warning.
1189 
1190**3. Resync the Keychain password if unlocking doesn't help**
1191 
1192Open Keychain Access, select the `login` keychain, and choose **Edit > Change Password for Keychain "login"** to resync it with your account password. Then run `claude doctor` again. Go on to the next step once the report no longer lists the Keychain warning.
1193 
1194**4. Log out and back in**
1195 
1196Once the Keychain is writable again, Claude Code moves the credentials back the next time it writes a credential. To force it now, run `/logout` and then `/login`. Logging out removes all stored credentials, including the plaintext file's contents, saved MCP server logins, and plugin sensitive values, so expect to re-authorize MCP servers and re-enter plugin secrets afterwards. Logging in again stores your login in the Keychain.
12291197 
12301198### Bedrock, Agent Platform, or Foundry credentials not loading
12311199 
12321200 

troubleshooting Changed · +49 / -39 lines

### Stray `>0q` at startup or `>4m` after exit

from line 41
4141 
4242If memory usage stays high after these steps, run `/heapdump` to write two files to `~/Desktop`: a JavaScript heap snapshot named `<session-id>.heapsnapshot` and a memory breakdown named `<session-id>-diagnostics.json`. Claude Code [hides the command from the command menu](/docs/en/commands#how-the-command-menu-matches-what-you-type); type it in full. On Linux without a Desktop folder, the files are written to your home directory.
4343 
44<Warning>
45 The `.heapsnapshot` file contains every string in the process, including your full conversation and credentials. Don't attach it to a public issue or share it.
46</Warning>
44> [!WARNING]
45>
46> The `.heapsnapshot` file contains every string in the process, including your full conversation and credentials. Don't attach it to a public issue or share it.
4747 
4848The command also prints a summary in the conversation, showing the process's total memory, how much of it is in the JS heap, and how much sits outside the heap. The summary also lists any leak indicators, such as a high memory growth rate or an unusually high number of open handles. The summary says whether most memory is in the JS heap, which the snapshot captures, or in native memory, which it doesn't.
4949 
from line 87
8787 
8888If characters render as boxes, smears, or the wrong glyphs when running Claude Code in the VS Code, Cursor, or Devin Desktop integrated terminal, the terminal's GPU renderer is likely the cause. Run `/terminal-setup` inside Claude Code to set `terminal.integrated.gpuAcceleration` to `"off"`, or set it manually in your editor settings and reload the window. See [Terminal configuration](/docs/en/terminal-config) for the other settings `/terminal-setup` writes.
8989 
90### Stray `>0q` at startup or `>4m` after exit
91 
92These characters, printed by terminals built on a VTE library older than 0.53, are the ends of two Claude Code control sequences. To stop the text, [update Claude Code](/docs/en/setup#update-claude-code) to v2.1.301 or later, which skips both sequences when it identifies such a terminal.
93 
94If the text remains, print the VTE version from the terminal's shell:
95 
96```bash theme={null}
97echo $VTE_VERSION
98```
99 
100On a VTE-based terminal, a result below `5300` means a library older than 0.53: update or replace the terminal to get VTE 0.53 or later. Otherwise, see [Get more help](#get-more-help).
101 
90102### Mouse wheel scrolls one line at a time in fullscreen rendering
91103 
92104In [fullscreen rendering](/docs/en/fullscreen), Claude Code scrolls the conversation itself rather than leaving it to your terminal. If each wheel notch moves fewer lines than you want, run `/scroll-speed` to raise the number of lines per notch and save it, or set the `CLAUDE_CODE_SCROLL_SPEED` environment variable, except in the JetBrains IDE terminal, where Claude Code applies its own scroll handling and neither takes effect. See [Mouse wheel scrolling](/docs/en/fullscreen#mouse-wheel-scrolling) for the values each accepts.
from line 128
116128 
117129If the Search tool, `@file` mentions, custom agents, or custom skills aren't finding files, the bundled `ripgrep` binary may not run on your system. Install your platform's `ripgrep` package and tell Claude Code to use it instead:
118130 
119<Tabs>
120 <Tab title="macOS">
121 ```bash theme={null}
122 brew install ripgrep
123 ```
124 </Tab>
131**macOS**
125132 
126 <Tab title="Ubuntu/Debian">
127 ```bash theme={null}
128 sudo apt install ripgrep
129 ```
130 </Tab>
133```bash theme={null}
134brew install ripgrep
135```
131136 
132 <Tab title="Alpine">
133 ```bash theme={null}
134 apk add ripgrep
135 ```
137**Ubuntu/Debian**
136138 
137 `ripgrep` is in Alpine's community repository. If `apk` reports that the package is missing, see [Alpine Linux setup](/docs/en/setup#alpine-linux-and-musl-based-distributions).
138 </Tab>
139```bash theme={null}
140sudo apt install ripgrep
141```
139142 
140 <Tab title="Arch">
141 ```bash theme={null}
142 pacman -S ripgrep
143 ```
144 </Tab>
143**Alpine**
145144 
146 <Tab title="Windows">
147 ```powershell theme={null}
148 winget install BurntSushi.ripgrep.MSVC
149 ```
150 </Tab>
151</Tabs>
145```bash theme={null}
146apk add ripgrep
147```
152148 
149`ripgrep` is in Alpine's community repository. If `apk` reports that the package is missing, see [Alpine Linux setup](/docs/en/setup#alpine-linux-and-musl-based-distributions).
150 
151**Arch**
152 
153```bash theme={null}
154pacman -S ripgrep
155```
156 
157**Windows**
158 
159```powershell theme={null}
160winget install BurntSushi.ripgrep.MSVC
161```
162 
153163Then set `USE_BUILTIN_RIPGREP` to `0`, either in your shell [environment](/docs/en/env-vars) or in the `env` block of your [`settings.json`](/docs/en/settings-reference#all-settings):
154164 
155165```json theme={null}
from line 176
166176 
167177Disk read performance penalties when [working across file systems on WSL](https://learn.microsoft.com/en-us/windows/wsl/filesystems) may result in fewer-than-expected matches when using Claude Code on WSL. Search still functions, but returns fewer results than on a native filesystem.
168178 
169<Note>
170 `claude doctor` shows Search as OK in this case.
171</Note>
179> [!NOTE]
180>
181> `claude doctor` shows Search as OK in this case.
172182 
173183**Solutions:**
174184 

ultrareview Changed · +6 / -6 lines

from line 2
22 
33> Run a deep, multi-agent code review in the cloud with /code-review ultra to find and verify bugs before you merge.
44 
5<Note>
6 Ultrareview is a research preview feature. The feature, pricing, and availability may change based on feedback. The command is `/code-review ultra`. When ultrareview is available to your account, `/ultrareview` is an alias.
7</Note>
5> [!NOTE]
6>
7> Ultrareview is a research preview feature. The feature, pricing, and availability may change based on feedback. The command is `/code-review ultra`. When ultrareview is available to your account, `/ultrareview` is an alias.
88 
99Ultrareview is a deep code review that runs as a [cloud session](/docs/en/claude-code-on-the-web) on Anthropic's infrastructure. When you run `/code-review ultra`, Claude Code launches a fleet of reviewer agents in a cloud sandbox to find bugs in your branch or pull request.
1010 
from line 91
9191 
9292Claude Code treats your text as a note only when it has more than one word and isn't a branch name or PR reference. It reads a single word as a branch name or PR reference, so a mistyped branch name gets the closest-branch error from [Review against a different base](#review-against-a-different-base) instead of launching with a note. If your text combines a PR reference with other words, such as `check PR 123 again`, Claude Code doesn't launch either; it asks you to rerun with the PR number alone to review that PR, or without the reference to review your current branch.
9393 
94<Tip>
95 If your repository is too large to bundle, Claude Code prompts you to use PR mode instead. For a repository on `github.com`, push your branch and open a draft PR, then run `/code-review ultra <PR-number>`.
96</Tip>
94> [!TIP]
95>
96> If your repository is too large to bundle, Claude Code prompts you to use PR mode instead. For a repository on `github.com`, push your branch and open a draft PR, then run `/code-review ultra <PR-number>`.
9797 
9898### Diff limits and fallbacks
9999 

voice-dictation Changed · +42 / -44 lines

from line 63
6363 
6464Holding or tapping `Space` starts dictation only where the keypress would otherwise type into the prompt. In the [transcript viewer](/docs/en/interactive-mode#transcript-viewer), `Space` pages through the conversation, and in [vim mode](/docs/en/interactive-mode#vim-editor-mode) outside INSERT it is a command. A [rebound modifier combination](#rebind-the-dictation-key) like `meta+k` never types text, so it starts dictation from those places too.
6565 
66<Tip>
67 To skip the warmup, switch to [tap mode](#tap-to-record-and-send) with `/voice tap`, or [rebind to a modifier combination](#rebind-the-dictation-key) like `meta+k`. Modifier combos start recording on the first keypress.
68</Tip>
66> [!TIP]
67>
68> To skip the warmup, switch to [tap mode](#tap-to-record-and-send) with `/voice tap`, or [rebind to a modifier combination](#rebind-the-dictation-key) like `meta+k`. Modifier combos start recording on the first keypress.
6969 
7070Your speech appears in the prompt as you speak, dimmed until the transcript is finalized. Release `Space` to stop recording and finalize the text. The transcript is inserted at your cursor position and the cursor stays at the end of the inserted text, so you can mix typing and dictation in any order. Hold `Space` again to append another recording, or move the cursor first to insert speech elsewhere in the prompt:
7171 
from line 101
101101 
102102Voice dictation uses the same [`language` setting](/docs/en/settings-reference#language) that controls Claude's response language. If that setting is empty, dictation defaults to English. In the VS Code extension, if `language` is empty, dictation uses VS Code's `accessibility.voice.speechLanguage` setting before defaulting to English.
103103 
104<Accordion title="Supported dictation languages">
105 | Language | Code |
106 | :- | :- |
107 | Czech | `cs` |
108 | Danish | `da` |
109 | Dutch | `nl` |
110 | English | `en` |
111 | French | `fr` |
112 | German | `de` |
113 | Greek | `el` |
114 | Hindi | `hi` |
115 | Indonesian | `id` |
116 | Italian | `it` |
117 | Japanese | `ja` |
118 | Korean | `ko` |
119 | Norwegian | `no` |
120 | Polish | `pl` |
121 | Portuguese | `pt` |
122 | Russian | `ru` |
123 | Spanish | `es` |
124 | Swedish | `sv` |
125 | Turkish | `tr` |
126 | Ukrainian | `uk` |
127</Accordion>
104> **Supported dictation languages**
105>
106> | Language | Code |
107> | :- | :- |
108> | Czech | `cs` |
109> | Danish | `da` |
110> | Dutch | `nl` |
111> | English | `en` |
112> | French | `fr` |
113> | German | `de` |
114> | Greek | `el` |
115> | Hindi | `hi` |
116> | Indonesian | `id` |
117> | Italian | `it` |
118> | Japanese | `ja` |
119> | Korean | `ko` |
120> | Norwegian | `no` |
121> | Polish | `pl` |
122> | Portuguese | `pt` |
123> | Russian | `ru` |
124> | Spanish | `es` |
125> | Swedish | `sv` |
126> | Turkish | `tr` |
127> | Ukrainian | `uk` |
128128 
129129Set the language in `/config` or directly in settings. You can use either the [BCP 47 language code](https://en.wikipedia.org/wiki/IETF_language_tag) or the language name:
130130 
from line 184
184184 
185185If your terminal app does not appear under System Settings → Privacy & Security → Microphone, there is no toggle you can enable. Reset the permission state for your terminal so the next `/voice` run triggers a fresh macOS permission prompt.
186186 
187<Steps>
188 <Step title="Reset the microphone permission for your terminal">
189 Run `tccutil reset Microphone <bundle-id>`, replacing `<bundle-id>` with your terminal's identifier: `com.apple.Terminal` for the built-in Terminal, or `com.googlecode.iterm2` for iTerm2. For other terminals, look up the identifier with `osascript -e 'id of app "AppName"'`.
187**1. Reset the microphone permission for your terminal**
190188 
191 <Warning>
192 You can run `tccutil reset Microphone` without a bundle ID, but it revokes microphone access from every app on your Mac, including apps like Zoom or Slack. Each app will need to re-request access on next use, so don't run it during an active call.
193 </Warning>
194 </Step>
189Run `tccutil reset Microphone <bundle-id>`, replacing `<bundle-id>` with your terminal's identifier: `com.apple.Terminal` for the built-in Terminal, or `com.googlecode.iterm2` for iTerm2. For other terminals, look up the identifier with `osascript -e 'id of app "AppName"'`.
195190 
196 <Step title="Quit and relaunch your terminal">
197 macOS won't re-prompt a process that is already running. Quit the terminal app with Cmd+Q, not just close its windows, then open it again.
198 </Step>
191> [!WARNING]
192>
193> You can run `tccutil reset Microphone` without a bundle ID, but it revokes microphone access from every app on your Mac, including apps like Zoom or Slack. Each app will need to re-request access on next use, so don't run it during an active call.
199194 
200 <Step title="Trigger a fresh prompt">
201 Start Claude Code and run `/voice`. macOS prompts for microphone access; allow it.
202 </Step>
203</Steps>
195**2. Quit and relaunch your terminal**
196 
197macOS won't re-prompt a process that is already running. Quit the terminal app with Cmd+Q, not just close its windows, then open it again.
198 
199**3. Trigger a fresh prompt**
200 
201Start Claude Code and run `/voice`. macOS prompts for microphone access; allow it.
204202 
205203## See also
206204 

vs-code Changed · +139 / -147 lines

from line 2
22 
33> Install and configure the Claude Code extension for VS Code. Get AI coding assistance with inline diffs, @-mentions, plan review, and keyboard shortcuts.
44 
5<img src="https://mintcdn.com/claude-code/-YhHHmtSxwr7W8gy/images/vs-code-extension-interface.jpg?fit=max&auto=format&n=-YhHHmtSxwr7W8gy&q=85&s=300652d5678c63905e6b0ea9e50835f8" alt="VS Code editor with the Claude Code extension panel open on the right side, showing a conversation with Claude" width="2500" height="1155" data-path="images/vs-code-extension-interface.jpg" />
5![VS Code editor with the Claude Code extension panel open on the right side, showing a conversation with Claude](https://mintcdn.com/claude-code/-YhHHmtSxwr7W8gy/images/vs-code-extension-interface.jpg?fit=max\&auto=format\&n=-YhHHmtSxwr7W8gy\&q=85\&s=300652d5678c63905e6b0ea9e50835f8)
66 
77The VS Code extension provides a native graphical interface for Claude Code, integrated directly into your IDE. This is the recommended way to use Claude Code in VS Code.
88 
from line 21
2121* VS Code 1.94.0 or later
2222* An Anthropic account: any paid Claude subscription (Pro, Max, Team, or Enterprise) or a Claude Console account works, and no API key is required. You'll [sign in](/docs/en/authentication#log-in-to-claude-code) with this account when you first open the extension. If you access Claude through a third-party provider like Amazon Bedrock or Google Cloud's Agent Platform, see [Use third-party providers](#use-third-party-providers) for setup instructions.
2323 
24<Tip>
25 The extension bundles its own copy of the CLI (command-line interface) for the chat panel. To run `claude` in VS Code's integrated terminal, you also need the [standalone CLI install](/docs/en/setup). See [VS Code extension vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) for details.
26</Tip>
24> [!TIP]
25>
26> The extension bundles its own copy of the CLI (command-line interface) for the chat panel. To run `claude` in VS Code's integrated terminal, you also need the [standalone CLI install](/docs/en/setup). See [VS Code extension vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) for details.
2727 
2828## Install the extension
2929 
from line 42
4242* **Editors that can't install the extension**: [install the CLI](/docs/en/quickstart) and run `claude` in the editor's integrated terminal instead. The CLI works in any terminal.
4343* **Dev containers**: to run Claude Code inside a dev container, see [Development containers](/docs/en/devcontainer).
4444 
45<Note>If the extension doesn't appear after installation, restart VS Code or run "Developer: Reload Window" from the Command Palette.</Note>
45> [!NOTE]
46>
47> If the extension doesn't appear after installation, restart VS Code or run "Developer: Reload Window" from the Command Palette.
4648 
4749## Get started
4850 
4951Once installed, you can start using Claude Code through the VS Code interface:
5052 
51<Steps>
52 <Step title="Open the Claude Code panel">
53 Throughout VS Code, the Spark icon indicates Claude Code: <img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/vs-code-spark-icon.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=3ca45e00deadec8c8f4b4f807da94505" alt="Spark icon" style={{display: "inline", height: "0.85em", verticalAlign: "middle"}} width="16" height="16" data-path="images/vs-code-spark-icon.svg" />
53**1. Open the Claude Code panel**
5454 
55 The quickest way to open Claude is to click the Spark icon in the **Editor Toolbar** (top-right corner of the editor). The icon only appears when you have a file open.
55Throughout VS Code, the Spark icon indicates Claude Code: ![Spark icon](https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/vs-code-spark-icon.svg?fit=max\&auto=format\&n=c5r9_6tjPMzFdDDT\&q=85\&s=3ca45e00deadec8c8f4b4f807da94505)
5656 
57 <img src="https://mintcdn.com/claude-code/mfM-EyoZGnQv8JTc/images/vs-code-editor-icon.png?fit=max&auto=format&n=mfM-EyoZGnQv8JTc&q=85&s=eb4540325d94664c51776dbbfec4cf02" alt="VS Code editor showing the Spark icon in the Editor Toolbar" width="2796" height="734" data-path="images/vs-code-editor-icon.png" />
57The quickest way to open Claude is to click the Spark icon in the **Editor Toolbar** (top-right corner of the editor). The icon only appears when you have a file open.
5858 
59 Other ways to open Claude Code:
59![VS Code editor showing the Spark icon in the Editor Toolbar](https://mintcdn.com/claude-code/mfM-EyoZGnQv8JTc/images/vs-code-editor-icon.png?fit=max\&auto=format\&n=mfM-EyoZGnQv8JTc\&q=85\&s=eb4540325d94664c51776dbbfec4cf02)
6060 
61 * **Activity Bar**: click the Spark icon in the left sidebar to open the sessions list. Click any session to open it in your [preferred location](#extension-settings), or start a new one. This icon is always visible in the Activity Bar.
62 * **Command Palette**: `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux), type "Claude Code", and select an option like "Open in New Tab"
63 * **Status Bar**: click **✻ Claude Code** in the bottom-right corner of the window. This works even when no file is open.
61Other ways to open Claude Code:
6462 
65 You can drag the Claude panel to reposition it anywhere in VS Code. See [Customize your workflow](#customize-your-workflow) for details.
66 </Step>
63* **Activity Bar**: click the Spark icon in the left sidebar to open the sessions list. Click any session to open it in your [preferred location](#extension-settings), or start a new one. This icon is always visible in the Activity Bar.
64* **Command Palette**: `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux), type "Claude Code", and select an option like "Open in New Tab"
65* **Status Bar**: click **✻ Claude Code** in the bottom-right corner of the window. This works even when no file is open.
6766 
68 <Step title="Sign in">
69 The first time you open the panel, a sign-in screen appears. Click **Sign in** and complete authorization in your browser.
67You can drag the Claude panel to reposition it anywhere in VS Code. See [Customize your workflow](#customize-your-workflow) for details.
7068 
71 If you see **Not logged in · Please run /login** later, the extension reopens the sign-in screen automatically. If it doesn't appear, reload the window from the Command Palette with **Developer: Reload Window**.
69**2. Sign in**
7270 
73 If you have `ANTHROPIC_API_KEY` set in your shell but still see the sign-in prompt, VS Code may not have inherited your shell environment. Launch VS Code from a terminal with `code .` so it inherits your environment variables, or sign in with your Claude account instead.
71The first time you open the panel, a sign-in screen appears. Click **Sign in** and complete authorization in your browser.
7472 
75 After you sign in, a **Learn Claude Code** checklist appears. Work through each item by clicking **Show me**, or dismiss it with the X. To reopen it later, uncheck **Hide Onboarding** in VS Code settings under **Extensions > Claude Code**.
76 </Step>
73If you see **Not logged in · Please run /login** later, the extension reopens the sign-in screen automatically. If it doesn't appear, reload the window from the Command Palette with **Developer: Reload Window**.
7774 
78 <Step title="Send a prompt">
79 Ask Claude to help with your code or files, whether that's explaining how something works, debugging an issue, or making changes.
75If you have `ANTHROPIC_API_KEY` set in your shell but still see the sign-in prompt, VS Code may not have inherited your shell environment. Launch VS Code from a terminal with `code .` so it inherits your environment variables, or sign in with your Claude account instead.
8076 
81 <Tip>Claude automatically sees your selected text. Press `Option+K` (Mac) / `Alt+K` (Windows/Linux) to also insert an @-mention reference (like `@file.ts#5-10`) into your prompt.</Tip>
77After you sign in, a **Learn Claude Code** checklist appears. Work through each item by clicking **Show me**, or dismiss it with the X. To reopen it later, uncheck **Hide Onboarding** in VS Code settings under **Extensions > Claude Code**.
8278 
83 Here's an example of asking about a particular line in a file:
79**3. Send a prompt**
8480 
85 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-send-prompt.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=ede3ed8d8d5f940e01c5de636d009cfd" alt="VS Code editor with lines 2-3 selected in a Python file, and the Claude Code panel showing a question about those lines with an @-mention reference" width="3288" height="1876" data-path="images/vs-code-send-prompt.png" />
86 </Step>
81Ask Claude to help with your code or files, whether that's explaining how something works, debugging an issue, or making changes.
8782 
88 <Step title="Review changes">
89 <span id="security-considerations" />
83> [!TIP]
84>
85> Claude automatically sees your selected text. Press `Option+K` (Mac) / `Alt+K` (Windows/Linux) to also insert an @-mention reference (like `@file.ts#5-10`) into your prompt.
9086 
91 <span id="security-and-privacy" />
87Here's an example of asking about a particular line in a file:
9288 
93 Check the [permission mode](/docs/en/permission-modes#which-mode-a-session-starts-in) shown at the bottom of the prompt box:
89![VS Code editor with lines 2-3 selected in a Python file, and the Claude Code panel showing a question about those lines with an @-mention reference](https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-send-prompt.png?fit=max\&auto=format\&n=FVYz38sRY-VuoGHA\&q=85\&s=ede3ed8d8d5f940e01c5de636d009cfd)
9490 
95 * In Auto or Edit automatically mode, Claude edits [most files](/docs/en/permission-modes#protected-paths) in your workspace without asking.
96 * In Manual mode, when Claude wants to edit a file, it shows a side-by-side comparison of the original and proposed changes, then asks for permission. You can accept, reject, or tell Claude what to do instead. If you edit the proposed content directly in the diff view before accepting, Claude is told that you modified it so it doesn't assume the file matches its original proposal.
91**4. Review changes**
9792 
98 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code showing a diff of Claude's proposed changes with a permission prompt asking whether to make the edit" width="3292" height="1876" data-path="images/vs-code-edits.png" />
93Check the [permission mode](/docs/en/permission-modes#which-mode-a-session-starts-in) shown at the bottom of the prompt box:
9994 
100 To review a proposed edit one change at a time, use the **Accept this change** and **Reject this change** buttons under each change in the diff. Rejecting a change reverts it in the proposed content; accepting marks it as reviewed. Per-change review requires Claude Code v2.1.275 or later.
95* In Auto or Edit automatically mode, Claude edits [most files](/docs/en/permission-modes#protected-paths) in your workspace without asking.
96* In Manual mode, when Claude wants to edit a file, it shows a side-by-side comparison of the original and proposed changes, then asks for permission. You can accept, reject, or tell Claude what to do instead. If you edit the proposed content directly in the diff view before accepting, Claude is told that you modified it so it doesn't assume the file matches its original proposal.
10197 
102 Accepting or rejecting the whole file still finishes the review. A diff with more than 100 changes opens without the per-change buttons, so review it as a whole file.
98 ![VS Code showing a diff of Claude's proposed changes with a permission prompt asking whether to make the edit](https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max\&auto=format\&n=FVYz38sRY-VuoGHA\&q=85\&s=e005f9b41c541c5c7c59c082f7c4841c)
10399 
104 The same actions are available at the cursor from the editor's context menu and from the Command Palette as **Claude Code: Accept Change at Cursor** and **Claude Code: Reject Change at Cursor**.
105 </Step>
106</Steps>
100To review a proposed edit one change at a time, use the **Accept this change** and **Reject this change** buttons under each change in the diff. Rejecting a change reverts it in the proposed content; accepting marks it as reviewed. Per-change review requires Claude Code v2.1.275 or later.
107101 
102Accepting or rejecting the whole file still finishes the review. A diff with more than 100 changes opens without the per-change buttons, so review it as a whole file.
103 
104The same actions are available at the cursor from the editor's context menu and from the Command Palette as **Claude Code: Accept Change at Cursor** and **Claude Code: Reject Change at Cursor**.
105 
108106For more ideas on what you can do with Claude Code, see [Common workflows](/docs/en/common-workflows).
109107 
110<Tip>
111 Run "Claude Code: Open Walkthrough" from the Command Palette for a guided tour of the basics.
112</Tip>
108> [!TIP]
109>
110> Run "Claude Code: Open Walkthrough" from the Command Palette for a guided tour of the basics.
113111 
114112## Use the prompt box
115113 
from line 276
278276 
279277If you run [cloud sessions](/docs/en/claude-code-on-the-web), you can resume them directly in VS Code. This requires signing in with **Claude.ai Subscription**, not Anthropic Console.
280278 
281<Steps>
282 <Step title="Open session history">
283 Click the **Session history** button at the top of the Claude Code panel.
284 </Step>
279**1. Open session history**
285280 
286 <Step title="Select the Web tab">
287 The dialog shows two tabs: Local and Web. Click **Web** to see sessions from claude.ai.
288 </Step>
281Click the **Session history** button at the top of the Claude Code panel.
289282 
290 <Step title="Select a session to resume">
291 Browse or search the sessions. Click one to continue the conversation locally.
292 </Step>
293</Steps>
283**2. Select the Web tab**
294284 
295<Note>
296 When the folder you have open is a GitHub repository, the Web tab shows only sessions from that repository.
285The dialog shows two tabs: Local and Web. Click **Web** to see sessions from claude.ai.
297286 
298 When you resume a cloud session, the extension downloads a copy of the conversation history; changes don't sync back to claude.ai.
299</Note>
287**3. Select a session to resume**
300288 
289Browse or search the sessions. Click one to continue the conversation locally.
290 
291> [!NOTE]
292>
293> When the folder you have open is a GitHub repository, the Web tab shows only sessions from that repository.
294>
295> When you resume a cloud session, the extension downloads a copy of the conversation history; changes don't sync back to claude.ai.
296 
301297The Web tab also lists your [Remote Control](/docs/en/remote-control) sessions. If you click one that ran in the folder you have open, the extension opens that local conversation instead of downloading a copy. The extension focuses the tab already showing it, if there is one. If the extension can't rule out that another Claude process has the conversation open, you get a downloaded copy instead.
302298 
303299If any part of a conversation fails to download, an error appears and no copy is saved. Select the session again to retry. If you select a session that has no conversation to download yet, an error tells you where to continue it instead.
from line 337
341337 
342338To stop the extension from locking groups, turn off the [Lock Editor Groups setting](vscode://settings/claudeCode.lockEditorGroups). Groups that are already locked stay locked until you unlock them. The setting requires Claude Code v2.1.274 or later.
343339 
344<Tip>
345 Use the sidebar for your main Claude session and open additional tabs for side tasks. Claude remembers your preferred location. The Activity Bar sessions list icon is separate from the Claude panel. The sessions list is always visible in the Activity Bar, while the Claude panel icon only appears there when the panel is docked to the left sidebar.
346</Tip>
340> [!TIP]
341>
342> Use the sidebar for your main Claude session and open additional tabs for side tasks. Claude remembers your preferred location. The Activity Bar sessions list icon is separate from the Claude panel. The sessions list is always visible in the Activity Bar, while the Claude panel icon only appears there when the panel is docked to the left sidebar.
347343 
348344### Continue conversations after a reload
349345 
from line 485
489485 
490486If the session you opened the dialog from can't reload its plugins, the dialog offers to try again or to restart Claude in that session.
491487 
492<Note>
493 The extension manages plugins by running the same commands as the CLI. Plugins and marketplaces you configure in the extension are also available in the CLI, and vice versa.
494</Note>
488> [!NOTE]
489>
490> The extension manages plugins by running the same commands as the CLI. Plugins and marketplaces you configure in the extension are also available in the CLI, and vice versa.
495491 
496492For more about the plugin system, see [Plugins](/docs/en/plugins/overview) and [Plugin marketplaces](/docs/en/plugins/overview).
497493 
from line 575
579575 
580576Some shortcuts depend on which panel is "focused" (receiving keyboard input). When your cursor is in a code file, the editor is focused. When your cursor is in Claude's prompt box, Claude is focused. Use `Cmd+Esc` / `Ctrl+Esc` to toggle between them.
581577 
582<Note>
583 These are VS Code commands for controlling the extension. Not all built-in Claude Code commands are available in the extension. See [VS Code extension vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) for details.
584</Note>
578> [!NOTE]
579>
580> These are VS Code commands for controlling the extension. Not all built-in Claude Code commands are available in the extension. See [VS Code extension vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) for details.
585581 
586582| Command | Shortcut | Description |
587583| - | - | - |
from line 605
609605 
610606Invoke the handler with your operating system's URL opener.
611607 
612<Tabs>
613 <Tab title="macOS">
614 ```bash theme={null}
615 open "vscode://anthropic.claude-code/open"
616 ```
617 </Tab>
608**macOS**
618609 
619 <Tab title="Linux">
620 ```bash theme={null}
621 xdg-open "vscode://anthropic.claude-code/open"
622 ```
610```bash theme={null}
611open "vscode://anthropic.claude-code/open"
612```
623613 
624 The `xdg-open` command comes from the `xdg-utils` package. If the shell reports it isn't found, see [xdg-open is not found on Linux](/docs/en/deep-links#xdg-open-is-not-found-on-linux).
625 </Tab>
614**Linux**
626615 
627 <Tab title="Windows">
628 In PowerShell:
616```bash theme={null}
617xdg-open "vscode://anthropic.claude-code/open"
618```
629619 
630 ```powershell theme={null}
631 Start-Process "vscode://anthropic.claude-code/open"
632 ```
620The `xdg-open` command comes from the `xdg-utils` package. If the shell reports it isn't found, see [xdg-open is not found on Linux](/docs/en/deep-links#xdg-open-is-not-found-on-linux).
633621 
634 In `cmd.exe`, `start` treats its first quoted argument as a window title, so pass an empty title before the URL:
622**Windows**
635623 
636 ```cmd theme={null}
637 start "" "vscode://anthropic.claude-code/open"
638 ```
639 </Tab>
640</Tabs>
624In PowerShell:
641625 
626```powershell theme={null}
627Start-Process "vscode://anthropic.claude-code/open"
628```
629 
630In `cmd.exe`, `start` treats its first quoted argument as a window title, so pass an empty title before the URL:
631 
632```cmd theme={null}
633start "" "vscode://anthropic.claude-code/open"
634```
635 
642636The handler accepts two optional query parameters:
643637 
644638| Parameter | Description |
from line 655
661655* **Extension settings** in VS Code: control the extension's behavior within VS Code. Open with `Cmd+,` (Mac) or `Ctrl+,` (Windows/Linux), then go to **Extensions > Claude Code**. You can also type `/` and select **General config…** to open settings.
662656* **Claude Code settings** in `~/.claude/settings.json`: shared between the extension and CLI. Use it for allowed commands, environment variables, hooks, and MCP servers. With Claude Code v2.1.283 or later, it's also one input to the permission mode conversations start in, and on earlier versions only on Pro, Max, and Team plans. [Switch permission modes](/docs/en/permission-modes#switch-permission-modes) lists the order. See [Settings](/docs/en/settings) for details.
663657 
664<Tip>
665 Add `"$schema": "https://json.schemastore.org/claude-code-settings.json"` to your `settings.json` to get autocomplete and inline validation for all available settings directly in VS Code.
666</Tip>
658> [!TIP]
659>
660> Add `"$schema": "https://json.schemastore.org/claude-code-settings.json"` to your `settings.json` to get autocomplete and inline validation for all available settings directly in VS Code.
667661 
668662### Extension settings
669663 
from line 692
698692 
699693By default, Claude Code connects directly to Anthropic's API. If your organization uses Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry to access Claude, configure the extension to use your provider instead:
700694 
701<Steps>
702 <Step title="Disable login prompt">
703 Open the [Disable Login Prompt setting](vscode://settings/claudeCode.disableLoginPrompt) and check the box.
695**1. Disable login prompt**
704696 
705 You can also press `Cmd+,` on Mac or `Ctrl+,` on Windows/Linux to open VS Code settings, search for "Claude Code login", and check **Disable Login Prompt**.
706 </Step>
697Open the [Disable Login Prompt setting](vscode://settings/claudeCode.disableLoginPrompt) and check the box.
707698 
708 <Step title="Configure your provider">
709 Follow the setup guide for your provider:
699You can also press `Cmd+,` on Mac or `Ctrl+,` on Windows/Linux to open VS Code settings, search for "Claude Code login", and check **Disable Login Prompt**.
710700 
711 * [Claude Code on Amazon Bedrock](/docs/en/amazon-bedrock)
712 * [Claude Code on Google Cloud's Agent Platform](/docs/en/google-vertex-ai)
713 * [Claude Code on Microsoft Foundry](/docs/en/microsoft-foundry)
701**2. Configure your provider**
714702 
715 These guides cover configuring your provider in `~/.claude/settings.json`, which ensures your settings are shared between the VS Code extension and the CLI.
716 </Step>
717</Steps>
703Follow the setup guide for your provider:
718704 
705* [Claude Code on Amazon Bedrock](/docs/en/amazon-bedrock)
706* [Claude Code on Google Cloud's Agent Platform](/docs/en/google-vertex-ai)
707* [Claude Code on Microsoft Foundry](/docs/en/microsoft-foundry)
708 
709These guides cover configuring your provider in `~/.claude/settings.json`, which ensures your settings are shared between the VS Code extension and the CLI.
710 
719711On a third-party provider, the extension doesn't offer features that require a claude.ai account, such as plan usage bars, [voice dictation](/docs/en/voice-dictation), and the Web tab for [cloud sessions](#resume-cloud-sessions-from-claude-ai). For what the Account & usage dialog shows on these sign-ins, see [Check account and usage](#check-account-and-usage).
720712 
721713A claude.ai sign-in left over from an earlier `/login` stays unused: the extension doesn't send it with any request.
from line 795
803795 
804796Once configured, ask Claude to use the tools (for example, "Review PR #456").
805797 
806<Note>To find servers to connect, see [Find and build MCP servers](/docs/en/mcp#find-and-build-mcp-servers).</Note>
798> [!NOTE]
799>
800> To find servers to connect, see [Find and build MCP servers](/docs/en/mcp#find-and-build-mcp-servers).
807801 
808802## The built-in IDE MCP server
809803 
from line 855
861855 
862856Cancelling, or dismissing the picker with `Esc`, returns an error to Claude and nothing runs. The tool also refuses outright when there's no active notebook, when the Jupyter extension (`ms-toolsai.jupyter`) isn't installed, or when the kernel isn't Python.
863857 
864<Note>
865 The Quick Pick confirmation is separate from `PreToolUse` hooks. An allowlist entry for `mcp__ide__executeCode` lets Claude *propose* running a cell; the Quick Pick inside VS Code is what lets it *actually* run.
866</Note>
867 
868<a id="troubleshooting" />
858> [!NOTE]
859>
860> The Quick Pick confirmation is separate from `PreToolUse` hooks. An allowlist entry for `mcp__ide__executeCode` lets Claude *propose* running a cell; the Quick Pick inside VS Code is what lets it *actually* run.
869861 
870862## Fix common issues
871863 

web-quickstart Changed · +101 / -113 lines

#### Remove the `/web-setup` token ### `/web-setup` shows "No commands match" or "Unknown command"

from line 2
22 
33> Run Claude Code in the cloud from your browser or phone. Connect a GitHub repository, submit a task, and review the PR without local setup.
44 
5<Note>
6 Cloud sessions are available on Pro, Max, and Team plans, and for Enterprise users with premium seats or Chat + Claude Code seats.
7</Note>
5> [!NOTE]
6>
7> Cloud sessions are available on Pro, Max, and Team plans, and for Enterprise users with premium seats or Chat + Claude Code seats.
88 
99A cloud session runs Claude Code on cloud infrastructure instead of your machine, Anthropic-managed by default. This quickstart starts one from [claude.ai/code](https://claude.ai/code) in your browser. You can also start one from the Claude mobile app, the Desktop app, or your terminal with `claude --cloud`.
1010 
from line 51
5151 
5252Connecting GitHub is a one-time step. If you already use the GitHub CLI, you can [do this from your terminal](#connect-from-your-terminal) instead of the browser.
5353 
54<Note>
55 On Team and Enterprise plans, the **Sign in with GitHub** step works only after an [Owner](/docs/en/server-managed-settings#access-control) of your Claude organization turns on the GitHub connector at [**Organization settings > Connectors**](https://claude.ai/admin-settings/connectors). Until then, that step shows "GitHub access is required for Claude Code cloud sessions" instead of a sign-in button. After the connector is on, reload [claude.ai/code](https://claude.ai/code) and start again from the first step. A second toggle, [Quick setup](/docs/en/claude-code-on-the-web#quick-setup-for-team-and-enterprise) at [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code), is optional: with it on, `/web-setup` works and onboarding creates the environment for members.
56</Note>
54> [!NOTE]
55>
56> On Team and Enterprise plans, the **Sign in with GitHub** step works only after an [Owner](/docs/en/server-managed-settings#access-control) of your Claude organization turns on the GitHub connector at [**Organization settings > Connectors**](https://claude.ai/admin-settings/connectors). Until then, that step shows "GitHub access is required for Claude Code cloud sessions" instead of a sign-in button. After the connector is on, reload [claude.ai/code](https://claude.ai/code) and start again from the first step. A second toggle, [Quick setup](/docs/en/claude-code-on-the-web#quick-setup-for-team-and-enterprise) at [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code), is optional: with it on, `/web-setup` works and onboarding creates the environment for members.
5757 
58<Steps>
59 <Step title="Visit claude.ai/code">
60 Go to [claude.ai/code](https://claude.ai/code) and sign in with your claude.ai account.
61 </Step>
58**1. Visit claude.ai/code**
6259 
63 <Step title="Sign in with GitHub">
64 After you sign in, claude.ai/code prompts you to connect GitHub. Follow the prompt, and claude.ai/code sends you to GitHub's authorization page. Approve the authorization request, and GitHub returns you to claude.ai/code. Cloud sessions work with existing GitHub repositories. To start a new project, [create an empty repository on GitHub](https://github.com/new) first.
60Go to [claude.ai/code](https://claude.ai/code) and sign in with your claude.ai account.
6561 
66 With this connection, a session can clone any public repository, but can work in a private repository only when the Claude GitHub App is installed on it. [Install the Claude GitHub App](https://github.com/apps/claude/installations/new) on each GitHub account or organization whose private repositories you want to use. On a GitHub organization, an organization owner may need to approve the installation. Installing it also enables [Auto-fix](/docs/en/claude-code-on-the-web#auto-fix-pull-requests), which lets Claude respond to CI failures and review comments on pull requests in those repositories.
62**2. Sign in with GitHub**
6763 
68 When you connect, Claude also links the GitHub accounts you own to your Claude organization, if they have the Claude GitHub App installed. On Team and Enterprise plans, admins see those accounts in the [connected GitHub accounts list](/docs/en/admin-setup#connected-github-accounts).
64After you sign in, claude.ai/code prompts you to connect GitHub. Follow the prompt, and claude.ai/code sends you to GitHub's authorization page. Approve the authorization request, and GitHub returns you to claude.ai/code. Cloud sessions work with existing GitHub repositories. To start a new project, [create an empty repository on GitHub](https://github.com/new) first.
6965 
70 If onboarding prompts you to install the Claude GitHub App at this point and you'd rather do it later, click **Skip**.
71 </Step>
66With this connection, a session can clone any public repository, but can work in a private repository only when the Claude GitHub App is installed on it. [Install the Claude GitHub App](https://github.com/apps/claude/installations/new) on each GitHub account or organization whose private repositories you want to use. On a GitHub organization, an organization owner may need to approve the installation. Installing it also enables [Auto-fix](/docs/en/claude-code-on-the-web#auto-fix-pull-requests), which lets Claude respond to CI failures and review comments on pull requests in those repositories.
7267 
73 <Step title="Set up your Default environment">
74 A [cloud environment](/docs/en/cloud-environments) is the saved configuration that controls what network access Claude has during sessions and what runs when a session starts. What happens after you connect GitHub depends on your plan:
68When you connect, Claude also links the GitHub accounts you own to your Claude organization, if they have the Claude GitHub App installed. On Team and Enterprise plans, admins see those accounts in the [connected GitHub accounts list](/docs/en/admin-setup#connected-github-accounts).
7569 
76 * **Pro and Max**: onboarding creates an environment named **Default** for you.
77 * **Team and Enterprise**: onboarding shows a **Create your first cloud environment** form. Leave the prefilled name and network access unchanged and click **Create & finish** to create the **Default** environment. If an Owner has turned on [Quick setup](/docs/en/claude-code-on-the-web#quick-setup-for-team-and-enterprise), onboarding creates **Default** for you instead.
70If onboarding prompts you to install the Claude GitHub App at this point and you'd rather do it later, click **Skip**.
7871 
79 **Default** uses [`Trusted` network access](/docs/en/cloud-environments#access-levels): sessions reach [common package registries](/docs/en/cloud-environments#default-allowed-domains) and other allowlisted domains, and nothing else through the session's network. See [Installed tools](/docs/en/cloud-environments#installed-tools) for what's available without any configuration.
72**3. Set up your Default environment**
8073 
81 For a first project, the **Default** environment works as is. To change its network access, add environment variables, or run a [setup script](/docs/en/cloud-environments#setup-scripts) before sessions start, [edit it or create additional environments](/docs/en/cloud-environments#configure-your-environment).
82 </Step>
83</Steps>
74A [cloud environment](/docs/en/cloud-environments) is the saved configuration that controls what network access Claude has during sessions and what runs when a session starts. What happens after you connect GitHub depends on your plan:
8475 
76* **Pro and Max**: onboarding creates an environment named **Default** for you.
77* **Team and Enterprise**: onboarding shows a **Create your first cloud environment** form. Leave the prefilled name and network access unchanged and click **Create & finish** to create the **Default** environment. If an Owner has turned on [Quick setup](/docs/en/claude-code-on-the-web#quick-setup-for-team-and-enterprise), onboarding creates **Default** for you instead.
78 
79**Default** uses [`Trusted` network access](/docs/en/cloud-environments#access-levels): sessions reach [common package registries](/docs/en/cloud-environments#default-allowed-domains) and other allowlisted domains, and nothing else through the session's network. See [Installed tools](/docs/en/cloud-environments#installed-tools) for what's available without any configuration.
80 
81For a first project, the **Default** environment works as is. To change its network access, add environment variables, or run a [setup script](/docs/en/cloud-environments#setup-scripts) before sessions start, [edit it or create additional environments](/docs/en/cloud-environments#configure-your-environment).
82 
8583### Connect from your terminal
8684 
8785If you already use the GitHub CLI (`gh`), you can connect GitHub for cloud sessions from your terminal. This requires the [Claude Code CLI](/docs/en/quickstart). On Team and Enterprise plans, `/web-setup` is available only after an Owner turns on [Quick setup](/docs/en/claude-code-on-the-web#quick-setup-for-team-and-enterprise).
from line 88
9088 
9189If you already connected GitHub in the browser, `/web-setup` warns you that continuing replaces that connection for your cloud sessions.
9290 
93<Note>
94 Organizations with [Zero Data Retention](/docs/en/zero-data-retention) enabled, or with the [HIPAA configuration](/docs/en/hipaa-setup) applied, cannot use `/web-setup` or other cloud session features. Organizations that use [customer-managed encryption keys](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) can't start cloud sessions either. If the GitHub CLI isn't installed or isn't authenticated, Claude Code opens the browser onboarding flow instead.
95</Note>
91> [!NOTE]
92>
93> Organizations with [Zero Data Retention](/docs/en/zero-data-retention) enabled, or with the [HIPAA configuration](/docs/en/hipaa-setup) applied, cannot use `/web-setup` or other cloud session features. Organizations that use [customer-managed encryption keys](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) can't start cloud sessions either. If the GitHub CLI isn't installed or isn't authenticated, Claude Code opens the browser onboarding flow instead.
9694 
97<Steps>
98 <Step title="Authenticate with the GitHub CLI">
99 In your shell, authenticate the GitHub CLI if you haven't already:
95**1. Authenticate with the GitHub CLI**
10096 
101 ```bash theme={null}
102 gh auth login
103 ```
104 </Step>
97In your shell, authenticate the GitHub CLI if you haven't already:
10598 
106 <Step title="Sign in to Claude">
107 In the Claude Code CLI, run `/login` to sign in with your claude.ai account. Skip this step if you're already signed in with a claude.ai account. Authenticating with an API key doesn't count. To check, run `/status` and confirm the **Login method** row shows a claude.ai account.
108 </Step>
99```bash theme={null}
100gh auth login
101```
109102 
110 <Step title="Run /web-setup">
111 In the Claude Code CLI, run:
103**2. Sign in to Claude**
112104 
113 ```text theme={null}
114 /web-setup
115 ```
105In the Claude Code CLI, run `/login` to sign in with your claude.ai account. Skip this step if you're already signed in with a claude.ai account. Authenticating with an API key doesn't count. To check, run `/status` and confirm the **Login method** row shows a claude.ai account.
116106 
117 Confirm the prompt to send your `gh` token to your Claude account. On success, Claude Code prints `Connected as <your-github-username>` and opens [claude.ai/code](https://claude.ai/code) in your browser. If you don't have a cloud environment yet, `/web-setup` creates one with Trusted network access and no setup script. You can [edit the environment or add variables](/docs/en/cloud-environments#configure-your-environment) afterward. Once `/web-setup` completes, you can start cloud sessions from your terminal with [`--cloud`](/docs/en/claude-code-on-the-web#from-terminal-to-cloud) or set up recurring tasks with [`/schedule`](/docs/en/routines).
118 </Step>
119</Steps>
107**3. Run /web-setup**
120108 
121<h4 id="remove-the-web-setup-token">
122 Remove the `/web-setup` token
123</h4>
109In the Claude Code CLI, run:
124110 
111```text theme={null}
112/web-setup
113```
114 
115Confirm the prompt to send your `gh` token to your Claude account. On success, Claude Code prints `Connected as <your-github-username>` and opens [claude.ai/code](https://claude.ai/code) in your browser. If you don't have a cloud environment yet, `/web-setup` creates one with Trusted network access and no setup script. You can [edit the environment or add variables](/docs/en/cloud-environments#configure-your-environment) afterward. Once `/web-setup` completes, you can start cloud sessions from your terminal with [`--cloud`](/docs/en/claude-code-on-the-web#from-terminal-to-cloud) or set up recurring tasks with [`/schedule`](/docs/en/routines).
116 
117#### Remove the `/web-setup` token
118 
125119To remove the token from your Claude account, disconnect GitHub at [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Disconnecting deletes the GitHub credentials your cloud sessions use, whether they came from the browser or from `/web-setup`, so cloud sessions lose GitHub access until you connect again. Your local `gh` stays signed in, and the token remains valid on GitHub.
126120 
127121To invalidate the token itself, revoke it on GitHub. If you signed in to `gh` through the browser, the token belongs to the **GitHub CLI** entry under [**Settings > Applications > Authorized OAuth Apps**](https://github.com/settings/applications) on GitHub, and revoking that entry also signs the GitHub CLI out on your machines. Cloud sessions then lose GitHub access until you run `gh auth login` and `/web-setup` again.
from line 124
130124 
131125With GitHub connected and an environment created, you're ready to submit tasks.
132126 
133<Steps>
134 <Step title="Select a repository and branch">
135 From [claude.ai/code](https://claude.ai/code) or the Code tab in the Claude mobile app, click the repository selector below the input box and choose a repository for Claude to work in. You can add multiple repositories to work across them in one session.
127**1. Select a repository and branch**
136128 
137 At claude.ai/code, to start Claude from a feature branch instead of the default, change the branch in the control after the repository selector.
138 </Step>
129From [claude.ai/code](https://claude.ai/code) or the Code tab in the Claude mobile app, click the repository selector below the input box and choose a repository for Claude to work in. You can add multiple repositories to work across them in one session.
139130 
140 <Step title="Choose a permission mode">
141 The [permission mode control](/docs/en/permission-modes#switch-permission-modes) shows the permission mode the session will run in:
131At claude.ai/code, to start Claude from a feature branch instead of the default, change the branch in the control after the repository selector.
142132 
143 * **Auto**: a classifier reviews Claude's actions instead of asking you. Appears when your organization allows auto mode and the selected model supports it
144 * **Accept edits**: Claude makes changes and pushes a branch without stopping for approval
145 * **Plan**: Claude proposes an approach and waits for you to approve it before editing files
133**2. Choose a permission mode**
146134 
147 Cloud sessions don't offer Manual or Bypass permissions. See the [full list of permission modes](/docs/en/permission-modes#available-modes) for what each one allows.
148 </Step>
135The [permission mode control](/docs/en/permission-modes#switch-permission-modes) shows the permission mode the session will run in:
149136 
150 <Step title="Describe the task and submit">
151 Type a description of what you want and press Enter. Be specific:
137* **Auto**: a classifier reviews Claude's actions instead of asking you. Appears when your organization allows auto mode and the selected model supports it
138* **Accept edits**: Claude makes changes and pushes a branch without stopping for approval
139* **Plan**: Claude proposes an approach and waits for you to approve it before editing files
152140 
153 * Name the file or function: "Add a README with setup instructions" or "Fix the failing auth test in `tests/test_auth.py`" is better than "fix tests"
154 * Paste error output if you have it
155 * Describe the expected behavior, not just the symptom
141Cloud sessions don't offer Manual or Bypass permissions. See the [full list of permission modes](/docs/en/permission-modes#available-modes) for what each one allows.
156142 
157 Claude clones the repositories, runs your setup script if configured, and starts working. Each task gets its own session and its own branch, so you don't need to wait for one to finish before starting another.
158 </Step>
159</Steps>
143**3. Describe the task and submit**
160144 
145Type a description of what you want and press Enter. Be specific:
146 
147* Name the file or function: "Add a README with setup instructions" or "Fix the failing auth test in `tests/test_auth.py`" is better than "fix tests"
148* Paste error output if you have it
149* Describe the expected behavior, not just the symptom
150 
151Claude clones the repositories, runs your setup script if configured, and starts working. Each task gets its own session and its own branch, so you don't need to wait for one to finish before starting another.
152 
161153## Pre-fill sessions
162154 
163155You can prefill the prompt, repositories, and environment for a new session by adding query parameters to the [claude.ai/code](https://claude.ai/code) URL. Use this to build integrations such as a button in your issue tracker that opens Claude Code with the issue description as the prompt.
from line 171
179171 
180172When Claude finishes, review the changes, leave feedback on specific lines, and keep going until the diff looks right.
181173 
182<Steps>
183 <Step title="Open the diff view">
184 A diff indicator shows lines added and removed across the session, for example `+42 -18`. Select it to open the diff view, with a file list on the left and changes on the right.
174**1. Open the diff view**
185175 
186 The diff compares the session's changes against its base branch by default. To compare against a different branch, select **Compare against** and pick one.
187 </Step>
176A diff indicator shows lines added and removed across the session, for example `+42 -18`. Select it to open the diff view, with a file list on the left and changes on the right.
188177 
189 <Step title="Leave inline comments">
190 Select any line in the diff, type your feedback, and press Enter. Comments queue up until you send your next message, then they're bundled with it. Claude sees "at `src/auth.ts:47`, don't catch the error here" alongside your main instruction, so you don't have to describe where the problem is.
191 </Step>
178The diff compares the session's changes against its base branch by default. To compare against a different branch, select **Compare against** and pick one.
192179 
193 <Step title="Create a pull request">
194 When the diff looks right, select **Create PR** at the top of the diff view. You can open it as a full PR, a draft, or jump to GitHub's compose page with a generated title and description.
195 </Step>
180**2. Leave inline comments**
196181 
197 <Step title="Keep iterating after the PR">
198 The session stays live after the PR is created. Paste CI failure output or reviewer comments into the chat and ask Claude to address them. To have Claude monitor the PR automatically, see [Auto-fix pull requests](/docs/en/claude-code-on-the-web#auto-fix-pull-requests).
199 </Step>
200</Steps>
182Select any line in the diff, type your feedback, and press Enter. Comments queue up until you send your next message, then they're bundled with it. Claude sees "at `src/auth.ts:47`, don't catch the error here" alongside your main instruction, so you don't have to describe where the problem is.
201183 
184**3. Create a pull request**
185 
186When the diff looks right, select **Create PR** at the top of the diff view. You can open it as a full PR, a draft, or jump to GitHub's compose page with a generated title and description.
187 
188**4. Keep iterating after the PR**
189 
190The session stays live after the PR is created. Paste CI failure output or reviewer comments into the chat and ask Claude to address them. To have Claude monitor the PR automatically, see [Auto-fix pull requests](/docs/en/claude-code-on-the-web#auto-fix-pull-requests).
191 
202192## Troubleshoot setup
203193 
204194### No repositories appear after connecting GitHub
from line 213
223213 
224214If `/web-setup` says your GitHub CLI token doesn't have the `workflow` scope, you can continue, but GitHub can reject some pushes made with that token, such as pushes that change GitHub Actions workflow files. To add the scope, run `gh auth refresh -s workflow` in your shell, then run `/web-setup` again.
225215 
226<h3 id="web-setup-shows-no-commands-match-or-unknown-command">
227 `/web-setup` shows "No commands match" or "Unknown command"
228</h3>
216### `/web-setup` shows "No commands match" or "Unknown command"
229217 
230218`/web-setup` runs inside the Claude Code CLI, not your shell. Launch `claude` first, then type `/web-setup` at the prompt.
231219 

whats-new/2026-w13 Changed · +70 / -116 lines

from line 2
22 
33> Auto mode for hands-off permissions, computer use built in, PR auto-fix in the cloud, transcript search, and a PowerShell tool for Windows.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-83">v2.1.83 → v2.1.85</a></span>
7 <span>6 features · March 23–27</span>
8</div>
5Releases [v2.1.83 → v2.1.85](/docs/en/changelog#2-1-83)
66 features · March 23–27
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Auto mode</span>
13 <span className="digest-feature-pill">research preview</span>
14 </div>
8Auto mode
9research preview
1510 
16 <p className="digest-feature-lede">Auto mode hands your permission prompts to a classifier. Safe edits and commands run without interrupting you; anything destructive or suspicious gets blocked and surfaced. It's the middle ground between approving every file write and running with `--dangerously-skip-permissions`.</p>
11Auto mode hands your permission prompts to a classifier. Safe edits and commands run without interrupting you; anything destructive or suspicious gets blocked and surfaced. It's the middle ground between approving every file write and running with `--dangerously-skip-permissions`.
1712 
18 <Frame>
19 <img src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/auto-mode.png?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=367c9e9d4ba5bc57ec4b935154bf1fbb" alt="Claude Code prompt footer showing 'auto mode on (shift+tab to cycle)' indicator in yellow" width="2400" height="691" data-path="images/whats-new/auto-mode.png" />
20 </Frame>
13![Claude Code prompt footer showing 'auto mode on (shift+tab to cycle)' indicator in yellow](https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/auto-mode.png?fit=max\&auto=format\&n=CfffsX01JHFnIKvD\&q=85\&s=367c9e9d4ba5bc57ec4b935154bf1fbb)
2114 
22 <p className="digest-feature-try">Cycle to auto with Shift+Tab, or set it as your default:</p>
15Cycle to auto with Shift+Tab, or set it as your default:
2316 
24 ```json ~/.claude/settings.json {3} theme={null}
25 {
26 "permissions": {
27 "defaultMode": "auto"
28 }
17```json ~/.claude/settings.json {3} theme={null}
18{
19 "permissions": {
20 "defaultMode": "auto"
2921 }
30 ```
22}
23```
3124 
32 <a className="digest-feature-link" href="/docs/en/permission-modes">Permission modes guide</a>
33</div>
25[Permission modes guide](/docs/en/permission-modes)
3426 
35<div className="digest-feature">
36 <div className="digest-feature-header">
37 <span className="digest-feature-title">Computer use</span>
38 <span className="digest-feature-pill">Desktop</span>
39 </div>
27Computer use
28Desktop
4029 
41 <p className="digest-feature-lede">Claude can now control your actual desktop from the Claude Code Desktop app: open native apps, click through the iOS simulator, drive hardware control panels, and verify changes on screen. It's off by default and asks before each action. Best for the things nothing else can reach: apps without an API, proprietary tools, anything that only exists as a GUI.</p>
30Claude can now control your actual desktop from the Claude Code Desktop app: open native apps, click through the iOS simulator, drive hardware control panels, and verify changes on screen. It's off by default and asks before each action. Best for the things nothing else can reach: apps without an API, proprietary tools, anything that only exists as a GUI.
4231 
43 <Frame>
44 <img src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/computer-use.png?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=d631de2017edafff463505f8ddbc0f51" alt="Claude Desktop settings with the Computer use toggle enabled, showing the option to let Claude take screenshots and control your keyboard and mouse in apps you allow" width="2376" height="1210" data-path="images/whats-new/computer-use.png" />
45 </Frame>
32![Claude Desktop settings with the Computer use toggle enabled, showing the option to let Claude take screenshots and control your keyboard and mouse in apps you allow](https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/computer-use.png?fit=max\&auto=format\&n=CfffsX01JHFnIKvD\&q=85\&s=d631de2017edafff463505f8ddbc0f51)
4633 
47 <p className="digest-feature-try">Enable it in Settings, grant the OS permissions, then ask Claude to verify a change end to end:</p>
34Enable it in Settings, grant the OS permissions, then ask Claude to verify a change end to end:
4835 
49 ```text title="Claude Code" wrap theme={null}
50 Open the iOS simulator, tap through the onboarding flow, and screenshot each step
51 ```
36```text title="Claude Code" wrap theme={null}
37Open the iOS simulator, tap through the onboarding flow, and screenshot each step
38```
5239 
53 <a className="digest-feature-link" href="/docs/en/desktop#let-claude-use-your-computer">Computer use guide</a>
54</div>
40[Computer use guide](/docs/en/desktop#let-claude-use-your-computer)
5541 
56<div className="digest-feature">
57 <div className="digest-feature-header">
58 <span className="digest-feature-title">PR auto-fix</span>
59 <span className="digest-feature-pill">Web</span>
60 </div>
42PR auto-fix
43Web
6144 
62 <p className="digest-feature-lede">Flip a switch when you open a PR and walk away. Claude watches CI, fixes the failures, handles the nits, and pushes until it's green. No more babysitting a PR through six rounds of lint errors.</p>
45Flip a switch when you open a PR and walk away. Claude watches CI, fixes the failures, handles the nits, and pushes until it's green. No more babysitting a PR through six rounds of lint errors.
6346 
64 <Frame>
65 <img src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/auto-fix.png?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=c62b181c6c5d96929f0b43525f9f3584" alt="Claude Code web CI panel showing the Auto fix toggle enabled, with description 'Proactively fix CI failures and review comments'" width="960" height="444" data-path="images/whats-new/auto-fix.png" />
66 </Frame>
47![Claude Code web CI panel showing the Auto fix toggle enabled, with description 'Proactively fix CI failures and review comments'](https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/auto-fix.png?fit=max\&auto=format\&n=CfffsX01JHFnIKvD\&q=85\&s=c62b181c6c5d96929f0b43525f9f3584)
6748 
68 <p className="digest-feature-try">After creating a PR on Claude Code web, toggle Auto fix in the CI panel.</p>
49After creating a PR on Claude Code web, toggle Auto fix in the CI panel.
6950 
70 <a className="digest-feature-link" href="/docs/en/claude-code-on-the-web#auto-fix-pull-requests">Auto-fix pull requests</a>
71</div>
51[Auto-fix pull requests](/docs/en/claude-code-on-the-web#auto-fix-pull-requests)
7252 
73<div className="digest-feature">
74 <div className="digest-feature-header">
75 <span className="digest-feature-title">Transcript search</span>
76 <span className="digest-feature-pill">v2.1.83</span>
77 </div>
53Transcript search
54v2.1.83
7855 
79 <p className="digest-feature-lede">Press <code>/</code> in transcript mode to search your conversation. <code>n</code> and <code>N</code> step through matches. Finally a way to find that one Bash command Claude ran 400 messages ago.</p>
56Press `/` in transcript mode to search your conversation. `n` and `N` step through matches. Finally a way to find that one Bash command Claude ran 400 messages ago.
8057 
81 <p className="digest-feature-try">Open transcript mode and search:</p>
58Open transcript mode and search:
8259 
83 ```text Claude Code theme={null}
84 Ctrl+O # open transcript
85 /migrate # search for "migrate"
86 n # next match
87 N # previous match
88 ```
60```text Claude Code theme={null}
61Ctrl+O # open transcript
62/migrate # search for "migrate"
63n # next match
64N # previous match
65```
8966 
90 <a className="digest-feature-link" href="/docs/en/fullscreen#search-and-review-the-conversation">Fullscreen guide</a>
91</div>
67[Fullscreen guide](/docs/en/fullscreen#search-and-review-the-conversation)
9268 
93<div className="digest-feature">
94 <div className="digest-feature-header">
95 <span className="digest-feature-title">PowerShell tool</span>
96 <span className="digest-feature-pill">preview</span>
97 <span className="digest-feature-pill">v2.1.84</span>
98 </div>
69PowerShell tool
70preview
71v2.1.84
9972 
100 <p className="digest-feature-lede">Windows gets a native PowerShell tool alongside Bash. Claude can run cmdlets, pipe objects, and work with Windows-native paths without translating everything through Git Bash.</p>
73Windows gets a native PowerShell tool alongside Bash. Claude can run cmdlets, pipe objects, and work with Windows-native paths without translating everything through Git Bash.
10174 
102 <p className="digest-feature-try">Opt in from settings:</p>
75Opt in from settings:
10376 
104 ```json .claude/settings.json {3} theme={null}
105 {
106 "env": {
107 "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
108 }
77```json .claude/settings.json {3} theme={null}
78{
79 "env": {
80 "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
10981 }
110 ```
82}
83```
11184 
112 <a className="digest-feature-link" href="/docs/en/tools-reference#powershell-tool">PowerShell tool docs</a>
113</div>
85[PowerShell tool docs](/docs/en/tools-reference#powershell-tool)
11486 
115<div className="digest-feature">
116 <div className="digest-feature-header">
117 <span className="digest-feature-title">Conditional hooks</span>
118 <span className="digest-feature-pill">v2.1.85</span>
119 </div>
87Conditional hooks
88v2.1.85
12089 
121 <p className="digest-feature-lede">Hooks can now declare an <code>if</code> field using permission rule syntax. Your pre-commit check only spawns for <code>Bash(git commit \*)</code> instead of every bash call, cutting the process overhead on busy sessions.</p>
90Hooks can now declare an `if` field using permission rule syntax. Your pre-commit check only spawns for `Bash(git commit *)` instead of every bash call, cutting the process overhead on busy sessions.
12291 
123 <p className="digest-feature-try">Scope a hook to git commits only:</p>
92Scope a hook to git commits only:
12493 
125 ```json .claude/settings.json {5} theme={null}
126 {
127 "hooks": {
128 "PreToolUse": [{
129 "hooks": [{
130 "if": "Bash(git commit *)",
131 "type": "command",
132 "command": ".claude/hooks/lint-staged.sh"
133 }]
94```json .claude/settings.json {5} theme={null}
95{
96 "hooks": {
97 "PreToolUse": [{
98 "hooks": [{
99 "if": "Bash(git commit *)",
100 "type": "command",
101 "command": ".claude/hooks/lint-staged.sh"
134102 }]
135 }
103 }]
136104 }
137 ```
105}
106```
138107 
139 <a className="digest-feature-link" href="/docs/en/hooks">Hooks reference</a>
140</div>
108[Hooks reference](/docs/en/hooks)
141109 
142<div className="digest-wins">
143 <p className="digest-wins-title">Other wins</p>
110Other wins
144111 
145 <div className="digest-wins-grid">
146 <div>Plugin <code>userConfig</code> now public: prompt for settings at enable time, keychain-backed secrets</div>
147 <div>Pasted images insert <code>\[Image #N]</code> chips you can reference positionally</div>
148 <div><code>managed-settings.d/</code> drop-in directory for layered policy fragments</div>
149 <div><code>CwdChanged</code> and <code>FileChanged</code> hook events for direnv-style setups</div>
150 <div>Agents can declare <code>initialPrompt</code> in frontmatter to auto-submit a first turn</div>
151 <div><code>Ctrl+X Ctrl+E</code> opens your external editor, matching readline</div>
152 <div>Interrupting before any response restores your input automatically</div>
153 <div><code>/status</code> now works while Claude is responding</div>
154 <div>Deep links open in your preferred terminal, not first-detected</div>
155 <div>Idle-return nudge to <code>/clear</code> after 75+ minutes away</div>
156 <div>VS Code: rate limit banner, Esc-twice rewind picker</div>
157 </div>
158</div>
112Plugin `userConfig` now public: prompt for settings at enable time, keychain-backed secretsPasted images insert `[Image #N]` chips you can reference positionally`managed-settings.d/` drop-in directory for layered policy fragments`CwdChanged` and `FileChanged` hook events for direnv-style setupsAgents can declare `initialPrompt` in frontmatter to auto-submit a first turn`Ctrl+X Ctrl+E` opens your external editor, matching readlineInterrupting before any response restores your input automatically`/status` now works while Claude is respondingDeep links open in your preferred terminal, not first-detectedIdle-return nudge to `/clear` after 75+ minutes awayVS Code: rate limit banner, Esc-twice rewind picker
159113 
160114[Full changelog for v2.1.83–v2.1.85 →](/docs/en/changelog#2-1-83)
161115 

whats-new/2026-w14 Changed · +57 / -97 lines

from line 2
22 
33> Computer use in the CLI, interactive in-product lessons, flicker-free rendering, per-tool MCP result-size overrides, and plugin executables on PATH.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-86">v2.1.86 → v2.1.91</a></span>
7 <span>5 features · March 30 – April 3</span>
8</div>
5Releases [v2.1.86 → v2.1.91](/docs/en/changelog#2-1-86)
65 features · March 30 – April 3
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Computer use in the CLI</span>
13 <span className="digest-feature-pill">research preview</span>
14 </div>
8Computer use in the CLI
9research preview
1510 
16 <p className="digest-feature-lede">Last week computer use landed in the Desktop app. This week it's in the CLI: Claude can open native apps, click through UI, test its own changes, and fix what breaks, all from your terminal. Web apps already had verification loops; native iOS, macOS, and other GUI-only apps didn't. Now they do. Best for closing the loop on apps and tools where there's no API to call. Still early; expect rough edges.</p>
11Last week computer use landed in the Desktop app. This week it's in the CLI: Claude can open native apps, click through UI, test its own changes, and fix what breaks, all from your terminal. Web apps already had verification loops; native iOS, macOS, and other GUI-only apps didn't. Now they do. Best for closing the loop on apps and tools where there's no API to call. Still early; expect rough edges.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/cli-computer-use.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=c17a337902308d7c9121013ded0494db" data-path="images/whats-new/cli-computer-use.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/cli-computer-use.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=c17a337902308d7c9121013ded0494db" />
2114 
22 <p className="digest-feature-try">Requires macOS and a Pro or Max plan; otherwise, <code>computer-use</code> won't appear in <code>/mcp</code>. Run <code>/mcp</code>, find <code>computer-use</code>, and toggle it on. Then ask Claude to verify a change end to end:</p>
15Requires macOS and a Pro or Max plan; otherwise, `computer-use` won't appear in `/mcp`. Run `/mcp`, find `computer-use`, and toggle it on. Then ask Claude to verify a change end to end:
2316 
24 ```text title="Claude Code" wrap theme={null}
25 Open the iOS simulator, tap through onboarding, and screenshot each step
26 ```
17```text title="Claude Code" wrap theme={null}
18Open the iOS simulator, tap through onboarding, and screenshot each step
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/computer-use">Computer use guide</a>
29</div>
21[Computer use guide](/docs/en/computer-use)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">/powerup</span>
34 <span className="digest-feature-pill">v2.1.90</span>
35 </div>
23/powerup
24v2.1.90
3625 
37 <p className="digest-feature-lede">Interactive lessons that teach Claude Code features through animated demos, right inside your terminal. Claude Code releases frequently, and features that would have changed how you work last month can slip by. Run <code>/powerup</code> once and you'll know what's there.</p>
26Interactive lessons that teach Claude Code features through animated demos, right inside your terminal. Claude Code releases frequently, and features that would have changed how you work last month can slip by. Run `/powerup` once and you'll know what's there.
3827 
39 <Frame>
40 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/powerup.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=fb88beddc0ecc8029da5ab029e4b28f1" data-path="images/whats-new/powerup.mp4" />
41 </Frame>
28<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/powerup.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=fb88beddc0ecc8029da5ab029e4b28f1" />
4229 
43 <p className="digest-feature-try">Run it:</p>
30Run it:
4431 
45 ```text title="Claude Code" wrap theme={null}
46 /powerup
47 ```
32```text title="Claude Code" wrap theme={null}
33/powerup
34```
4835 
49 <a className="digest-feature-link" href="/docs/en/commands">Commands reference</a>
50</div>
36[Commands reference](/docs/en/commands)
5137 
52<div className="digest-feature">
53 <div className="digest-feature-header">
54 <span className="digest-feature-title">Flicker-free rendering</span>
55 <span className="digest-feature-pill">v2.1.89</span>
56 </div>
38Flicker-free rendering
39v2.1.89
5740 
58 <p className="digest-feature-lede">Opt into a new alt-screen renderer with virtualized scrollback. The prompt input stays pinned to the bottom, mouse selection works across long conversations, and the flicker on redraw is gone. Unset <code>CLAUDE\_CODE\_NO\_FLICKER</code> to roll back.</p>
41Opt into a new alt-screen renderer with virtualized scrollback. The prompt input stays pinned to the bottom, mouse selection works across long conversations, and the flicker on redraw is gone. Unset `CLAUDE_CODE_NO_FLICKER` to roll back.
5942 
60 <Frame>
61 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/flicker-free.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=7719e35e52a3f9734b0cf69edac333ad" data-path="images/whats-new/flicker-free.mp4" />
62 </Frame>
43<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/CfffsX01JHFnIKvD/images/whats-new/flicker-free.mp4?fit=max&auto=format&n=CfffsX01JHFnIKvD&q=85&s=7719e35e52a3f9734b0cf69edac333ad" />
6344 
64 <p className="digest-feature-try">Set the env var and restart Claude Code:</p>
45Set the env var and restart Claude Code:
6546 
66 ```bash theme={null}
67 export CLAUDE_CODE_NO_FLICKER=1
68 claude
69 ```
47```bash theme={null}
48export CLAUDE_CODE_NO_FLICKER=1
49claude
50```
7051 
71 <a className="digest-feature-link" href="/docs/en/fullscreen">Fullscreen rendering</a>
72</div>
52[Fullscreen rendering](/docs/en/fullscreen)
7353 
74<div className="digest-feature">
75 <div className="digest-feature-header">
76 <span className="digest-feature-title">MCP result-size override</span>
77 <span className="digest-feature-pill">v2.1.91</span>
78 </div>
54MCP result-size override
55v2.1.91
7956 
80 <p className="digest-feature-lede">MCP server authors can now raise the truncation cap on a specific tool by setting <code>anthropic/maxResultSizeChars</code> in the tool's <code>tools/list</code> entry, up to a hard ceiling of 500K characters. The cap used to be global, so tools that occasionally returned inherently large payloads like database schemas or full file trees hit the default limit and got persisted to disk with a file reference. Per-tool overrides keep those results inline when the tool really needs them.</p>
57MCP server authors can now raise the truncation cap on a specific tool by setting `anthropic/maxResultSizeChars` in the tool's `tools/list` entry, up to a hard ceiling of 500K characters. The cap used to be global, so tools that occasionally returned inherently large payloads like database schemas or full file trees hit the default limit and got persisted to disk with a file reference. Per-tool overrides keep those results inline when the tool really needs them.
8158 
82 <p className="digest-feature-try">Annotate the tool in your server's <code>tools/list</code> response:</p>
59Annotate the tool in your server's `tools/list` response:
8360 
84 ```json highlight={5} theme={null}
85 {
86 "name": "get_schema",
87 "description": "Returns the full database schema",
88 "_meta": {
89 "anthropic/maxResultSizeChars": 500000
90 }
61```json highlight={5} theme={null}
62{
63 "name": "get_schema",
64 "description": "Returns the full database schema",
65 "_meta": {
66 "anthropic/maxResultSizeChars": 500000
9167 }
92 ```
68}
69```
9370 
94 <a className="digest-feature-link" href="/docs/en/mcp#raise-the-limit-for-a-specific-tool">MCP reference</a>
95</div>
71[MCP reference](/docs/en/mcp#raise-the-limit-for-a-specific-tool)
9672 
97<div className="digest-feature">
98 <div className="digest-feature-header">
99 <span className="digest-feature-title">Plugin executables on PATH</span>
100 <span className="digest-feature-pill">v2.1.91</span>
101 </div>
73Plugin executables on PATH
74v2.1.91
10275 
103 <p className="digest-feature-lede">Place an executable in a <code>bin/</code> directory at your plugin root and Claude Code adds that directory to the Bash tool's <code>PATH</code> while the plugin is enabled. Claude can then invoke the binary as a bare command from any Bash tool call, with no absolute path or wrapper script needed. Handy for packaging CLI helpers next to the commands, agents, and hooks that call them.</p>
76Place an executable in a `bin/` directory at your plugin root and Claude Code adds that directory to the Bash tool's `PATH` while the plugin is enabled. Claude can then invoke the binary as a bare command from any Bash tool call, with no absolute path or wrapper script needed. Handy for packaging CLI helpers next to the commands, agents, and hooks that call them.
10477 
105 <p className="digest-feature-try">Add a <code>bin/</code> directory at the plugin root:</p>
78Add a `bin/` directory at the plugin root:
10679 
107 ```text highlight={4, 5} theme={null}
108 my-plugin/
109 ├── .claude-plugin/
110 │ └── plugin.json
111 └── bin/
112 └── my-tool
113 ```
80```text highlight={4, 5} theme={null}
81my-plugin/
82├── .claude-plugin/
83│ └── plugin.json
84└── bin/
85 └── my-tool
86```
11487 
115 <a className="digest-feature-link" href="/docs/en/plugins/manifest-reference#standard-layout">Plugins reference</a>
116</div>
88[Plugins reference](/docs/en/plugins/manifest-reference#standard-layout)
11789 
118<div className="digest-wins">
119 <p className="digest-wins-title">Other wins</p>
90Other wins
12091 
121 <div className="digest-wins-grid">
122 <div>Auto mode follow-ups: new <code>PermissionDenied</code> hook fires on classifier denials (return <code>retry: true</code> to let Claude try a different approach), and <code>/permissions</code> → Recently denied lets you retry manually with <code>r</code></div>
123 <div>New <code>defer</code> value for <code>permissionDecision</code> in <code>PreToolUse</code> hooks: <code>-p</code> sessions pause at a tool call and exit with a <code>deferred\_tool\_use</code> payload so an SDK app or custom UI can surface it, then resume with `--resume`</div>
124 <div><code>/buddy</code>: hatch a small creature that watches you code. An April Fools' joke, no longer available</div>
125 <div><code>disableSkillShellExecution</code> setting blocks inline shell from skills, custom commands, and plugin commands</div>
126 <div>Edit tool now works on files viewed via <code>cat</code> or <code>sed -n</code> without a separate Read</div>
127 <div>Hook output over 50K saved to disk with a path + preview instead of injected into context</div>
128 <div>Thinking summaries off by default in interactive sessions (<code>showThinkingSummaries: true</code> to restore)</div>
129 <div>Voice mode: push-to-talk modifier combos, Windows WebSocket, macOS Apple Silicon mic permission</div>
130 <div><code>claude-cli://</code> deep links accept multi-line prompts (encoded <code>%0A</code>)</div>
131 </div>
132</div>
92Auto mode follow-ups: new `PermissionDenied` hook fires on classifier denials (return `retry: true` to let Claude try a different approach), and `/permissions` → Recently denied lets you retry manually with `r`New `defer` value for `permissionDecision` in `PreToolUse` hooks: `-p` sessions pause at a tool call and exit with a `deferred_tool_use` payload so an SDK app or custom UI can surface it, then resume with `--resume``/buddy`: hatch a small creature that watches you code. An April Fools' joke, no longer available`disableSkillShellExecution` setting blocks inline shell from skills, custom commands, and plugin commandsEdit tool now works on files viewed via `cat` or `sed -n` without a separate ReadHook output over 50K saved to disk with a path + preview instead of injected into contextThinking summaries off by default in interactive sessions (`showThinkingSummaries: true` to restore)Voice mode: push-to-talk modifier combos, Windows WebSocket, macOS Apple Silicon mic permission`claude-cli://` deep links accept multi-line prompts (encoded `%0A`)
13393 
13494[Full changelog for v2.1.86–v2.1.91 →](/docs/en/changelog#2-1-86)
13595 

whats-new/2026-w15 Changed · +43 / -82 lines

from line 2
22 
33> Ultraplan cloud planning, the Monitor tool with self-pacing /loop, /team-onboarding for packaging your setup, and /autofix-pr from your terminal.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-92">v2.1.92 → v2.1.101</a></span>
7 <span>4 features · April 6–10</span>
8</div>
5Releases [v2.1.92 → v2.1.101](/docs/en/changelog#2-1-92)
64 features · April 6–10
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Ultraplan</span>
13 <span className="digest-feature-pill">research preview</span>
14 </div>
8Ultraplan
9research preview
1510 
16 <p className="digest-feature-lede">Kick off plan mode in the cloud from your terminal, then review the result in your browser. Claude drafts the plan in a Claude Code on the web session while your terminal stays free; when it's ready you comment on individual sections, ask for revisions, and choose to execute remotely or send it back to your CLI. As of v2.1.101 the first run auto-creates a default cloud environment, so there's no web setup step before you can try it.</p>
11Kick off plan mode in the cloud from your terminal, then review the result in your browser. Claude drafts the plan in a Claude Code on the web session while your terminal stays free; when it's ready you comment on individual sections, ask for revisions, and choose to execute remotely or send it back to your CLI. As of v2.1.101 the first run auto-creates a default cloud environment, so there's no web setup step before you can try it.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/ultraplan.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=e8f2f23730c6a5c289dbf3e7b13eadf6" data-path="images/whats-new/ultraplan.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/ultraplan.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=e8f2f23730c6a5c289dbf3e7b13eadf6" />
2114 
22 <p className="digest-feature-try">Run the command, or just include the keyword in any prompt:</p>
15Run the command, or just include the keyword in any prompt:
2316 
24 ```text title="Claude Code" wrap theme={null}
25 /ultraplan migrate the auth service from sessions to JWTs
26 ```
17```text title="Claude Code" wrap theme={null}
18/ultraplan migrate the auth service from sessions to JWTs
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/ultraplan">Ultraplan guide</a>
29</div>
21[Ultraplan guide](/docs/en/ultraplan)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">Monitor tool</span>
34 <span className="digest-feature-pill">v2.1.98</span>
35 </div>
23Monitor tool
24v2.1.98
3625 
37 <p className="digest-feature-lede">A new built-in tool that spawns a background watcher and streams its events into the conversation: each event lands as a new transcript message that Claude reacts to immediately. Tail a training run, babysit a PR's CI, or auto-fix a dev server crash the moment it happens, all without a Bash sleep loop holding the turn open.</p>
26A new built-in tool that spawns a background watcher and streams its events into the conversation: each event lands as a new transcript message that Claude reacts to immediately. Tail a training run, babysit a PR's CI, or auto-fix a dev server crash the moment it happens, all without a Bash sleep loop holding the turn open.
3827 
39 <Frame>
40 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/monitor-tool.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=f4156c15a0999de5c5157f54a3117c89" data-path="images/whats-new/monitor-tool.mp4" />
41 </Frame>
28<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/monitor-tool.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=f4156c15a0999de5c5157f54a3117c89" />
4229 
43 <p className="digest-feature-try">Ask Claude to watch something while you keep working:</p>
30Ask Claude to watch something while you keep working:
4431 
45 ```text title="Claude Code" wrap theme={null}
46 Tail server.log in the background and tell me the moment a 5xx shows up
47 ```
32```text title="Claude Code" wrap theme={null}
33Tail server.log in the background and tell me the moment a 5xx shows up
34```
4835 
49 <p className="digest-feature-try">This pairs with <code>/loop</code>, which now self-paces: omit the interval and Claude schedules the next tick based on the task, or reaches for the Monitor tool to skip polling altogether.</p>
36This pairs with `/loop`, which now self-paces: omit the interval and Claude schedules the next tick based on the task, or reaches for the Monitor tool to skip polling altogether.
5037 
51 ```text title="Claude Code" wrap theme={null}
52 /loop check CI on my PR
53 ```
38```text title="Claude Code" wrap theme={null}
39/loop check CI on my PR
40```
5441 
55 <a className="digest-feature-link" href="/docs/en/tools-reference#monitor-tool">Monitor tool reference</a>
56</div>
42[Monitor tool reference](/docs/en/tools-reference#monitor-tool)
5743 
58<div className="digest-feature">
59 <div className="digest-feature-header">
60 <span className="digest-feature-title">/autofix-pr</span>
61 <span className="digest-feature-pill">CLI</span>
62 </div>
44/autofix-pr
45CLI
6346 
64 <p className="digest-feature-lede">PR auto-fix landed on the web in Week 13. Now you can turn it on without leaving your terminal: <code>/autofix-pr</code> infers the open PR for your current branch and enables auto-fix for it on Claude Code on the web in one step. Push your branch, run the command, walk away; Claude watches CI and review comments and pushes fixes until it's green.</p>
47PR auto-fix landed on the web in Week 13. Now you can turn it on without leaving your terminal: `/autofix-pr` infers the open PR for your current branch and enables auto-fix for it on Claude Code on the web in one step. Push your branch, run the command, walk away; Claude watches CI and review comments and pushes fixes until it's green.
6548 
66 <Frame>
67 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/autofix-pr.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=95f191eb4711130a128aec3f6b720527" data-path="images/whats-new/autofix-pr.mp4" />
68 </Frame>
49<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/aFXPQxiBOW99MHS3/images/whats-new/autofix-pr.mp4?fit=max&auto=format&n=aFXPQxiBOW99MHS3&q=85&s=95f191eb4711130a128aec3f6b720527" />
6950 
70 <p className="digest-feature-try">Run it from the PR's branch:</p>
51Run it from the PR's branch:
7152 
72 ```text title="Claude Code" wrap theme={null}
73 /autofix-pr
74 ```
53```text title="Claude Code" wrap theme={null}
54/autofix-pr
55```
7556 
76 <a className="digest-feature-link" href="/docs/en/claude-code-on-the-web#auto-fix-pull-requests">Auto-fix pull requests</a>
77</div>
57[Auto-fix pull requests](/docs/en/claude-code-on-the-web#auto-fix-pull-requests)
7858 
79<div className="digest-feature">
80 <div className="digest-feature-header">
81 <span className="digest-feature-title">/team-onboarding</span>
82 <span className="digest-feature-pill">v2.1.101</span>
83 </div>
59/team-onboarding
60v2.1.101
8461 
85 <p className="digest-feature-lede">Generates a teammate ramp-up guide from your local Claude Code usage. Run it in a project you know well and hand the output to a new teammate so they can replay your setup instead of starting from defaults.</p>
62Generates a teammate ramp-up guide from your local Claude Code usage. Run it in a project you know well and hand the output to a new teammate so they can replay your setup instead of starting from defaults.
8663 
87 <p className="digest-feature-try">Run it from a project you've spent real time in:</p>
64Run it from a project you've spent real time in:
8865 
89 ```text title="Claude Code" wrap theme={null}
90 /team-onboarding
91 ```
66```text title="Claude Code" wrap theme={null}
67/team-onboarding
68```
9269 
93 <a className="digest-feature-link" href="/docs/en/commands">Commands reference</a>
94</div>
70[Commands reference](/docs/en/commands)
9571 
96<div className="digest-wins">
97 <p className="digest-wins-title">Other wins</p>
72Other wins
9873 
99 <div className="digest-wins-grid">
100 <div>Focus view: press <code>Ctrl+O</code> in flicker-free mode to collapse the view to your last prompt, a one-line tool summary with diffstats, and Claude's final response</div>
101 <div>Guided <a href="/docs/en/amazon-bedrock">Amazon Bedrock</a> and <a href="/docs/en/google-vertex-ai">Google Cloud's Agent Platform</a> setup wizards on the login screen: pick "3rd-party platform" for step-by-step auth, region, credential check, and model pinning</div>
102 <div><code>/agents</code> gets a tabbed layout: a Running tab shows live subagents with a <code>● N running</code> count, plus Run agent and View running instance actions in the Library tab</div>
103 <div>Default effort level is now <code>high</code> for API-key, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Team, and Enterprise users (control with <code>/effort</code>)</div>
104 <div><code>/cost</code> shows a per-model and cache-hit breakdown for subscription users</div>
105 <div><code>/release-notes</code> is now an interactive version picker</div>
106 <div>Status line: new <code>refreshInterval</code> setting re-runs the command every N seconds, and <code>workspace.git\_worktree</code> in the JSON input</div>
107 <div><code>CLAUDE\_CODE\_PERFORCE\_MODE</code>: Edit/Write fail on read-only files with a <code>p4 edit</code> hint instead of silently overwriting</div>
108 <div>OS CA certificate store is now trusted by default, so enterprise TLS proxies work without extra setup (<code>CLAUDE\_CODE\_CERT\_STORE=bundled</code> to opt out)</div>
109 <div>Amazon Bedrock powered by Mantle: set <code>CLAUDE\_CODE\_USE\_MANTLE=1</code></div>
110 <div>Hardened Bash tool permissions: backslash-escaped flags, env-var prefixes, <code>/dev/tcp</code> redirects, and compound commands now prompt correctly</div>
111 <div><code>UserPromptSubmit</code> hooks can set the session title via <code>hookSpecificOutput.sessionTitle</code></div>
112 </div>
113</div>
74Focus view: press `Ctrl+O` in flicker-free mode to collapse the view to your last prompt, a one-line tool summary with diffstats, and Claude's final responseGuided [Amazon Bedrock](/docs/en/amazon-bedrock) and [Google Cloud's Agent Platform](/docs/en/google-vertex-ai) setup wizards on the login screen: pick "3rd-party platform" for step-by-step auth, region, credential check, and model pinning`/agents` gets a tabbed layout: a Running tab shows live subagents with a `● N running` count, plus Run agent and View running instance actions in the Library tabDefault effort level is now `high` for API-key, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Team, and Enterprise users (control with `/effort`)`/cost` shows a per-model and cache-hit breakdown for subscription users`/release-notes` is now an interactive version pickerStatus line: new `refreshInterval` setting re-runs the command every N seconds, and `workspace.git_worktree` in the JSON input`CLAUDE_CODE_PERFORCE_MODE`: Edit/Write fail on read-only files with a `p4 edit` hint instead of silently overwritingOS CA certificate store is now trusted by default, so enterprise TLS proxies work without extra setup (`CLAUDE_CODE_CERT_STORE=bundled` to opt out)Amazon Bedrock powered by Mantle: set `CLAUDE_CODE_USE_MANTLE=1`Hardened Bash tool permissions: backslash-escaped flags, env-var prefixes, `/dev/tcp` redirects, and compound commands now prompt correctly`UserPromptSubmit` hooks can set the session title via `hookSpecificOutput.sessionTitle`
11475 
11576[Full changelog for v2.1.92–v2.1.101 →](/docs/en/changelog#2-1-92)
11677 

whats-new/2026-w16 Changed · +49 / -93 lines

from line 2
22 
33> Claude Opus 4.7 with the new xhigh effort level, Routines on Claude Code on the web, mobile push notifications that ping your phone when Claude needs you, a /usage breakdown that shows what's driving your limits, and native binaries replacing the bundled JavaScript.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-105">v2.1.105 → v2.1.113</a></span>
7 <span>5 features · April 13–17</span>
8</div>
5Releases [v2.1.105 → v2.1.113](/docs/en/changelog#2-1-105)
65 features · April 13–17
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Claude Opus 4.7</span>
13 <span className="digest-feature-pill">new model</span>
14 </div>
8Claude Opus 4.7
9new model
1510 
16 <p className="digest-feature-lede">Anthropic's strongest coding model yet is now the default on Max and Team Premium, and available everywhere else from <code>/model</code>. It adds a new <code>xhigh</code> effort level that sits between <code>high</code> and <code>max</code>: best results for most coding and agentic tasks, applied as the default the first time you switch to 4.7. <code>/effort</code> now opens an interactive arrow-key slider when you call it without arguments, so you can dial intelligence against speed without remembering the level names.</p>
11Anthropic's strongest coding model yet is now the default on Max and Team Premium, and available everywhere else from `/model`. It adds a new `xhigh` effort level that sits between `high` and `max`: best results for most coding and agentic tasks, applied as the default the first time you switch to 4.7. `/effort` now opens an interactive arrow-key slider when you call it without arguments, so you can dial intelligence against speed without remembering the level names.
1712 
18 <p className="digest-feature-try">Switch model and effort in one go:</p>
13Switch model and effort in one go:
1914 
20 ```text Claude Code theme={null}
21 > /model opus
22 > /effort xhigh
23 ```
15```text Claude Code theme={null}
16> /model opus
17> /effort xhigh
18```
2419 
25 <a className="digest-feature-link" href="/docs/en/model-config#adjust-effort-level">Model config: effort levels</a>
26</div>
20[Model config: effort levels](/docs/en/model-config#adjust-effort-level)
2721 
28<div className="digest-feature">
29 <div className="digest-feature-header">
30 <span className="digest-feature-title">Routines</span>
31 <span className="digest-feature-pill">web</span>
32 </div>
22Routines
23web
3324 
34 <p className="digest-feature-lede">Templated cloud agents that fire on a schedule, a GitHub event, or an API call. Define a routine once on Claude Code on the web with a prompt, the repos it can touch, and the connectors it needs, then let PR-opened, release-published, or your own webhook trigger it without your machine running. The trigger picker now covers GitHub events with optional filters and gives every routine a tokened <code>/fire</code> endpoint for external systems.</p>
25Templated cloud agents that fire on a schedule, a GitHub event, or an API call. Define a routine once on Claude Code on the web with a prompt, the repos it can touch, and the connectors it needs, then let PR-opened, release-published, or your own webhook trigger it without your machine running. The trigger picker now covers GitHub events with optional filters and gives every routine a tokened `/fire` endpoint for external systems.
3526 
36 <Frame>
37 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/routines.png?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=2ba818ea9280c549511cb48b9b4d1dc5" alt="Creating a routine on Claude Code on the web with schedule, GitHub event, and API triggers" width="1440" height="810" data-path="images/whats-new/routines.png" />
38 </Frame>
27![Creating a routine on Claude Code on the web with schedule, GitHub event, and API triggers](https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/routines.png?fit=max\&auto=format\&n=FTi4SBJ9YRs7d-5X\&q=85\&s=2ba818ea9280c549511cb48b9b4d1dc5)
3928 
40 <p className="digest-feature-try">Create one from the web UI, or scaffold from your terminal:</p>
29Create one from the web UI, or scaffold from your terminal:
4130 
42 ```text Claude Code theme={null}
43 > /schedule daily PR review at 9am
44 ```
31```text Claude Code theme={null}
32> /schedule daily PR review at 9am
33```
4534 
46 <a className="digest-feature-link" href="/docs/en/routines">Routines guide</a>
47</div>
35[Routines guide](/docs/en/routines)
4836 
49<div className="digest-feature">
50 <div className="digest-feature-header">
51 <span className="digest-feature-title">/usage breakdown</span>
52 <span className="digest-feature-pill">CLI</span>
53 </div>
37/usage breakdown
38CLI
5439 
55 <p className="digest-feature-lede">More visibility into where your Claude Code usage goes. <code>/usage</code> now shows what's driving your limits: parallel sessions, subagents, cache misses, and long context, each with a percentage of your last 24 hours and a tip to optimize it. Press <code>d</code> or <code>w</code> to switch between day and week views.</p>
40More visibility into where your Claude Code usage goes. `/usage` now shows what's driving your limits: parallel sessions, subagents, cache misses, and long context, each with a percentage of your last 24 hours and a tip to optimize it. Press `d` or `w` to switch between day and week views.
5641 
57 <Frame>
58 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/usage.png?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=792a4b43cbef4e2931974831f076bca6" alt="The /usage command showing a breakdown of what's contributing to limits usage" width="1204" height="1182" data-path="images/whats-new/usage.png" />
59 </Frame>
42![The /usage command showing a breakdown of what's contributing to limits usage](https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/usage.png?fit=max\&auto=format\&n=FTi4SBJ9YRs7d-5X\&q=85\&s=792a4b43cbef4e2931974831f076bca6)
6043 
61 <p className="digest-feature-try">Run it any time:</p>
44Run it any time:
6245 
63 ```text Claude Code theme={null}
64 > /usage
65 ```
46```text Claude Code theme={null}
47> /usage
48```
6649 
67 <a className="digest-feature-link" href="/docs/en/commands">Commands reference</a>
68</div>
50[Commands reference](/docs/en/commands)
6951 
70<div className="digest-feature">
71 <div className="digest-feature-header">
72 <span className="digest-feature-title">Mobile push notifications</span>
73 <span className="digest-feature-pill">mobile</span>
74 </div>
52Mobile push notifications
53mobile
7554 
76 <p className="digest-feature-lede">With <a href="/docs/en/remote-control">Remote Control</a> connected, Claude can send a push notification to your phone when a long task finishes or it needs a decision to keep going. Turn it on with "Push when Claude decides" in <code>/config</code>, or ask for one in your prompt. Useful when you kick off a long agent run and want to step away from the terminal.</p>
55With [Remote Control](/docs/en/remote-control) connected, Claude can send a push notification to your phone when a long task finishes or it needs a decision to keep going. Turn it on with "Push when Claude decides" in `/config`, or ask for one in your prompt. Useful when you kick off a long agent run and want to step away from the terminal.
7756 
78 <Frame>
79 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/uII1TETOZxBUZ3lB/images/whats-new/push-notifications.mp4?fit=max&auto=format&n=uII1TETOZxBUZ3lB&q=85&s=c91a967139596500cbdb581a53822ac1" data-path="images/whats-new/push-notifications.mp4" />
80 </Frame>
57<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/uII1TETOZxBUZ3lB/images/whats-new/push-notifications.mp4?fit=max&auto=format&n=uII1TETOZxBUZ3lB&q=85&s=c91a967139596500cbdb581a53822ac1" />
8158 
82 <p className="digest-feature-try">Ask Claude to ping you when it's done:</p>
59Ask Claude to ping you when it's done:
8360 
84 ```text Claude Code theme={null}
85 > notify me when the tests pass
86 ```
61```text Claude Code theme={null}
62> notify me when the tests pass
63```
8764 
88 <a className="digest-feature-link" href="/docs/en/remote-control#mobile-push-notifications">Remote Control: mobile push notifications</a>
89</div>
65[Remote Control: mobile push notifications](/docs/en/remote-control#mobile-push-notifications)
9066 
91<div className="digest-feature">
92 <div className="digest-feature-header">
93 <span className="digest-feature-title">Native binaries</span>
94 <span className="digest-feature-pill">v2.1.113</span>
95 </div>
67Native binaries
68v2.1.113
9669 
97 <p className="digest-feature-lede">The <code>claude</code> CLI now spawns a native per-platform binary instead of bundled JavaScript, so the installed <code>claude</code> command no longer invokes Node. The npm package pulls the right binary in through an optional dependency such as <code>@anthropic-ai/claude-code-darwin-arm64</code>, so your install command doesn't change. The standalone installer already shipped this binary; npm now matches it.</p>
70The `claude` CLI now spawns a native per-platform binary instead of bundled JavaScript, so the installed `claude` command no longer invokes Node. The npm package pulls the right binary in through an optional dependency such as `@anthropic-ai/claude-code-darwin-arm64`, so your install command doesn't change. The standalone installer already shipped this binary; npm now matches it.
9871 
99 <p className="digest-feature-try">Upgrade and check what you're running:</p>
72Upgrade and check what you're running:
10073 
101 ```bash theme={null}
102 claude update
103 claude --version
104 ```
74```bash theme={null}
75claude update
76claude --version
77```
10578 
106 <a className="digest-feature-link" href="/docs/en/setup">Setup guide</a>
107</div>
79[Setup guide](/docs/en/setup)
10880 
109<div className="digest-wins">
110 <p className="digest-wins-title">Other wins</p>
81Other wins
11182 
112 <div className="digest-wins-grid">
113 <div>New <a href="/docs/en/ultrareview"><code>/ultrareview</code></a>: comprehensive code review in the cloud using parallel multi-agent analysis and an adversarial critique pass. Run it bare to review your current branch, or <code>/ultrareview \<PR#></code> for a specific PR</div>
114 <div><a href="/docs/en/permission-modes#eliminate-prompts-with-auto-mode">Auto mode</a> is now available for Max subscribers on Opus 4.7, and the `--enable-auto-mode` flag is no longer required</div>
115 <div><a href="/docs/en/interactive-mode#session-recap">Session recap</a> shows a one-line summary of what happened while you were away; run <code>/recap</code> on demand or turn it off from <code>/config</code></div>
116 <div>New <code>/tui</code> command and <code>tui</code> setting switch between classic and flicker-free rendering mid-conversation; focus view moved from <code>Ctrl+O</code> to its own <code>/focus</code> command</div>
117 <div>Plugins can ship background watchers via a top-level <code>monitors</code> manifest key that auto-arms at session start or on skill invoke</div>
118 <div>"Auto (match terminal)" option in <code>/theme</code> follows your terminal's dark/light mode</div>
119 <div><code>/fewer-permission-prompts</code> scans your transcripts for common read-only Bash and MCP calls and proposes an allowlist for <code>.claude/settings.json</code></div>
120 <div>Claude can now discover and run built-in commands like <code>/init</code>, <code>/review</code>, and <code>/security-review</code> via the Skill tool</div>
121 <div><code>PreCompact</code> hooks can block compaction by exiting with code 2 or returning <code>{"{"}"decision":"block"{"}"}</code></div>
122 <div><code>ENABLE\_PROMPT\_CACHING\_1H</code> opts API key, Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry users into 1-hour prompt cache TTL</div>
123 <div><code>sandbox.network.deniedDomains</code> setting carves specific domains out of a broader <code>allowedDomains</code> wildcard</div>
124 <div><code>/undo</code> is now an alias for <code>/rewind</code>, and <code>/proactive</code> is an alias for <code>/loop</code></div>
125 <div>Hardened Bash permissions: deny rules now match through <code>env</code>/<code>sudo</code>/<code>watch</code> wrappers, and <code>Bash(find:\*)</code> allow rules no longer auto-approve <code>-exec</code> or <code>-delete</code></div>
126 </div>
127</div>
83New [`/ultrareview`](/docs/en/ultrareview): comprehensive code review in the cloud using parallel multi-agent analysis and an adversarial critique pass. Run it bare to review your current branch, or `/ultrareview <PR#>` for a specific PR[Auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) is now available for Max subscribers on Opus 4.7, and the `--enable-auto-mode` flag is no longer required[Session recap](/docs/en/interactive-mode#session-recap) shows a one-line summary of what happened while you were away; run `/recap` on demand or turn it off from `/config`New `/tui` command and `tui` setting switch between classic and flicker-free rendering mid-conversation; focus view moved from `Ctrl+O` to its own `/focus` commandPlugins can ship background watchers via a top-level `monitors` manifest key that auto-arms at session start or on skill invoke"Auto (match terminal)" option in `/theme` follows your terminal's dark/light mode`/fewer-permission-prompts` scans your transcripts for common read-only Bash and MCP calls and proposes an allowlist for `.claude/settings.json`Claude can now discover and run built-in commands like `/init`, `/review`, and `/security-review` via the Skill tool`PreCompact` hooks can block compaction by exiting with code 2 or returning `{"decision":"block"}``ENABLE_PROMPT_CACHING_1H` opts API key, Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry users into 1-hour prompt cache TTL`sandbox.network.deniedDomains` setting carves specific domains out of a broader `allowedDomains` wildcard`/undo` is now an alias for `/rewind`, and `/proactive` is an alias for `/loop`Hardened Bash permissions: deny rules now match through `env`/`sudo`/`watch` wrappers, and `Bash(find:*)` allow rules no longer auto-approve `-exec` or `-delete`
12884 
12985[Full changelog for v2.1.105–v2.1.113 →](/docs/en/changelog#2-1-105)
13086 

whats-new/2026-w17 Changed · +39 / -78 lines

from line 2
22 
33> /ultrareview opens as a research preview, automatic session recaps when you return to a terminal, custom color themes you can build and ship in plugins, and a redesigned Claude Code on the web.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-114">v2.1.114 → v2.1.119</a></span>
7 <span>4 features · April 20–24</span>
8</div>
5Releases [v2.1.114 → v2.1.119](/docs/en/changelog#2-1-114)
64 features · April 20–24
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">/ultrareview</span>
13 <span className="digest-feature-pill">research preview</span>
14 </div>
8/ultrareview
9research preview
1510 
16 <p className="digest-feature-lede">Now in public research preview. Ultrareview runs a fleet of bug-hunting agents in the cloud against your branch or a PR, and findings land back in the CLI or Desktop automatically. Run it before merging critical changes such as auth or data migrations.</p>
11Now in public research preview. Ultrareview runs a fleet of bug-hunting agents in the cloud against your branch or a PR, and findings land back in the CLI or Desktop automatically. Run it before merging critical changes such as auth or data migrations.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/ultrareview.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0fb1271365d38f414ad155aeb8edb08e" data-path="images/whats-new/ultrareview.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/ultrareview.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0fb1271365d38f414ad155aeb8edb08e" />
2114 
22 <p className="digest-feature-try">Review the branch you're on:</p>
15Review the branch you're on:
2316 
24 ```text Claude Code theme={null}
25 > /ultrareview
26 ```
17```text Claude Code theme={null}
18> /ultrareview
19```
2720 
28 <p className="digest-feature-try">Or point it at a PR:</p>
21Or point it at a PR:
2922 
30 ```text Claude Code theme={null}
31 > /ultrareview 1234
32 ```
23```text Claude Code theme={null}
24> /ultrareview 1234
25```
3326 
34 <a className="digest-feature-link" href="/docs/en/ultrareview">Ultrareview guide</a>
35</div>
27[Ultrareview guide](/docs/en/ultrareview)
3628 
37<div className="digest-feature">
38 <div className="digest-feature-header">
39 <span className="digest-feature-title">Session recap</span>
40 <span className="digest-feature-pill">CLI</span>
41 </div>
29Session recap
30CLI
4231 
43 <p className="digest-feature-lede">Switch focus away from a session and come back to a one-line recap of what happened while you were gone. Helpful for staying in flow while running several Claude sessions at once.</p>
32Switch focus away from a session and come back to a one-line recap of what happened while you were gone. Helpful for staying in flow while running several Claude sessions at once.
4433 
45 <Frame>
46 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/session-recap.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0a8db1470bd0161a47efeb2f322af76f" data-path="images/whats-new/session-recap.mp4" />
47 </Frame>
34<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/session-recap.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0a8db1470bd0161a47efeb2f322af76f" />
4835 
49 <p className="digest-feature-try">Generate a recap on demand, or turn the automatic one off from <code>/config</code>:</p>
36Generate a recap on demand, or turn the automatic one off from `/config`:
5037 
51 ```text Claude Code theme={null}
52 > /recap
53 ```
38```text Claude Code theme={null}
39> /recap
40```
5441 
55 <a className="digest-feature-link" href="/docs/en/interactive-mode#session-recap">Interactive mode: session recap</a>
56</div>
42[Interactive mode: session recap](/docs/en/interactive-mode#session-recap)
5743 
58<div className="digest-feature">
59 <div className="digest-feature-header">
60 <span className="digest-feature-title">Custom themes</span>
61 <span className="digest-feature-pill">v2.1.118</span>
62 </div>
44Custom themes
45v2.1.118
6346 
64 <p className="digest-feature-lede">Build and switch between named color themes from <code>/theme</code>, or hand-edit JSON files in <code>\~/.claude/themes/</code>. Each theme picks a base preset and overrides only the tokens you care about. Plugins can ship themes too.</p>
47Build and switch between named color themes from `/theme`, or hand-edit JSON files in `~/.claude/themes/`. Each theme picks a base preset and overrides only the tokens you care about. Plugins can ship themes too.
6548 
66 <p className="digest-feature-try">Open the theme picker and create a new one:</p>
49Open the theme picker and create a new one:
6750 
68 ```text Claude Code theme={null}
69 > /theme
70 ```
51```text Claude Code theme={null}
52> /theme
53```
7154 
72 <a className="digest-feature-link" href="/docs/en/terminal-config#create-a-custom-theme">Terminal config: create a custom theme</a>
73</div>
55[Terminal config: create a custom theme](/docs/en/terminal-config#create-a-custom-theme)
7456 
75<div className="digest-feature">
76 <div className="digest-feature-header">
77 <span className="digest-feature-title">Claude Code on the web</span>
78 <span className="digest-feature-pill">web</span>
79 </div>
57Claude Code on the web
58web
8059 
81 <p className="digest-feature-lede">A new look for <a href="https://claude.ai/code">claude.ai/code</a> that matches the redesigned desktop app: sessions sidebar, drag-and-drop layout, and a refreshed routines view. Key parts were rebuilt for quicker responses and a more reliable experience.</p>
60A new look for [claude.ai/code](https://claude.ai/code) that matches the redesigned desktop app: sessions sidebar, drag-and-drop layout, and a refreshed routines view. Key parts were rebuilt for quicker responses and a more reliable experience.
8261 
83 <Frame>
84 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/web-redesign.jpeg?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=a2aca1b49e295b7337f5779038db8e2c" alt="Claude Code on the web redesign overview: new UI, speed and reliability, work across web, mobile, and CLI" width="1602" height="1610" data-path="images/whats-new/web-redesign.jpeg" />
85 </Frame>
62![Claude Code on the web redesign overview: new UI, speed and reliability, work across web, mobile, and CLI](https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/web-redesign.jpeg?fit=max\&auto=format\&n=FTi4SBJ9YRs7d-5X\&q=85\&s=a2aca1b49e295b7337f5779038db8e2c)
8663 
87 <a className="digest-feature-link" href="/docs/en/claude-code-on-the-web">Claude Code on the web</a>
88</div>
64[Claude Code on the web](/docs/en/claude-code-on-the-web)
8965 
90<div className="digest-wins">
91 <p className="digest-wins-title">Other wins</p>
66Other wins
9267 
93 <div className="digest-wins-grid">
94 <div><a href="/docs/en/interactive-mode#vim-editor-mode">Vim visual mode</a>: press <code>v</code> for character selection or <code>V</code> for line selection in the prompt input, with operators and visual feedback</div>
95 <div>Hooks can now call MCP tools directly via <a href="/docs/en/hooks#mcp-tool-hook-fields"><code>type: "mcp\_tool"</code></a>, so a hook can hit an already-connected server without spawning a process</div>
96 <div><code>/cost</code> and <code>/stats</code> are merged into <a href="/docs/en/commands"><code>/usage</code></a>; the old names still work as typing shortcuts that open the relevant tab</div>
97 <div><code>/config</code> changes (theme, editor mode, verbose, and similar) now persist to <code>\~/.claude/settings.json</code> and follow the same project/local/policy precedence as other <a href="/docs/en/settings">settings</a></div>
98 <div><a href="/docs/en/sub-agents#fork-the-current-conversation">Forked subagents</a> can be enabled on external builds with <code>CLAUDE\_CODE\_FORK\_SUBAGENT=1</code>: a fork inherits your full conversation context instead of starting fresh</div>
99 <div>Default <a href="/docs/en/model-config#adjust-effort-level">effort level</a> for Pro and Max subscribers on Opus 4.6 and Sonnet 4.6 is now <code>high</code> (was <code>medium</code>)</div>
100 <div>Native macOS and Linux builds replace the <code>Glob</code> and <code>Grep</code> tools with embedded <code>bfs</code> and <code>ugrep</code> available through Bash, for faster searches without a separate tool round-trip</div>
101 <div>`--from-pr` now accepts GitLab merge request, Bitbucket pull request, and GitHub Enterprise PR URLs in addition to github.com</div>
102 <div>Auto mode: include <code>"\$defaults"</code> in <a href="/docs/en/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, or <code>environment</code></a> to add custom rules alongside the built-in list instead of replacing it</div>
103 <div>New <a href="/docs/en/plugins/dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> command creates release git tags for plugins with version validation</div>
104 <div>Opus 4.7 sessions now compute against the model's native 1M context window, fixing inflated <code>/context</code> percentages and premature autocompaction</div>
105 <div><code>/resume</code> on large sessions is up to 67% faster and now offers to summarize stale, large sessions before re-reading them</div>
106 </div>
107</div>
68[Vim visual mode](/docs/en/interactive-mode#vim-editor-mode): press `v` for character selection or `V` for line selection in the prompt input, with operators and visual feedbackHooks can now call MCP tools directly via [`type: "mcp_tool"`](/docs/en/hooks#mcp-tool-hook-fields), so a hook can hit an already-connected server without spawning a process`/cost` and `/stats` are merged into [`/usage`](/docs/en/commands); the old names still work as typing shortcuts that open the relevant tab`/config` changes (theme, editor mode, verbose, and similar) now persist to `~/.claude/settings.json` and follow the same project/local/policy precedence as other [settings](/docs/en/settings)[Forked subagents](/docs/en/sub-agents#fork-the-current-conversation) can be enabled on external builds with `CLAUDE_CODE_FORK_SUBAGENT=1`: a fork inherits your full conversation context instead of starting freshDefault [effort level](/docs/en/model-config#adjust-effort-level) for Pro and Max subscribers on Opus 4.6 and Sonnet 4.6 is now `high` (was `medium`)Native macOS and Linux builds replace the `Glob` and `Grep` tools with embedded `bfs` and `ugrep` available through Bash, for faster searches without a separate tool round-trip`--from-pr` now accepts GitLab merge request, Bitbucket pull request, and GitHub Enterprise PR URLs in addition to github.comAuto mode: include `"$defaults"` in [`autoMode.allow`, `soft_deny`, or `environment`](/docs/en/auto-mode-config) to add custom rules alongside the built-in list instead of replacing itNew [`claude plugin tag`](/docs/en/plugins/dependencies#tag-plugin-releases-for-version-resolution) command creates release git tags for plugins with version validationOpus 4.7 sessions now compute against the model's native 1M context window, fixing inflated `/context` percentages and premature autocompaction`/resume` on large sessions is up to 67% faster and now offers to summarize stale, large sessions before re-reading them
10869 
10970[Full changelog for v2.1.114–v2.1.119 →](/docs/en/changelog#2-1-114)
11071 

whats-new/2026-w18 Changed · +44 / -77 lines

from line 2
22 
33> Claude Code on Windows runs without Git Bash, claude auth login accepts a pasted OAuth code when the browser callback can't reach localhost, claude project purge cleans up local state per project, and pasting a PR URL into /resume finds the session that created it.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-120">v2.1.120 → v2.1.126</a></span>
7 <span>4 features · April 27 – May 1</span>
8</div>
5Releases [v2.1.120 → v2.1.126](/docs/en/changelog#2-1-120)
64 features · April 27 – May 1
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Sign in without a browser callback</span>
13 <span className="digest-feature-pill">v2.1.126</span>
14 </div>
8Sign in without a browser callback
9v2.1.126
1510 
16 <p className="digest-feature-lede"><code>claude auth login</code> now accepts the OAuth code pasted directly into the terminal when the browser callback can't reach localhost. That covers WSL2, SSH sessions, and containers, where the redirect to a local port doesn't work. The same release also fixes login timeouts on slow or proxied connections and in IPv6-only devcontainers.</p>
11`claude auth login` now accepts the OAuth code pasted directly into the terminal when the browser callback can't reach localhost. That covers WSL2, SSH sessions, and containers, where the redirect to a local port doesn't work. The same release also fixes login timeouts on slow or proxied connections and in IPv6-only devcontainers.
1712 
18 <p className="digest-feature-try">Sign in, then paste the code from the browser:</p>
13Sign in, then paste the code from the browser:
1914 
20 ```bash theme={null}
21 claude auth login
22 ```
15```bash theme={null}
16claude auth login
17```
2318 
24 <a className="digest-feature-link" href="/docs/en/cli-reference#cli-commands">CLI reference</a>
25</div>
19[CLI reference](/docs/en/cli-reference#cli-commands)
2620 
27<div className="digest-feature">
28 <div className="digest-feature-header">
29 <span className="digest-feature-title">claude project purge</span>
30 <span className="digest-feature-pill">v2.1.124</span>
31 </div>
21claude project purge
22v2.1.124
3223 
33 <p className="digest-feature-lede">Delete all Claude Code state for a project: transcripts, tasks, file history, and the project's config entry. Supports `--dry-run` to preview, `-y`/`--yes` to skip confirmation, `-i`/`--interactive` to choose, and `--all` to clear every project.</p>
24Delete all Claude Code state for a project: transcripts, tasks, file history, and the project's config entry. Supports `--dry-run` to preview, `-y`/`--yes` to skip confirmation, `-i`/`--interactive` to choose, and `--all` to clear every project.
3425 
35 <p className="digest-feature-try">Preview what would be removed:</p>
26Preview what would be removed:
3627 
37 ```bash theme={null}
38 claude project purge --dry-run
39 ```
28```bash theme={null}
29claude project purge --dry-run
30```
4031 
41 <p className="digest-feature-try">Then run it for real:</p>
32Then run it for real:
4233 
43 ```bash theme={null}
44 claude project purge
45 ```
34```bash theme={null}
35claude project purge
36```
4637 
47 <a className="digest-feature-link" href="/docs/en/cli-reference">CLI reference</a>
48</div>
38[CLI reference](/docs/en/cli-reference)
4939 
50<div className="digest-feature">
51 <div className="digest-feature-header">
52 <span className="digest-feature-title">Resume by PR URL</span>
53 <span className="digest-feature-pill">v2.1.122</span>
54 </div>
40Resume by PR URL
41v2.1.122
5542 
56 <p className="digest-feature-lede">When you create a pull request with <code>gh pr create</code>, Claude Code links it to the session that produced it. Now you can get back to that session from the PR URL alone, without remembering its name.</p>
43When you create a pull request with `gh pr create`, Claude Code links it to the session that produced it. Now you can get back to that session from the PR URL alone, without remembering its name.
5744 
58 <p className="digest-feature-try">Open the session picker:</p>
45Open the session picker:
5946 
60 ```text Claude Code theme={null}
61 > /resume
62 ```
47```text Claude Code theme={null}
48> /resume
49```
6350 
64 <p className="digest-feature-try">Paste the PR URL into the picker. The first character of the paste drops you into search mode, and the list filters to the session that created that PR. Press Enter to resume it. GitHub, GitHub Enterprise, GitLab, and Bitbucket pull and merge request URLs all work.</p>
51Paste the PR URL into the picker. The first character of the paste drops you into search mode, and the list filters to the session that created that PR. Press Enter to resume it. GitHub, GitHub Enterprise, GitLab, and Bitbucket pull and merge request URLs all work.
6552 
66 ```text Claude Code theme={null}
67 https://github.com/your-org/your-repo/pull/1234
68 ```
53```text Claude Code theme={null}
54https://github.com/your-org/your-repo/pull/1234
55```
6956 
70 <p className="digest-feature-try">To open the picker already filtered to the PR, pass the PR number on the command line:</p>
57To open the picker already filtered to the PR, pass the PR number on the command line:
7158 
72 ```bash theme={null}
73 claude --from-pr 1234
74 ```
59```bash theme={null}
60claude --from-pr 1234
61```
7562 
76 <a className="digest-feature-link" href="/docs/en/sessions#use-the-session-picker">Sessions: use the session picker</a>
77</div>
63[Sessions: use the session picker](/docs/en/sessions#use-the-session-picker)
7864 
79<div className="digest-feature">
80 <div className="digest-feature-header">
81 <span className="digest-feature-title">Windows without Git Bash</span>
82 <span className="digest-feature-pill">Windows</span>
83 </div>
65Windows without Git Bash
66Windows
8467 
85 <p className="digest-feature-lede">Git for Windows is no longer required. When Bash is absent, Claude Code uses PowerShell as the shell tool, and when the PowerShell tool is enabled it is treated as the primary shell. PowerShell 7 installed via the Microsoft Store, MSI without PATH, or a <code>.NET</code> global tool is now detected automatically.</p>
68Git for Windows is no longer required. When Bash is absent, Claude Code uses PowerShell as the shell tool, and when the PowerShell tool is enabled it is treated as the primary shell. PowerShell 7 installed via the Microsoft Store, MSI without PATH, or a `.NET` global tool is now detected automatically.
8669 
87 <a className="digest-feature-link" href="/docs/en/setup">Setup guide</a>
88</div>
70[Setup guide](/docs/en/setup)
8971 
90<div className="digest-wins">
91 <p className="digest-wins-title">Other wins</p>
72Other wins
9273 
93 <div className="digest-wins-grid">
94 <div>MCP servers can opt out of tool-search deferral with <code>alwaysLoad: true</code> in their config so all of that server's tools are always available</div>
95 <div>New <code>claude plugin prune</code> removes orphaned auto-installed plugin dependencies, and `plugin uninstall --prune` cascades</div>
96 <div><code>/skills</code> now has a type-to-filter search box so you can find a skill in a long list without scrolling</div>
97 <div><code>PostToolUse</code> hooks can replace tool output for any tool via <code>hookSpecificOutput.updatedToolOutput</code>, not only MCP tools</div>
98 <div>New <a href="/docs/en/ultrareview"><code>claude ultrareview</code></a> subcommand runs <code>/ultrareview</code> non-interactively from CI or scripts: prints findings to stdout (`--json` for raw output) and exits 0 on completion or 1 on failure</div>
99 <div>`--dangerously-skip-permissions` now bypasses prompts for writes to <code>.claude/</code>, <code>.git/</code>, <code>.vscode/</code>, shell config files, and other previously protected paths, while catastrophic removal commands still prompt as a safety net</div>
100 <div>The <code>/model</code> picker can list models from your gateway's <code>/v1/models</code> endpoint when <code>ANTHROPIC\_BASE\_URL</code> points at an Anthropic-compatible gateway; opt in with <code>CLAUDE\_CODE\_ENABLE\_GATEWAY\_MODEL\_DISCOVERY=1</code> since v2.1.129</div>
101 <div>MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected</div>
102 <div><code>ANTHROPIC\_BEDROCK\_SERVICE\_TIER</code> selects an Amazon Bedrock service tier: <code>default</code>, <code>flex</code>, or <code>priority</code></div>
103 <div><code>/terminal-setup</code> enables iTerm2's clipboard access setting so <code>/copy</code> works, including from tmux</div>
104 <div>Google Cloud's Agent Platform now supports X.509 certificate-based Workload Identity Federation (mTLS ADC)</div>
105 <div>Significant memory leak fixes: image-heavy sessions, <code>/usage</code> on large transcript histories, and long-running tools without progress events</div>
106 </div>
107</div>
74MCP servers can opt out of tool-search deferral with `alwaysLoad: true` in their config so all of that server's tools are always availableNew `claude plugin prune` removes orphaned auto-installed plugin dependencies, and `plugin uninstall --prune` cascades`/skills` now has a type-to-filter search box so you can find a skill in a long list without scrolling`PostToolUse` hooks can replace tool output for any tool via `hookSpecificOutput.updatedToolOutput`, not only MCP toolsNew [`claude ultrareview`](/docs/en/ultrareview) subcommand runs `/ultrareview` non-interactively from CI or scripts: prints findings to stdout (`--json` for raw output) and exits 0 on completion or 1 on failure`--dangerously-skip-permissions` now bypasses prompts for writes to `.claude/`, `.git/`, `.vscode/`, shell config files, and other previously protected paths, while catastrophic removal commands still prompt as a safety netThe `/model` picker can list models from your gateway's `/v1/models` endpoint when `ANTHROPIC_BASE_URL` points at an Anthropic-compatible gateway; opt in with `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` since v2.1.129MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected`ANTHROPIC_BEDROCK_SERVICE_TIER` selects an Amazon Bedrock service tier: `default`, `flex`, or `priority``/terminal-setup` enables iTerm2's clipboard access setting so `/copy` works, including from tmuxGoogle Cloud's Agent Platform now supports X.509 certificate-based Workload Identity Federation (mTLS ADC)Significant memory leak fixes: image-heavy sessions, `/usage` on large transcript histories, and long-running tools without progress events
10875 
10976[Full changelog for v2.1.120–v2.1.126 →](/docs/en/changelog#2-1-120)
11077 

whats-new/2026-w19 Changed · +15 / -40 lines

from line 2
22 
33> Load plugins from .zip archives and URLs, search command history across every project with Ctrl+R, branch new worktrees from local HEAD or the remote default, and block actions unconditionally with auto mode hard deny rules.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-128">v2.1.128 → v2.1.136</a></span>
7 <span>2 features · May 4–8</span>
8</div>
5Releases [v2.1.128 → v2.1.136](/docs/en/changelog#2-1-128)
62 features · May 4–8
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Plugins from .zip archives and URLs</span>
13 </div>
8Plugins from .zip archives and URLs
149 
15 <p className="digest-feature-lede">`--plugin-dir` now accepts a <code>.zip</code> plugin archive in addition to a directory, and the new `--plugin-url` flag fetches a plugin archive from a URL for the current session. Useful for trying a plugin before adding it to a marketplace, or for shipping internal plugins from an artifact store.</p>
10`--plugin-dir` now accepts a `.zip` plugin archive in addition to a directory, and the new `--plugin-url` flag fetches a plugin archive from a URL for the current session. Useful for trying a plugin before adding it to a marketplace, or for shipping internal plugins from an artifact store.
1611 
17 <p className="digest-feature-try">Load a plugin straight from a URL:</p>
12Load a plugin straight from a URL:
1813 
19 ```bash terminal theme={null}
20 claude --plugin-url https://example.com/my-plugin.zip
21 ```
14```bash terminal theme={null}
15claude --plugin-url https://example.com/my-plugin.zip
16```
2217 
23 <a className="digest-feature-link" href="/docs/en/plugins/overview">Plugins guide</a>
24</div>
18[Plugins guide](/docs/en/plugins/overview)
2519 
26<div className="digest-feature">
27 <div className="digest-feature-header">
28 <span className="digest-feature-title">History search across all your projects</span>
29 <span className="digest-feature-pill">v2.1.129</span>
30 </div>
20History search across all your projects
21v2.1.129
3122 
32 <p className="digest-feature-lede"><code>Ctrl+R</code> reverse-search now defaults to all prompts across every project, restoring the behavior from before v2.1.124. Press <code>Ctrl+S</code> while searching to narrow back to the current project or session. Handy when you remember a command you ran in another repo last week and don't want to go digging for it.</p>
23`Ctrl+R` reverse-search now defaults to all prompts across every project, restoring the behavior from before v2.1.124. Press `Ctrl+S` while searching to narrow back to the current project or session. Handy when you remember a command you ran in another repo last week and don't want to go digging for it.
3324 
34 <a className="digest-feature-link" href="/docs/en/interactive-mode#command-history">Interactive mode: command history</a>
35</div>
25[Interactive mode: command history](/docs/en/interactive-mode#command-history)
3626 
37<div className="digest-wins">
38 <p className="digest-wins-title">Other wins</p>
27Other wins
3928 
40 <div className="digest-wins-grid">
41 <div>New <code>worktree.baseRef</code> setting (<code>fresh</code> | <code>head</code>) controls whether `--worktree`, the <code>EnterWorktree</code> tool, and agent-isolation worktrees branch from the remote default branch or local <code>HEAD</code>; the default <code>fresh</code> keeps unpushed commits out of new worktrees</div>
42 <div>New <code>settings.autoMode.hard\_deny</code> rules block matching actions unconditionally in auto mode, regardless of allow exceptions, for actions that should never run automatically even when broader allow rules apply</div>
43 <div>Hooks now receive the active effort level via the `effort.level` JSON input field and the `$CLAUDE_EFFORT` environment variable, and Bash tool commands can read <code>\$CLAUDE\_EFFORT</code></div>
44 <div><code>CLAUDE\_CODE\_DISABLE\_ALTERNATE\_SCREEN=1</code> opts out of the fullscreen alternate-screen renderer and keeps the conversation in the terminal's native scrollback</div>
45 <div><code>CLAUDE\_CODE\_PACKAGE\_MANAGER\_AUTO\_UPDATE</code> lets Homebrew or WinGet installations run the upgrade in the background and prompt to restart</div>
46 <div><code>CLAUDE\_CODE\_SESSION\_ID</code> is now in the Bash tool subprocess environment, matching the <code>session\_id</code> passed to hooks</div>
47 <div><code>/mcp</code> now shows the tool count for connected servers and flags servers that connected with 0 tools</div>
48 <div>`--channels` now works with console (API key) authentication</div>
49 <div>Subprocesses such as Bash, hooks, MCP, and LSP no longer inherit <code>OTEL\_\*</code> environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpoint</div>
50 <div>Sub-agent progress summaries now hit the prompt cache, cutting <code>cache\_creation</code> token cost by roughly 3x</div>
51 <div>Several OAuth and credential reliability fixes: parallel sessions no longer dead-end at 401 after a refresh-token race, MCP OAuth refresh tokens are no longer lost when multiple servers refresh concurrently, and a rare login loop from a concurrent credential write is fixed</div>
52 <div>New <code>parentSettingsBehavior</code> admin key lets admins opt SDK <code>managedSettings</code> into the policy merge</div>
53 </div>
54</div>
29New `worktree.baseRef` setting (`fresh` | `head`) controls whether `--worktree`, the `EnterWorktree` tool, and agent-isolation worktrees branch from the remote default branch or local `HEAD`; the default `fresh` keeps unpushed commits out of new worktreesNew `settings.autoMode.hard_deny` rules block matching actions unconditionally in auto mode, regardless of allow exceptions, for actions that should never run automatically even when broader allow rules applyHooks now receive the active effort level via the `effort.level` JSON input field and the `$CLAUDE_EFFORT` environment variable, and Bash tool commands can read `$CLAUDE_EFFORT``CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` opts out of the fullscreen alternate-screen renderer and keeps the conversation in the terminal's native scrollback`CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` lets Homebrew or WinGet installations run the upgrade in the background and prompt to restart`CLAUDE_CODE_SESSION_ID` is now in the Bash tool subprocess environment, matching the `session_id` passed to hooks`/mcp` now shows the tool count for connected servers and flags servers that connected with 0 tools`--channels` now works with console (API key) authenticationSubprocesses such as Bash, hooks, MCP, and LSP no longer inherit `OTEL_*` environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpointSub-agent progress summaries now hit the prompt cache, cutting `cache_creation` token cost by roughly 3xSeveral OAuth and credential reliability fixes: parallel sessions no longer dead-end at 401 after a refresh-token race, MCP OAuth refresh tokens are no longer lost when multiple servers refresh concurrently, and a rare login loop from a concurrent credential write is fixedNew `parentSettingsBehavior` admin key lets admins opt SDK `managedSettings` into the policy merge
5530 
5631[Full changelog for v2.1.128–v2.1.136 →](/docs/en/changelog#2-1-128)
5732 

whats-new/2026-w20 Changed · +31 / -65 lines

from line 2
22 
33> Manage every Claude Code session from one screen with agent view, keep Claude working toward a goal until a condition holds, and run fast mode on Opus 4.7 by default.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-139">v2.1.139 → v2.1.142</a></span>
7 <span>3 features · May 11–15</span>
8</div>
5Releases [v2.1.139 → v2.1.142](/docs/en/changelog#2-1-139)
63 features · May 11–15
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Agent view</span>
13 <span className="digest-feature-pill">research preview</span>
14 </div>
8Agent view
9research preview
1510 
16 <p className="digest-feature-lede"><code>claude agents</code> opens one screen for every Claude Code session: what's running, what's blocked on your input, and what's done. Dispatch a bug fix, a pull request review, and a flaky-test investigation as three rows, keep working in another window, and step in only when a row needs you. Attach to any row to drop into its full conversation, then press <code>←</code> to return to the list. Each background session keeps running without a terminal attached.</p>
11`claude agents` opens one screen for every Claude Code session: what's running, what's blocked on your input, and what's done. Dispatch a bug fix, a pull request review, and a flaky-test investigation as three rows, keep working in another window, and step in only when a row needs you. Attach to any row to drop into its full conversation, then press `←` to return to the list. Each background session keeps running without a terminal attached.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/agent-view.mp4?fit=max&auto=format&n=ITvjicPxe1SM3GX7&q=85&s=0eefe6cbe75464c8f7902bba630ab7a4" data-path="images/whats-new/agent-view.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/agent-view.mp4?fit=max&auto=format&n=ITvjicPxe1SM3GX7&q=85&s=0eefe6cbe75464c8f7902bba630ab7a4" />
2114 
22 <p className="digest-feature-try">Open the dashboard from your shell:</p>
15Open the dashboard from your shell:
2316 
24 ```bash terminal theme={null}
25 claude agents
26 ```
17```bash terminal theme={null}
18claude agents
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/agent-view">Agent view</a>
29</div>
21[Agent view](/docs/en/agent-view)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">/goal</span>
34 <span className="digest-feature-pill">v2.1.139</span>
35 </div>
23/goal
24v2.1.139
3625 
37 <p className="digest-feature-lede">Set a completion condition and Claude keeps working toward it across turns without you prompting each step. After every turn, a fast model checks whether the condition holds; if not, Claude starts another turn instead of handing control back. Useful for substantial work with a verifiable end state, like migrating a module until every call site compiles and tests pass. The goal clears once the condition is met, and works in interactive, <code>-p</code>, and Remote Control.</p>
26Set a completion condition and Claude keeps working toward it across turns without you prompting each step. After every turn, a fast model checks whether the condition holds; if not, Claude starts another turn instead of handing control back. Useful for substantial work with a verifiable end state, like migrating a module until every call site compiles and tests pass. The goal clears once the condition is met, and works in interactive, `-p`, and Remote Control.
3827 
39 <Frame>
40 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/goal.mp4?fit=max&auto=format&n=ITvjicPxe1SM3GX7&q=85&s=6806df3780c548b93a02d6fa71da276b" data-path="images/whats-new/goal.mp4" />
41 </Frame>
28<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/goal.mp4?fit=max&auto=format&n=ITvjicPxe1SM3GX7&q=85&s=6806df3780c548b93a02d6fa71da276b" />
4229 
43 <p className="digest-feature-try">Set a goal and let Claude run until it holds:</p>
30Set a goal and let Claude run until it holds:
4431 
45 ```text Claude Code theme={null}
46 > /goal all tests in test/auth pass and the lint step is clean
47 ```
32```text Claude Code theme={null}
33> /goal all tests in test/auth pass and the lint step is clean
34```
4835 
49 <a className="digest-feature-link" href="/docs/en/goal">Goals</a>
50</div>
36[Goals](/docs/en/goal)
5137 
52<div className="digest-feature">
53 <div className="digest-feature-header">
54 <span className="digest-feature-title">Fast mode on Opus 4.7</span>
55 <span className="digest-feature-pill">research preview</span>
56 </div>
38Fast mode on Opus 4.7
39research preview
5740 
58 <p className="digest-feature-lede"><code>/fast</code> now runs on Opus 4.7 by default instead of Opus 4.6. Fast mode is a high-speed Opus configuration: the same model quality at about 2.5x the speed for a higher per-token cost, useful for rapid iteration and live debugging. Pricing is unchanged at \$30/\$150 per MTok, the same as Opus 4.6 fast mode. To pin fast mode to Opus 4.6, set <code>CLAUDE\_CODE\_OPUS\_4\_6\_FAST\_MODE\_OVERRIDE=1</code>.</p>
41`/fast` now runs on Opus 4.7 by default instead of Opus 4.6. Fast mode is a high-speed Opus configuration: the same model quality at about 2.5x the speed for a higher per-token cost, useful for rapid iteration and live debugging. Pricing is unchanged at \$30/\$150 per MTok, the same as Opus 4.6 fast mode. To pin fast mode to Opus 4.6, set `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1`.
5942 
60 <Frame>
61 <img className="w-full" src="https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/fast-mode-opus-47.png?fit=max&auto=format&n=ITvjicPxe1SM3GX7&q=85&s=6b6d92f7748ce5328a1ee9a269fb1a87" alt="The Claude Code model picker showing Opus 4.7 Fast 1M as the default with the Fast toggle on" width="3840" height="2160" data-path="images/whats-new/fast-mode-opus-47.png" />
62 </Frame>
43![The Claude Code model picker showing Opus 4.7 Fast 1M as the default with the Fast toggle on](https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/fast-mode-opus-47.png?fit=max\&auto=format\&n=ITvjicPxe1SM3GX7\&q=85\&s=6b6d92f7748ce5328a1ee9a269fb1a87)
6344 
64 <p className="digest-feature-try">Toggle fast mode, now running on Opus 4.7:</p>
45Toggle fast mode, now running on Opus 4.7:
6546 
66 ```text Claude Code theme={null}
67 > /fast
68 ```
47```text Claude Code theme={null}
48> /fast
49```
6950 
70 <a className="digest-feature-link" href="/docs/en/fast-mode#understand-the-cost-tradeoff">Fast mode on Opus 4.7</a>
71</div>
51[Fast mode on Opus 4.7](/docs/en/fast-mode#understand-the-cost-tradeoff)
7252 
73<div className="digest-wins">
74 <p className="digest-wins-title">Other wins</p>
53Other wins
7554 
76 <div className="digest-wins-grid">
77 <div><code>claude agents</code> gained dispatch flags (`--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`) to configure background sessions, and `claude agents --cwd <path>` scopes the session list to a directory</div>
78 <div>New hook <code>args: string\[]</code> exec form spawns the command directly without a shell, so path placeholders never need quoting</div>
79 <div>New <code>continueOnBlock</code> config option for <code>PostToolUse</code> hooks feeds the hook's rejection reason back to Claude and continues the turn instead of ending it</div>
80 <div>New <code>terminalSequence</code> field in hook JSON output lets hooks emit desktop notifications, window titles, and bells without a controlling terminal</div>
81 <div>The Rewind menu added "Summarize up to here" to compress earlier context while keeping recent turns intact</div>
82 <div>Remote Control, <code>/schedule</code>, claude.ai MCP connectors, and notification preferences are now disabled when <code>ANTHROPIC\_API\_KEY</code>, <code>apiKeyHelper</code>, or <code>ANTHROPIC\_AUTH\_TOKEN</code> is set, even alongside a claude.ai login; unset the API key to use these features</div>
83 <div>MCP stdio servers now receive <code>CLAUDE\_PROJECT\_DIR</code> in their environment, matching hooks, and plugin configs can reference <code>\${"{"}CLAUDE\_PROJECT\_DIR{"}"}</code> in commands</div>
84 <div><code>claude plugin details \<name></code> shows a plugin's component inventory and projected per-session token cost, and the <code>/plugin</code> details pane now also lists the LSP servers a plugin provides</div>
85 <div>Plugins with a root-level <code>SKILL.md</code> and no <code>skills/</code> subdirectory are now surfaced as a skill</div>
86 <div><code>/feedback</code> can now include recent sessions from the last 24 hours or 7 days for issues spanning more than the current session</div>
87 <div>Agent tool <code>subagent\_type</code> now matches case- and separator-insensitively, so <code>"Code Reviewer"</code> resolves to <code>code-reviewer</code></div>
88 </div>
89</div>
55`claude agents` gained dispatch flags (`--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`) to configure background sessions, and `claude agents --cwd <path>` scopes the session list to a directoryNew hook `args: string[]` exec form spawns the command directly without a shell, so path placeholders never need quotingNew `continueOnBlock` config option for `PostToolUse` hooks feeds the hook's rejection reason back to Claude and continues the turn instead of ending itNew `terminalSequence` field in hook JSON output lets hooks emit desktop notifications, window titles, and bells without a controlling terminalThe Rewind menu added "Summarize up to here" to compress earlier context while keeping recent turns intactRemote Control, `/schedule`, claude.ai MCP connectors, and notification preferences are now disabled when `ANTHROPIC_API_KEY`, `apiKeyHelper`, or `ANTHROPIC_AUTH_TOKEN` is set, even alongside a claude.ai login; unset the API key to use these featuresMCP stdio servers now receive `CLAUDE_PROJECT_DIR` in their environment, matching hooks, and plugin configs can reference `${CLAUDE_PROJECT_DIR}` in commands`claude plugin details <name>` shows a plugin's component inventory and projected per-session token cost, and the `/plugin` details pane now also lists the LSP servers a plugin providesPlugins with a root-level `SKILL.md` and no `skills/` subdirectory are now surfaced as a skill`/feedback` can now include recent sessions from the last 24 hours or 7 days for issues spanning more than the current sessionAgent tool `subagent_type` now matches case- and separator-insensitively, so `"Code Reviewer"` resolves to `code-reviewer`
9056 
9157[Full changelog for v2.1.139–v2.1.142 →](/docs/en/changelog#2-1-139)
9258 

whats-new/2026-w21 Changed · +13 / -34 lines

from line 2
22 
33> Use auto mode on the Pro plan and with Sonnet 4.6, see which skills, subagents, and MCP servers drive your plan limits in /usage, and review diffs with the new /code-review command.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-143">v2.1.143 → v2.1.149</a></span>
7 <span>1 feature · May 18–22</span>
8</div>
5Releases [v2.1.143 → v2.1.149](/docs/en/changelog#2-1-143)
61 feature · May 18–22
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Auto mode on the Pro plan</span>
13 <span className="digest-feature-pill">CLI</span>
14 </div>
8Auto mode on the Pro plan
9CLI
1510 
16 <p className="digest-feature-lede">Auto mode is now available on the Pro plan and supports Sonnet 4.6 alongside Opus. It replaces permission prompts with background safety checks: routine actions run without interrupting you, and destructive or suspicious ones are blocked and surfaced.</p>
11Auto mode is now available on the Pro plan and supports Sonnet 4.6 alongside Opus. It replaces permission prompts with background safety checks: routine actions run without interrupting you, and destructive or suspicious ones are blocked and surfaced.
1712 
18 <p className="digest-feature-try">Update Claude Code, then cycle modes with Shift+Tab; auto mode appears in the cycle once your account meets the requirements:</p>
13Update Claude Code, then cycle modes with Shift+Tab; auto mode appears in the cycle once your account meets the requirements:
1914 
20 ```bash terminal theme={null}
21 claude update
22 ```
15```bash terminal theme={null}
16claude update
17```
2318 
24 <p className="digest-feature-try">The command prints <code>Successfully updated</code> with the new version number, or <code>Claude Code is up to date</code> if no update is needed. Once auto mode is active, the prompt footer shows <code>auto mode on</code>.</p>
19The command prints `Successfully updated` with the new version number, or `Claude Code is up to date` if no update is needed. Once auto mode is active, the prompt footer shows `auto mode on`.
2520 
26 <a className="digest-feature-link" href="/docs/en/permission-modes#eliminate-prompts-with-auto-mode">Auto mode requirements</a>
27</div>
21[Auto mode requirements](/docs/en/permission-modes#eliminate-prompts-with-auto-mode)
2822 
29<div className="digest-wins">
30 <p className="digest-wins-title">Other wins</p>
23Other wins
3124 
32 <div className="digest-wins-grid">
33 <div><a href="/docs/en/costs#track-your-costs"><code>/usage</code></a> now shows a per-category breakdown of what's driving your plan limits, attributing recent usage to skills, subagents, plugins, and individual MCP servers</div>
34 <div>"Extra usage" is renamed to "usage credits" across the CLI, and <code>/extra-usage</code> is now <code>/usage-credits</code>. The old name still works. The command requires signing in with your claude.ai subscription through <code>/login</code> and isn't available with API key authentication.</div>
35 <div>New <a href="/docs/en/code-review"><code>/code-review</code></a> command reports correctness bugs at a chosen effort level such as <code>/code-review high</code>, and `--comment` posts findings as inline GitHub PR comments. <code>/simplify</code> remains as a separate cleanup-only review.</div>
36 <div>Background sessions now appear in <code>/resume</code> alongside interactive ones, marked with <code>bg</code>, and sessions pinned with <code>Ctrl+T</code> in <code>claude agents</code> stay alive when idle</div>
37 <div>`claude agents --json` lists live sessions as JSON for scripting, such as status bars and session pickers</div>
38 <div>The PowerShell tool is now enabled by default on Windows for Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry users; opt out with <code>CLAUDE\_CODE\_USE\_POWERSHELL\_TOOL=0</code></div>
39 <div><code>claude plugin disable</code> now refuses when another enabled plugin depends on the target, and <code>claude plugin enable</code> force-enables transitive dependencies</div>
40 <div>The <code>/plugin</code> marketplace browse pane shows projected context cost, and the Discover and Browse screens list a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation</div>
41 <div>New <code>worktree.bgIsolation: "none"</code> setting lets background sessions edit the working copy directly without <code>EnterWorktree</code>, for repos where worktrees are impractical</div>
42 <div>Markdown output renders GFM task list checkboxes, and the <code>/diff</code> detail view scrolls with the keyboard</div>
43 <div>Status line JSON input now includes GitHub repo and PR information when detected</div>
44 <div>Enterprise: the <code>allowAllClaudeAiMcps</code> managed setting loads claude.ai cloud MCP connectors alongside <code>managed-mcp.json</code></div>
45 </div>
46</div>
25[`/usage`](/docs/en/costs#track-your-costs) now shows a per-category breakdown of what's driving your plan limits, attributing recent usage to skills, subagents, plugins, and individual MCP servers"Extra usage" is renamed to "usage credits" across the CLI, and `/extra-usage` is now `/usage-credits`. The old name still works. The command requires signing in with your claude.ai subscription through `/login` and isn't available with API key authentication.New [`/code-review`](/docs/en/code-review) command reports correctness bugs at a chosen effort level such as `/code-review high`, and `--comment` posts findings as inline GitHub PR comments. `/simplify` remains as a separate cleanup-only review\.Background sessions now appear in `/resume` alongside interactive ones, marked with `bg`, and sessions pinned with `Ctrl+T` in `claude agents` stay alive when idle`claude agents --json` lists live sessions as JSON for scripting, such as status bars and session pickersThe PowerShell tool is now enabled by default on Windows for Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry users; opt out with `CLAUDE_CODE_USE_POWERSHELL_TOOL=0``claude plugin disable` now refuses when another enabled plugin depends on the target, and `claude plugin enable` force-enables transitive dependenciesThe `/plugin` marketplace browse pane shows projected context cost, and the Discover and Browse screens list a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installationNew `worktree.bgIsolation: "none"` setting lets background sessions edit the working copy directly without `EnterWorktree`, for repos where worktrees are impracticalMarkdown output renders GFM task list checkboxes, and the `/diff` detail view scrolls with the keyboardStatus line JSON input now includes GitHub repo and PR information when detectedEnterprise: the `allowAllClaudeAiMcps` managed setting loads claude.ai cloud MCP connectors alongside `managed-mcp.json`
4726 
4827[Full changelog for v2.1.143–v2.1.149 →](/docs/en/changelog#2-1-143)
4928 

whats-new/2026-w22 Changed · +43 / -82 lines

from line 2
22 
33> Run Claude Code on Claude Opus 4.8, orchestrate large tasks with dynamic workflows, catch security issues with the security-guidance plugin, and use fast mode on Opus 4.8 at a lower price.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-150">v2.1.150 → v2.1.157</a></span>
7 <span>4 features · May 25–29</span>
8</div>
5Releases [v2.1.150 → v2.1.157](/docs/en/changelog#2-1-150)
64 features · May 25–29
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Claude Opus 4.8</span>
13 <span className="digest-feature-pill">new model</span>
14 </div>
8Claude Opus 4.8
9new model
1510 
16 <p className="digest-feature-lede">Opus 4.8 is now the default on Max, Team Premium, Enterprise pay-as-you-go, and the Anthropic API. It defaults to high effort; use <code>/effort xhigh</code> for harder tasks. Requires v2.1.154 or later.</p>
11Opus 4.8 is now the default on Max, Team Premium, Enterprise pay-as-you-go, and the Anthropic API. It defaults to high effort; use `/effort xhigh` for harder tasks. Requires v2.1.154 or later.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/opus-4-8.mp4?fit=max&auto=format&n=QsIrGXGFg6xd7joy&q=85&s=6ebcf5fe136467da2b254de1fe749ea7" data-path="images/whats-new/opus-4-8.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/opus-4-8.mp4?fit=max&auto=format&n=QsIrGXGFg6xd7joy&q=85&s=6ebcf5fe136467da2b254de1fe749ea7" />
2114 
22 <p className="digest-feature-try">Switch to Opus 4.8 by name, or pick it from the model picker:</p>
15Switch to Opus 4.8 by name, or pick it from the model picker:
2316 
24 ```text title="Claude Code" wrap theme={null}
25 /model claude-opus-4-8
26 ```
17```text title="Claude Code" wrap theme={null}
18/model claude-opus-4-8
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/model-config#available-models">Model configuration</a>
29</div>
21[Model configuration](/docs/en/model-config#available-models)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">Dynamic workflows</span>
34 <span className="digest-feature-pill">research preview</span>
35 </div>
23Dynamic workflows
24research preview
3625 
37 <p className="digest-feature-lede">A workflow is an orchestration script Claude writes for your task and runs across many subagents in the background. Use one when a task is too large for one conversation to coordinate: a codebase-wide audit, a large migration, a research question that needs cross-checking. Manage runs with <code>/workflows</code>.</p>
26A workflow is an orchestration script Claude writes for your task and runs across many subagents in the background. Use one when a task is too large for one conversation to coordinate: a codebase-wide audit, a large migration, a research question that needs cross-checking. Manage runs with `/workflows`.
3827 
39 <Frame>
40 <img className="w-full" src="https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/dynamic-workflows.png?fit=max&auto=format&n=QsIrGXGFg6xd7joy&q=85&s=26671fa8607cec3453ed9753f821bd4f" alt="Claude Code on Opus 4.8 showing a Dynamic workflow requested indicator for a prompt that asks for a workflow to migrate every internal fetch() call" width="3840" height="2160" data-path="images/whats-new/dynamic-workflows.png" />
41 </Frame>
28![Claude Code on Opus 4.8 showing a Dynamic workflow requested indicator for a prompt that asks for a workflow to migrate every internal fetch() call](https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/dynamic-workflows.png?fit=max\&auto=format\&n=QsIrGXGFg6xd7joy\&q=85\&s=26671fa8607cec3453ed9753f821bd4f)
4229 
43 <p className="digest-feature-try">Describe the task and ask for a workflow:</p>
30Describe the task and ask for a workflow:
4431 
45 ```text title="Claude Code" wrap theme={null}
46 create a workflow that migrates every internal fetch() call to the new HttpClient wrapper
47 ```
32```text title="Claude Code" wrap theme={null}
33create a workflow that migrates every internal fetch() call to the new HttpClient wrapper
34```
4835 
49 <a className="digest-feature-link" href="/docs/en/workflows">Dynamic workflows</a>
50</div>
36[Dynamic workflows](/docs/en/workflows)
5137 
52<div className="digest-feature">
53 <div className="digest-feature-header">
54 <span className="digest-feature-title">Security guidance plugin</span>
55 <span className="digest-feature-pill">plugin</span>
56 </div>
38Security guidance plugin
39plugin
5740 
58 <p className="digest-feature-lede">The security-guidance plugin reviews Claude's code changes for vulnerabilities and fixes them in the same session. It runs a fast pattern check on each edit, a model review at the end of each turn, and a deeper agentic review on commit or push. Add project rules in <code>.claude/claude-security-guidance.md</code>.</p>
41The security-guidance plugin reviews Claude's code changes for vulnerabilities and fixes them in the same session. It runs a fast pattern check on each edit, a model review at the end of each turn, and a deeper agentic review on commit or push. Add project rules in `.claude/claude-security-guidance.md`.
5942 
60 <Frame>
61 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/security-guidance.mp4?fit=max&auto=format&n=QsIrGXGFg6xd7joy&q=85&s=c91d865936411586f42b24c558bcdd1d" data-path="images/whats-new/security-guidance.mp4" />
62 </Frame>
43<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/QsIrGXGFg6xd7joy/images/whats-new/security-guidance.mp4?fit=max&auto=format&n=QsIrGXGFg6xd7joy&q=85&s=c91d865936411586f42b24c558bcdd1d" />
6344 
64 <p className="digest-feature-try">Install it from the official Anthropic marketplace:</p>
45Install it from the official Anthropic marketplace:
6546 
66 ```text title="Claude Code" wrap theme={null}
67 /plugin install security-guidance@claude-plugins-official
68 ```
47```text title="Claude Code" wrap theme={null}
48/plugin install security-guidance@claude-plugins-official
49```
6950 
70 <p className="digest-feature-try">Then activate it in the current session:</p>
51Then activate it in the current session:
7152 
72 ```text title="Claude Code" wrap theme={null}
73 /reload-plugins
74 ```
53```text title="Claude Code" wrap theme={null}
54/reload-plugins
55```
7556 
76 <a className="digest-feature-link" href="/docs/en/security-guidance">Security guidance plugin</a>
77</div>
57[Security guidance plugin](/docs/en/security-guidance)
7858 
79<div className="digest-feature">
80 <div className="digest-feature-header">
81 <span className="digest-feature-title">Fast mode on Opus 4.8</span>
82 <span className="digest-feature-pill">research preview</span>
83 </div>
59Fast mode on Opus 4.8
60research preview
8461 
85 <p className="digest-feature-lede">Fast mode now defaults to Opus 4.8 at \$10/\$50 per MTok: 2x the standard rate for about 2.5x the speed. Opus 4.7 and 4.6 stay at \$30/\$150. Opus 4.6 fast mode is deprecated.</p>
62Fast mode now defaults to Opus 4.8 at \$10/\$50 per MTok: 2x the standard rate for about 2.5x the speed. Opus 4.7 and 4.6 stay at \$30/\$150. Opus 4.6 fast mode is deprecated.
8663 
87 <p className="digest-feature-try">Toggle fast mode, now on Opus 4.8:</p>
64Toggle fast mode, now on Opus 4.8:
8865 
89 ```text title="Claude Code" wrap theme={null}
90 /fast
91 ```
66```text title="Claude Code" wrap theme={null}
67/fast
68```
9269 
93 <a className="digest-feature-link" href="/docs/en/fast-mode#understand-the-cost-tradeoff">Fast mode pricing</a>
94</div>
70[Fast mode pricing](/docs/en/fast-mode#understand-the-cost-tradeoff)
9571 
96<div className="digest-wins">
97 <p className="digest-wins-title">Other wins</p>
72Other wins
9873 
99 <div className="digest-wins-grid">
100 <div>In <code>claude agents</code>, prefix a shell command with <code>!</code> to run it as a background job you can attach to and detach from; also available as `claude --bg --exec 'pytest -x'`</div>
101 <div>Plugins in <code>.claude/skills</code> directories are now loaded automatically, no marketplace required, and <code>claude plugin init \<name></code> scaffolds a new plugin</div>
102 <div>New <code>/reload-skills</code> command re-scans skill directories without restarting, and <code>SessionStart</code> hooks can return <code>reloadSkills: true</code> to make skills they install available in the same session</div>
103 <div>Skills and commands can set <code>disallowed-tools</code> in frontmatter to remove tools from the model while the skill is active</div>
104 <div>New <code>MessageDisplay</code> hook event lets hooks transform or hide assistant message text as it is displayed</div>
105 <div>Claude Code now switches to your configured `--fallback-model` for the rest of the session when the primary model is not found, instead of failing every request</div>
106 <div>Plugins can declare <code>defaultEnabled: false</code> in <code>plugin.json</code> or a marketplace entry, so they install without turning on until you enable them</div>
107 <div>Vim mode: <code>/</code> in NORMAL mode opens reverse history search, matching Bash and Zsh vi-mode</div>
108 <div>Streaming tool execution is now always enabled, including with telemetry disabled and on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry</div>
109 <div><code>←←</code> to open the agents view now works on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and with telemetry disabled</div>
110 <div>Claude in Chrome: pick which connected browser to use via <code>/chrome</code> → "Select browser…", or in-chat when a browser action runs with multiple connected</div>
111 <div><code>claude mcp list</code> and <code>claude mcp get</code> now show unapproved <code>.mcp.json</code> servers as pending approval instead of auto-approving and connecting when output is piped</div>
112 </div>
113</div>
74In `claude agents`, prefix a shell command with `!` to run it as a background job you can attach to and detach from; also available as `claude --bg --exec 'pytest -x'`Plugins in `.claude/skills` directories are now loaded automatically, no marketplace required, and `claude plugin init <name>` scaffolds a new pluginNew `/reload-skills` command re-scans skill directories without restarting, and `SessionStart` hooks can return `reloadSkills: true` to make skills they install available in the same sessionSkills and commands can set `disallowed-tools` in frontmatter to remove tools from the model while the skill is activeNew `MessageDisplay` hook event lets hooks transform or hide assistant message text as it is displayedClaude Code now switches to your configured `--fallback-model` for the rest of the session when the primary model is not found, instead of failing every requestPlugins can declare `defaultEnabled: false` in `plugin.json` or a marketplace entry, so they install without turning on until you enable themVim mode: `/` in NORMAL mode opens reverse history search, matching Bash and Zsh vi-modeStreaming tool execution is now always enabled, including with telemetry disabled and on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry`←←` to open the agents view now works on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and with telemetry disabledClaude in Chrome: pick which connected browser to use via `/chrome` → "Select browser…", or in-chat when a browser action runs with multiple connected`claude mcp list` and `claude mcp get` now show unapproved `.mcp.json` servers as pending approval instead of auto-approving and connecting when output is piped
11475 
11576[Full changelog for v2.1.150–v2.1.157 →](/docs/en/changelog#2-1-150)
11677 

whats-new/2026-w23 Changed · +38 / -70 lines

from line 2
22 
33> Run auto mode on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, prompt before writing files that can run code in acceptEdits mode, list installed plugins with /plugin list, and require an approved version range for managed deployments.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-158">v2.1.158 → v2.1.165</a></span>
7 <span>4 features · June 1–5</span>
8</div>
5Releases [v2.1.158 → v2.1.165](/docs/en/changelog#2-1-158)
64 features · June 1–5
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Auto mode on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry</span>
13 <span className="digest-feature-pill">v2.1.158</span>
14 </div>
8Auto mode on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry
9v2.1.158
1510 
16 <p className="digest-feature-lede">Auto mode is now available on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry for Opus 4.7 and Opus 4.8, replacing permission prompts with background safety checks on third-party providers. Opt in by setting <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE=1</code>.</p>
11Auto mode is now available on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry for Opus 4.7 and Opus 4.8, replacing permission prompts with background safety checks on third-party providers. Opt in by setting `CLAUDE_CODE_ENABLE_AUTO_MODE=1`.
1712 
18 <p className="digest-feature-try">Opt in on a third-party provider, then cycle to auto mode with Shift+Tab:</p>
13Opt in on a third-party provider, then cycle to auto mode with Shift+Tab:
1914 
20 ```bash terminal theme={null}
21 export CLAUDE_CODE_ENABLE_AUTO_MODE=1
22 ```
15```bash terminal theme={null}
16export CLAUDE_CODE_ENABLE_AUTO_MODE=1
17```
2318 
24 <a className="digest-feature-link" href="/docs/en/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry">Auto mode on third-party providers</a>
25</div>
19[Auto mode on third-party providers](/docs/en/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)
2620 
27<div className="digest-feature">
28 <div className="digest-feature-header">
29 <span className="digest-feature-title">Safer automatic edits</span>
30 <span className="digest-feature-pill">v2.1.160</span>
31 </div>
21Safer automatic edits
22v2.1.160
3223 
33 <p className="digest-feature-lede">Claude Code now prompts before writing files that can run code, even in <code>acceptEdits</code> mode. The protected set covers shell startup files such as <code>.zshenv</code> and <code>.bash\_login</code>, git config under <code>\~/.config/git/</code>, and build-tool configs such as <code>.npmrc</code>, <code>.bazelrc</code>, and <code>.pre-commit-config.yaml</code>. These writes are never auto-approved in any mode except <code>bypassPermissions</code>.</p>
24Claude Code now prompts before writing files that can run code, even in `acceptEdits` mode. The protected set covers shell startup files such as `.zshenv` and `.bash_login`, git config under `~/.config/git/`, and build-tool configs such as `.npmrc`, `.bazelrc`, and `.pre-commit-config.yaml`. These writes are never auto-approved in any mode except `bypassPermissions`.
3425 
35 <p className="digest-feature-try">Work in acceptEdits mode; Claude now pauses before writing these files:</p>
26Work in acceptEdits mode; Claude now pauses before writing these files:
3627 
37 ```bash terminal theme={null}
38 claude --permission-mode acceptEdits
39 ```
28```bash terminal theme={null}
29claude --permission-mode acceptEdits
30```
4031 
41 <a className="digest-feature-link" href="/docs/en/permission-modes#protected-paths">Protected paths</a>
42</div>
32[Protected paths](/docs/en/permission-modes#protected-paths)
4333 
44<div className="digest-feature">
45 <div className="digest-feature-header">
46 <span className="digest-feature-title">List installed plugins with /plugin list</span>
47 <span className="digest-feature-pill">v2.1.163</span>
48 </div>
34List installed plugins with /plugin list
35v2.1.163
4936 
50 <p className="digest-feature-lede">The new <code>/plugin list</code> command prints your installed plugins inline, without opening the <code>/plugin</code> menu, and is also available as <code>claude plugin list</code> from the shell. In the interactive form, add `--enabled` or `--disabled` to show only plugins in that state.</p>
37The new `/plugin list` command prints your installed plugins inline, without opening the `/plugin` menu, and is also available as `claude plugin list` from the shell. In the interactive form, add `--enabled` or `--disabled` to show only plugins in that state.
5138 
52 <p className="digest-feature-try">List the plugins that are currently turned on:</p>
39List the plugins that are currently turned on:
5340 
54 ```text Claude Code theme={null}
55 > /plugin list --enabled
56 ```
41```text Claude Code theme={null}
42> /plugin list --enabled
43```
5744 
58 <a className="digest-feature-link" href="/docs/en/plugins/cli-reference#plugin-list">Plugin commands</a>
59</div>
45[Plugin commands](/docs/en/plugins/cli-reference#plugin-list)
6046 
61<div className="digest-feature">
62 <div className="digest-feature-header">
63 <span className="digest-feature-title">Version requirements for managed deployments</span>
64 <span className="digest-feature-pill">v2.1.163</span>
65 </div>
47Version requirements for managed deployments
48v2.1.163
6649 
67 <p className="digest-feature-lede">Two managed settings, <code>requiredMinimumVersion</code> and <code>requiredMaximumVersion</code>, let your organization require an approved Claude Code version range. A client outside the range exits at startup and tells the user to update through the organization's method. <code>claude update</code>, <code>claude install</code>, and <code>claude doctor</code> keep working so users can still recover.</p>
50Two managed settings, `requiredMinimumVersion` and `requiredMaximumVersion`, let your organization require an approved Claude Code version range. A client outside the range exits at startup and tells the user to update through the organization's method. `claude update`, `claude install`, and `claude doctor` keep working so users can still recover.
6851 
69 <p className="digest-feature-try">Add a floor to your managed settings so older clients refuse to start:</p>
52Add a floor to your managed settings so older clients refuse to start:
7053 
71 ```json managed-settings.json theme={null}
72 {
73 "requiredMinimumVersion": "2.1.163"
74 }
75 ```
54```json managed-settings.json theme={null}
55{
56 "requiredMinimumVersion": "2.1.163"
57}
58```
7659 
77 <a className="digest-feature-link" href="/docs/en/admin-setup#decide-what-to-enforce">Decide what to enforce</a>
78</div>
60[Decide what to enforce](/docs/en/admin-setup#decide-what-to-enforce)
7961 
80<div className="digest-wins">
81 <p className="digest-wins-title">Other wins</p>
62Other wins
8263 
83 <div className="digest-wins-grid">
84 <div>The trigger keyword for <a href="/docs/en/workflows">dynamic workflows</a> changed from <code>workflow</code> to <code>ultracode</code>; asking for a workflow in your own words still works, and the keyword is highlighted in violet in the prompt</div>
85 <div><a href="/docs/en/hooks">Stop and SubagentStop hooks</a> can return <code>hookSpecificOutput.additionalContext</code> to give Claude feedback and keep the turn going instead of being treated as an error</div>
86 <div><code>claude mcp</code> list, get, and add no longer print secrets: environment-variable references are not expanded, and credential headers and URL secrets are redacted</div>
87 <div>A failed Bash command in a parallel tool batch no longer cancels the others; each tool returns its own result independently</div>
88 <div>Editing a file no longer needs a separate Read first when you viewed it with a single-file <code>grep</code>, <code>egrep</code>, or <code>fgrep</code></div>
89 <div>Clicking a command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to run</div>
90 <div>Listing <code>Grep</code> or <code>Glob</code> in `--tools` now provides the dedicated search tools on native builds with embedded search, instead of silently ignoring those names</div>
91 <div><code>/effort</code> now confirms when your chosen level will persist as the default for new sessions</div>
92 <div><code>OTEL\_RESOURCE\_ATTRIBUTES</code> values are now attached as labels on metric datapoints, so you can slice usage metrics by custom dimensions like team or repo</div>
93 <div>Windsurf is renamed to Devin Desktop in <code>/ide</code>, <code>/terminal-setup</code>, and <code>/scroll-speed</code>, following the editor's rebrand</div>
94 <div><code>/btw</code> gains a <code>c to copy</code> shortcut that copies the raw markdown answer to the clipboard</div>
95 </div>
96</div>
64The trigger keyword for [dynamic workflows](/docs/en/workflows) changed from `workflow` to `ultracode`; asking for a workflow in your own words still works, and the keyword is highlighted in violet in the prompt[Stop and SubagentStop hooks](/docs/en/hooks) can return `hookSpecificOutput.additionalContext` to give Claude feedback and keep the turn going instead of being treated as an error`claude mcp` list, get, and add no longer print secrets: environment-variable references are not expanded, and credential headers and URL secrets are redactedA failed Bash command in a parallel tool batch no longer cancels the others; each tool returns its own result independentlyEditing a file no longer needs a separate Read first when you viewed it with a single-file `grep`, `egrep`, or `fgrep`Clicking a command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to runListing `Grep` or `Glob` in `--tools` now provides the dedicated search tools on native builds with embedded search, instead of silently ignoring those names`/effort` now confirms when your chosen level will persist as the default for new sessions`OTEL_RESOURCE_ATTRIBUTES` values are now attached as labels on metric datapoints, so you can slice usage metrics by custom dimensions like team or repoWindsurf is renamed to Devin Desktop in `/ide`, `/terminal-setup`, and `/scroll-speed`, following the editor's rebrand`/btw` gains a `c to copy` shortcut that copies the raw markdown answer to the clipboard
9765 
9866[Full changelog for v2.1.158–v2.1.165 →](/docs/en/changelog#2-1-158)
9967 

whats-new/2026-w24 Changed · +28 / -57 lines

from line 2
22 
33> Move a session to a new directory with /cd, let subagents spawn their own subagents, and troubleshoot a broken configuration with safe mode.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-166">v2.1.166 → v2.1.176</a></span>
7 <span>3 features · June 8–12</span>
8</div>
5Releases [v2.1.166 → v2.1.176](/docs/en/changelog#2-1-166)
63 features · June 8–12
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Move a session with /cd</span>
13 <span className="digest-feature-pill">v2.1.169</span>
14 </div>
8Move a session with /cd
9v2.1.169
1510 
16 <p className="digest-feature-lede">The new <code>/cd</code> command moves the current session to a different working directory without rebuilding the prompt cache: the new directory's <code>CLAUDE.md</code> is appended as a message instead of replacing the system prompt. The session relocates to the new directory's project storage, so `--resume` and `--continue` find it there. Claude prompts you to trust the directory if you haven't worked in it before.</p>
11The new `/cd` command moves the current session to a different working directory without rebuilding the prompt cache: the new directory's `CLAUDE.md` is appended as a message instead of replacing the system prompt. The session relocates to the new directory's project storage, so `--resume` and `--continue` find it there. Claude prompts you to trust the directory if you haven't worked in it before.
1712 
18 <p className="digest-feature-try">Move the session into another project without restarting:</p>
13Move the session into another project without restarting:
1914 
20 ```text Claude Code theme={null}
21 > /cd ../other-project
22 ```
15```text Claude Code theme={null}
16> /cd ../other-project
17```
2318 
24 <a className="digest-feature-link" href="/docs/en/commands#all-commands">Commands reference</a>
25</div>
19[Commands reference](/docs/en/commands#all-commands)
2620 
27<div className="digest-feature">
28 <div className="digest-feature-header">
29 <span className="digest-feature-title">Subagents can spawn subagents</span>
30 <span className="digest-feature-pill">v2.1.172</span>
31 </div>
21Subagents can spawn subagents
22v2.1.172
3223 
33 <p className="digest-feature-lede">Subagents can now spawn their own subagents. The subagent panel below the prompt shows the full tree: each row carries a count of its descendants and a path back to <code>main</code>. Subagent chains are capped at five levels deep to prevent runaway concurrent trees.</p>
24Subagents can now spawn their own subagents. The subagent panel below the prompt shows the full tree: each row carries a count of its descendants and a path back to `main`. Subagent chains are capped at five levels deep to prevent runaway concurrent trees.
3425 
35 <p className="digest-feature-try">Open the agents view to watch the nested tree as work fans out:</p>
26Open the agents view to watch the nested tree as work fans out:
3627 
37 ```text Claude Code theme={null}
38 > /agents
39 ```
28```text Claude Code theme={null}
29> /agents
30```
4031 
41 <a className="digest-feature-link" href="/docs/en/sub-agents#let-subagents-spawn-their-own-subagents">Spawn nested subagents</a>
42</div>
32[Spawn nested subagents](/docs/en/sub-agents#let-subagents-spawn-their-own-subagents)
4333 
44<div className="digest-feature">
45 <div className="digest-feature-header">
46 <span className="digest-feature-title">Troubleshoot with safe mode</span>
47 <span className="digest-feature-pill">v2.1.169</span>
48 </div>
34Troubleshoot with safe mode
35v2.1.169
4936 
50 <p className="digest-feature-lede">Start Claude Code with `--safe-mode`, or set <code>CLAUDE\_CODE\_SAFE\_MODE</code>, to launch with all customizations disabled: <code>CLAUDE.md</code>, skills, plugins, hooks, MCP servers, and custom commands and agents do not load. Authentication, model selection, built-in tools, and permissions still work. If a problem disappears in safe mode, one of those surfaces is the cause.</p>
37Start Claude Code with `--safe-mode`, or set `CLAUDE_CODE_SAFE_MODE`, to launch with all customizations disabled: `CLAUDE.md`, skills, plugins, hooks, MCP servers, and custom commands and agents do not load. Authentication, model selection, built-in tools, and permissions still work. If a problem disappears in safe mode, one of those surfaces is the cause.
5138 
52 <p className="digest-feature-try">Launch a clean session to isolate a broken configuration:</p>
39Launch a clean session to isolate a broken configuration:
5340 
54 ```bash terminal theme={null}
55 claude --safe-mode
56 ```
41```bash terminal theme={null}
42claude --safe-mode
43```
5744 
58 <a className="digest-feature-link" href="/docs/en/debug-your-config#test-against-a-clean-configuration">Test against a clean configuration</a>
59</div>
45[Test against a clean configuration](/docs/en/debug-your-config#test-against-a-clean-configuration)
6046 
61<div className="digest-wins">
62 <p className="digest-wins-title">Other wins</p>
47Other wins
6348 
64 <div className="digest-wins-grid">
65 <div><a href="/docs/en/model-config#fallback-model-chains"><code>fallbackModel</code></a> configures up to three fallback models tried in order when the primary is overloaded or unavailable, and `--fallback-model` now applies to interactive sessions too</div>
66 <div>Session titles are now generated in the language of your conversation; pin a specific one with the <code>language</code> setting</div>
67 <div>`claude agents --json` adds `--all` to include completed sessions plus new <code>id</code> and <code>state</code> fields, and no longer omits blocked or newly dispatched sessions</div>
68 <div>Browsing a marketplace's plugins in <code>/plugin</code> now has a search bar</div>
69 <div>New <code>disableBundledSkills</code> setting and <code>CLAUDE\_CODE\_DISABLE\_BUNDLED\_SKILLS</code> hide bundled skills, workflows, and built-in commands from the model</div>
70 <div>Deny rules accept a glob in the tool-name position, so <code>"\*"</code> denies all tools, and unknown tool names in deny rules now warn at startup</div>
71 <div>Agent messaging is hardened: messages relayed via <code>SendMessage</code> from other agents no longer carry user authority, and auto mode blocks them</div>
72 <div>Amazon Bedrock reads the AWS region from <code>\~/.aws</code> config files when <code>AWS\_REGION</code> is unset, and <code>/status</code> shows where the region came from</div>
73 <div>New <code>enforceAvailableModels</code> managed setting makes the <code>availableModels</code> allowlist also constrain the Default model</div>
74 <div>Claude in Chrome browser tools now load in a single batched call instead of one per tool</div>
75 <div><code>claude update</code> announces the target version before downloading instead of going silent</div>
76 <div>New <code>footerLinksRegexes</code> setting adds regex-matched link badges to the footer row</div>
77 </div>
78</div>
49[`fallbackModel`](/docs/en/model-config#fallback-model-chains) configures up to three fallback models tried in order when the primary is overloaded or unavailable, and `--fallback-model` now applies to interactive sessions tooSession titles are now generated in the language of your conversation; pin a specific one with the `language` setting`claude agents --json` adds `--all` to include completed sessions plus new `id` and `state` fields, and no longer omits blocked or newly dispatched sessionsBrowsing a marketplace's plugins in `/plugin` now has a search barNew `disableBundledSkills` setting and `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` hide bundled skills, workflows, and built-in commands from the modelDeny rules accept a glob in the tool-name position, so `"*"` denies all tools, and unknown tool names in deny rules now warn at startupAgent messaging is hardened: messages relayed via `SendMessage` from other agents no longer carry user authority, and auto mode blocks themAmazon Bedrock reads the AWS region from `~/.aws` config files when `AWS_REGION` is unset, and `/status` shows where the region came fromNew `enforceAvailableModels` managed setting makes the `availableModels` allowlist also constrain the Default modelClaude in Chrome browser tools now load in a single batched call instead of one per tool`claude update` announces the target version before downloading instead of going silentNew `footerLinksRegexes` setting adds regex-matched link badges to the footer row
7950 
8051[Full changelog for v2.1.166–v2.1.176 →](/docs/en/changelog#2-1-166)
8152 

whats-new/2026-w25 Changed · +31 / -61 lines

from line 2
22 
33> Publish a live, shareable page from your session with Artifacts, match tool parameters in deny and ask rules, and set any setting from the prompt with /config.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-178">v2.1.178 → v2.1.183</a></span>
7 <span>3 features · June 15–19</span>
8</div>
5Releases [v2.1.178 → v2.1.183](/docs/en/changelog#2-1-178)
63 features · June 15–19
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Artifacts</span>
13 </div>
8Artifacts
149 
15 <p className="digest-feature-lede">An artifact is a live, interactive page that Claude Code publishes from your session to a private URL on claude.ai, and it updates in place as the session keeps working. Ask for one when terminal text is the wrong medium, such as a PR walkthrough with the diff annotated inline or a dashboard built from session data. Artifacts are in beta on Team and Enterprise plans.</p>
10An artifact is a live, interactive page that Claude Code publishes from your session to a private URL on claude.ai, and it updates in place as the session keeps working. Ask for one when terminal text is the wrong medium, such as a PR walkthrough with the diff annotated inline or a dashboard built from session data. Artifacts are in beta on Team and Enterprise plans.
1611 
17 <Frame>
18 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/1ylKDoQynT1UgfEK/images/whats-new/artifacts.mp4?fit=max&auto=format&n=1ylKDoQynT1UgfEK&q=85&s=7f5391559d2bc69989621b36322fcff1" data-path="images/whats-new/artifacts.mp4" />
19 </Frame>
12<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/1ylKDoQynT1UgfEK/images/whats-new/artifacts.mp4?fit=max&auto=format&n=1ylKDoQynT1UgfEK&q=85&s=7f5391559d2bc69989621b36322fcff1" />
2013 
21 <p className="digest-feature-try">Ask Claude for a page, then approve the publish prompt:</p>
14Ask Claude for a page, then approve the publish prompt:
2215 
23 ```text title="Claude Code" wrap theme={null}
24 Make an artifact that walks through this PR with the diff annotated inline.
25 ```
16```text title="Claude Code" wrap theme={null}
17Make an artifact that walks through this PR with the diff annotated inline.
18```
2619 
27 <a className="digest-feature-link" href="/docs/en/artifacts#create-an-artifact">Create an artifact</a>
28</div>
20[Create an artifact](/docs/en/artifacts#create-an-artifact)
2921 
30<div className="digest-feature">
31 <div className="digest-feature-header">
32 <span className="digest-feature-title">Match by input parameter</span>
33 <span className="digest-feature-pill">v2.1.178</span>
34 </div>
22Match by input parameter
23v2.1.178
3524 
36 <p className="digest-feature-lede">Deny and ask permission rules can now match a tool's input parameters with the <code>Tool(param:value)</code> syntax. For example, <code>Agent(model:opus)</code> matches subagent spawns that request the Opus model tier. The value accepts `*` as a wildcard, so `Agent(isolation:*)` matches any explicit isolation value.</p>
25Deny and ask permission rules can now match a tool's input parameters with the `Tool(param:value)` syntax. For example, `Agent(model:opus)` matches subagent spawns that request the Opus model tier. The value accepts `*` as a wildcard, so `Agent(isolation:*)` matches any explicit isolation value.
3726 
38 <p className="digest-feature-try">Add a parameter rule to the deny list in <code>settings.json</code>:</p>
27Add a parameter rule to the deny list in `settings.json`:
3928 
40 ```json .claude/settings.json {3} theme={null}
41 {
42 "permissions": {
43 "deny": ["Agent(model:opus)"]
44 }
29```json .claude/settings.json {3} theme={null}
30{
31 "permissions": {
32 "deny": ["Agent(model:opus)"]
4533 }
46 ```
34}
35```
4736 
48 <a className="digest-feature-link" href="/docs/en/permissions#match-by-input-parameter">Match by input parameter</a>
49</div>
37[Match by input parameter](/docs/en/permissions#match-by-input-parameter)
5038 
51<div className="digest-feature">
52 <div className="digest-feature-header">
53 <span className="digest-feature-title">Set any setting from the prompt</span>
54 <span className="digest-feature-pill">v2.1.181</span>
55 </div>
39Set any setting from the prompt
40v2.1.181
5641 
57 <p className="digest-feature-lede">Pass <code>key=value</code> to <code>/config</code> to change a setting directly without opening the Settings interface. The syntax also works in non-interactive mode with the <code>-p</code> flag and from Remote Control.</p>
42Pass `key=value` to `/config` to change a setting directly without opening the Settings interface. The syntax also works in non-interactive mode with the `-p` flag and from Remote Control.
5843 
59 <p className="digest-feature-try">Set the <code>thinking</code> setting from the prompt:</p>
44Set the `thinking` setting from the prompt:
6045 
61 ```text title="Claude Code" wrap theme={null}
62 /config thinking=false
63 ```
46```text title="Claude Code" wrap theme={null}
47/config thinking=false
48```
6449 
65 <a className="digest-feature-link" href="/docs/en/commands#all-commands">Commands reference</a>
66</div>
50[Commands reference](/docs/en/commands#all-commands)
6751 
68<div className="digest-wins">
69 <p className="digest-wins-title">Other wins</p>
52Other wins
7053 
71 <div className="digest-wins-grid">
72 <div>Auto mode now blocks destructive git commands (`git reset --hard`, `git clean -fd`, `git stash drop`) when you didn't ask to discard local work, and blocks <code>terraform destroy</code> unless you asked for the specific stack</div>
73 <div>Set the new <code>attribution.sessionUrl</code> setting to <code>false</code> to omit the claude.ai session link from commits and PRs in web and Remote Control sessions</div>
74 <div>In the <code>/config</code> interface, Enter and Space both change the selected setting, and Esc now saves and closes instead of reverting</div>
75 <div>New <code>sandbox.allowAppleEvents</code> opt-in setting lets sandboxed commands send Apple Events on macOS</div>
76 <div>Point <code>CLAUDE\_CLIENT\_PRESENCE\_FILE</code> at a marker file to suppress mobile push notifications while you're at the machine</div>
77 <div>Long paragraphs now stream line by line instead of waiting for the first line break</div>
78 <div>API connection drops mid-thinking now retry automatically instead of showing "Connection closed while thinking"</div>
79 <div>With <code>CLAUDE\_CODE\_EXPERIMENTAL\_AGENT\_TEAMS=1</code> set, every session has one implicit team, so you spawn teammates directly with the Agent tool's <code>name</code> parameter</div>
80 <div>Skills in nested <code>.claude/skills</code> directories load when working on files there; on a name clash the nested skill appears as `<dir>:<name>` so both stay available</div>
81 <div>Fixed prompt caching not reading on a custom <code>ANTHROPIC\_BASE\_URL</code> and on Microsoft Foundry</div>
82 <div>Fixed Write and Edit producing zero-byte or truncated files on network drives and cloud-synced folders</div>
83 </div>
84</div>
54Auto mode now blocks destructive git commands (`git reset --hard`, `git clean -fd`, `git stash drop`) when you didn't ask to discard local work, and blocks `terraform destroy` unless you asked for the specific stackSet the new `attribution.sessionUrl` setting to `false` to omit the claude.ai session link from commits and PRs in web and Remote Control sessionsIn the `/config` interface, Enter and Space both change the selected setting, and Esc now saves and closes instead of revertingNew `sandbox.allowAppleEvents` opt-in setting lets sandboxed commands send Apple Events on macOSPoint `CLAUDE_CLIENT_PRESENCE_FILE` at a marker file to suppress mobile push notifications while you're at the machineLong paragraphs now stream line by line instead of waiting for the first line breakAPI connection drops mid-thinking now retry automatically instead of showing "Connection closed while thinking"With `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set, every session has one implicit team, so you spawn teammates directly with the Agent tool's `name` parameterSkills in nested `.claude/skills` directories load when working on files there; on a name clash the nested skill appears as `<dir>:<name>` so both stay availableFixed prompt caching not reading on a custom `ANTHROPIC_BASE_URL` and on Microsoft FoundryFixed Write and Edit producing zero-byte or truncated files on network drives and cloud-synced folders
8555 
8656[Full changelog for v2.1.178–v2.1.183 →](/docs/en/changelog#2-1-178)
8757 

whats-new/2026-w26 Changed · +20 / -44 lines

from line 2
22 
33> Authenticate MCP servers from your shell with claude mcp login, get a response to shell mode command output with the ! prefix, and resume a conversation from before /clear with /rewind.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-185">v2.1.185 → v2.1.193</a></span>
7 <span>2 features · June 22–26</span>
8</div>
5Releases [v2.1.185 → v2.1.193](/docs/en/changelog#2-1-185)
62 features · June 22–26
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Authenticate MCP servers from the CLI</span>
13 <span className="digest-feature-pill">v2.1.186</span>
14 </div>
8Authenticate MCP servers from the CLI
9v2.1.186
1510 
16 <p className="digest-feature-lede">New `claude mcp login <name>` and `claude mcp logout <name>` commands authenticate a configured MCP server from your shell instead of the interactive <code>/mcp</code> menu. `claude mcp login` runs the server's OAuth flow directly, and `claude mcp logout` clears the stored credentials.</p>
11New `claude mcp login <name>` and `claude mcp logout <name>` commands authenticate a configured MCP server from your shell instead of the interactive `/mcp` menu. `claude mcp login` runs the server's OAuth flow directly, and `claude mcp logout` clears the stored credentials.
1712 
18 <p className="digest-feature-try">Run the OAuth flow for a configured server without opening a session:</p>
13Run the OAuth flow for a configured server without opening a session:
1914 
20 ```bash terminal theme={null}
21 claude mcp login sentry
22 ```
15```bash terminal theme={null}
16claude mcp login sentry
17```
2318 
24 <a className="digest-feature-link" href="/docs/en/mcp#authenticate-from-the-command-line">Authenticate from the command line</a>
25</div>
19[Authenticate from the command line](/docs/en/mcp#authenticate-from-the-command-line)
2620 
27<div className="digest-feature">
28 <div className="digest-feature-header">
29 <span className="digest-feature-title">Shell mode responds to command output</span>
30 <span className="digest-feature-pill">v2.1.186</span>
31 </div>
21Shell mode responds to command output
22v2.1.186
3223 
33 <p className="digest-feature-lede">Commands you run with the <code>!</code> prefix now get a response from Claude once the output lands in the transcript, so you can run <code>! npm test</code> and get an explanation of the failures without a second prompt. The response costs the same as sending a normal prompt. To keep the earlier behavior, where the output is added to context without a response, set <code>respondToBashCommands</code> to <code>false</code> in <code>settings.json</code>.</p>
24Commands you run with the `!` prefix now get a response from Claude once the output lands in the transcript, so you can run `! npm test` and get an explanation of the failures without a second prompt. The response costs the same as sending a normal prompt. To keep the earlier behavior, where the output is added to context without a response, set `respondToBashCommands` to `false` in `settings.json`.
3425 
35 <p className="digest-feature-try">Run a command and get a response to its output:</p>
26Run a command and get a response to its output:
3627 
37 ```text Claude Code theme={null}
38 > ! npm test
39 ```
28```text Claude Code theme={null}
29> ! npm test
30```
4031 
41 <a className="digest-feature-link" href="/docs/en/interactive-mode#shell-mode-with-prefix">Shell mode with the ! prefix</a>
42</div>
32[Shell mode with the ! prefix](/docs/en/interactive-mode#shell-mode-with-prefix)
4333 
44<div className="digest-wins">
45 <p className="digest-wins-title">Other wins</p>
34Other wins
4635 
47 <div className="digest-wins-grid">
48 <div><code>/rewind</code> can now resume a conversation from before <code>/clear</code> was run</div>
49 <div>New <code>sandbox.credentials</code> setting blocks sandboxed commands from reading credential files and secret environment variables</div>
50 <div>Org-configured model restrictions now apply to the model picker, `--model`, <code>/model</code>, and <code>ANTHROPIC\_MODEL</code>, with a "restricted by your organization's settings" message when a restricted model is selected</div>
51 <div>New <code>autoMode.classifyAllShell</code> setting routes all Bash and PowerShell commands through the auto-mode classifier, and denial reasons now show in the transcript, the denial toast, and <code>/permissions</code></div>
52 <div>New <code>claude\_code.assistant\_response</code> OpenTelemetry log event carries the model's response text; deployments that already log prompt content start receiving it on upgrade, so set <code>OTEL\_LOG\_ASSISTANT\_RESPONSES=0</code> to keep prompts only</div>
53 <div>Background subagents now surface permission prompts in the main session instead of auto-denying; the dialog shows which agent is asking, and Esc denies only that tool</div>
54 <div><code>/install-github-app</code> can now install only the GitHub App and skip the Actions workflow and secret steps</div>
55 <div>Hosts you allow in the sandbox network permission dialog are remembered for the rest of the session instead of re-prompting on every connection</div>
56 <div>Streaming responses use about 37% less CPU, and long-session memory growth from the terminal output cache is reduced</div>
57 <div>`/review <pr>` now uses the same review engine as <code>/code-review medium</code></div>
58 <div>Bash mode <code>!</code> commands get live file path autocomplete</div>
59 </div>
60</div>
36`/rewind` can now resume a conversation from before `/clear` was runNew `sandbox.credentials` setting blocks sandboxed commands from reading credential files and secret environment variablesOrg-configured model restrictions now apply to the model picker, `--model`, `/model`, and `ANTHROPIC_MODEL`, with a "restricted by your organization's settings" message when a restricted model is selectedNew `autoMode.classifyAllShell` setting routes all Bash and PowerShell commands through the auto-mode classifier, and denial reasons now show in the transcript, the denial toast, and `/permissions`New `claude_code.assistant_response` OpenTelemetry log event carries the model's response text; deployments that already log prompt content start receiving it on upgrade, so set `OTEL_LOG_ASSISTANT_RESPONSES=0` to keep prompts onlyBackground subagents now surface permission prompts in the main session instead of auto-denying; the dialog shows which agent is asking, and Esc denies only that tool`/install-github-app` can now install only the GitHub App and skip the Actions workflow and secret stepsHosts you allow in the sandbox network permission dialog are remembered for the rest of the session instead of re-prompting on every connectionStreaming responses use about 37% less CPU, and long-session memory growth from the terminal output cache is reduced`/review <pr>` now uses the same review engine as `/code-review medium`Bash mode `!` commands get live file path autocomplete
6137 
6238[Full changelog for v2.1.185–v2.1.193 →](/docs/en/changelog#2-1-185)
6339 

whats-new/2026-w27 Changed · +33 / -71 lines

from line 2
22 
33> Claude Sonnet 5 becomes the default model, Claude in Chrome reaches general availability, subagents run in the background by default, Claude Desktop arrives on Linux in beta, and /radio tunes into Claude FM.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-195">v2.1.195 → v2.1.201</a></span>
7 <span>5 features · June 29 – July 3</span>
8</div>
5Releases [v2.1.195 → v2.1.201](/docs/en/changelog#2-1-195)
65 features · June 29 – July 3
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Claude Sonnet 5</span>
13 <span className="digest-feature-pill">new model</span>
14 </div>
8Claude Sonnet 5
9new model
1510 
16 <p className="digest-feature-lede">Sonnet 5 is the new default model for Pro, Team Standard, and Enterprise subscription seats: top-tier coding and tool use at Sonnet pricing, with a native 1M-token context window and adaptive thinking on by default. API pricing is promotional at \$2/\$10 per MTok through August 31. Requires v2.1.197 or later.</p>
11Sonnet 5 is the new default model for Pro, Team Standard, and Enterprise subscription seats: top-tier coding and tool use at Sonnet pricing, with a native 1M-token context window and adaptive thinking on by default. API pricing is promotional at \$2/\$10 per MTok through August 31. Requires v2.1.197 or later.
1712 
18 <p className="digest-feature-try">Switch to Sonnet 5 by name, or pick it from the model picker:</p>
13Switch to Sonnet 5 by name, or pick it from the model picker:
1914 
20 ```text Claude Code theme={null}
21 > /model claude-sonnet-5
22 ```
15```text Claude Code theme={null}
16> /model claude-sonnet-5
17```
2318 
24 <a className="digest-feature-link" href="/docs/en/model-config#available-models">Model configuration</a>
25</div>
19[Model configuration](/docs/en/model-config#available-models)
2620 
27<div className="digest-feature">
28 <div className="digest-feature-header">
29 <span className="digest-feature-title">Claude in Chrome is generally available</span>
30 <span className="digest-feature-pill">v2.1.198</span>
31 </div>
21Claude in Chrome is generally available
22v2.1.198
3223 
33 <p className="digest-feature-lede">The Chrome integration is out of preview for everyone on a direct Anthropic plan. Claude Code drives your browser through the Claude in Chrome extension: it opens tabs, clicks through pages, fills forms, reads console logs, and shares your login state, so it can test the app it builds without you switching contexts.</p>
24The Chrome integration is out of preview for everyone on a direct Anthropic plan. Claude Code drives your browser through the Claude in Chrome extension: it opens tabs, clicks through pages, fills forms, reads console logs, and shares your login state, so it can test the app it builds without you switching contexts.
3425 
35 <a className="digest-feature-link" href="/docs/en/chrome">Use Claude Code with Chrome</a>
36</div>
26[Use Claude Code with Chrome](/docs/en/chrome)
3727 
38<div className="digest-feature">
39 <div className="digest-feature-header">
40 <span className="digest-feature-title">Subagents run in the background by default</span>
41 <span className="digest-feature-pill">v2.1.198</span>
42 </div>
28Subagents run in the background by default
29v2.1.198
4330 
44 <p className="digest-feature-lede">Claude now keeps working while subagents run and picks up their results when they finish, instead of pausing the conversation to wait. Claude still runs a subagent in the foreground when it needs the result before continuing, and background subagents surface every permission prompt in your main session. Pin a subagent's behavior with the <code>background</code> frontmatter field.</p>
31Claude now keeps working while subagents run and picks up their results when they finish, instead of pausing the conversation to wait. Claude still runs a subagent in the foreground when it needs the result before continuing, and background subagents surface every permission prompt in your main session. Pin a subagent's behavior with the `background` frontmatter field.
4532 
46 <a className="digest-feature-link" href="/docs/en/sub-agents#run-subagents-in-foreground-or-background">Run subagents in foreground or background</a>
47</div>
33[Run subagents in foreground or background](/docs/en/sub-agents#run-subagents-in-foreground-or-background)
4834 
49<div className="digest-feature">
50 <div className="digest-feature-header">
51 <span className="digest-feature-title">Claude Desktop on Linux</span>
52 <span className="digest-feature-pill">Desktop</span>
53 </div>
35Claude Desktop on Linux
36Desktop
5437 
55 <p className="digest-feature-lede">The Claude desktop app is now available on Ubuntu 22.04+ and Debian 12+ in beta, on x86\_64 and arm64. You get the same Chat, Cowork, and Claude Code experience as macOS and Windows: parallel sessions, visual diff review, an integrated terminal and editor, and live app preview. Installs from Anthropic's apt repository, so updates arrive through regular package updates.</p>
38The Claude desktop app is now available on Ubuntu 22.04+ and Debian 12+ in beta, on x86\_64 and arm64. You get the same Chat, Cowork, and Claude Code experience as macOS and Windows: parallel sessions, visual diff review, an integrated terminal and editor, and live app preview. Installs from Anthropic's apt repository, so updates arrive through regular package updates.
5639 
57 <a className="digest-feature-link" href="/docs/en/desktop-linux">Claude Desktop on Linux</a>
58</div>
40[Claude Desktop on Linux](/docs/en/desktop-linux)
5941 
60<div className="digest-feature">
61 <div className="digest-feature-header">
62 <span className="digest-feature-title">/radio</span>
63 <span className="digest-feature-pill">CLI</span>
64 </div>
42/radio
43CLI
6544 
66 <p className="digest-feature-lede">Claude FM is on the air. <code>/radio</code> opens the lo-fi radio stream in your browser for something to code to, and prints the stream URL when no browser is available. Not available on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry.</p>
45Claude FM is on the air. `/radio` opens the lo-fi radio stream in your browser for something to code to, and prints the stream URL when no browser is available. Not available on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry.
6746 
68 <Frame>
69 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/x358isu_VzLnyTEN/images/whats-new/radio.mp4?fit=max&auto=format&n=x358isu_VzLnyTEN&q=85&s=36a0c33859cef119c7192dceea8bcbd3" data-path="images/whats-new/radio.mp4" />
70 </Frame>
47<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/x358isu_VzLnyTEN/images/whats-new/radio.mp4?fit=max&auto=format&n=x358isu_VzLnyTEN&q=85&s=36a0c33859cef119c7192dceea8bcbd3" />
7148 
72 <p className="digest-feature-try">Tune in from any session:</p>
49Tune in from any session:
7350 
74 ```text Claude Code theme={null}
75 > /radio
76 ```
51```text Claude Code theme={null}
52> /radio
53```
7754 
78 <a className="digest-feature-link" href="/docs/en/commands#all-commands">All commands</a>
79</div>
55[All commands](/docs/en/commands#all-commands)
8056 
81<div className="digest-wins">
82 <p className="digest-wins-title">Other wins</p>
57Other wins
8358 
84 <div className="digest-wins-grid">
85 <div><a href="/docs/en/artifacts">Artifacts</a> are now generally available and included on Pro and Max plans, joining Team and Enterprise</div>
86 <div>Admins can set an <a href="/docs/en/model-config#organization-default-model">organization default model</a> in the org console; it shows as "Org default" in <code>/model</code> when you haven't picked a model yourself</div>
87 <div>Stacked skill invocations like <code>/skill-a /skill-b do XYZ</code> now load all leading skills (up to 5), not only the first</div>
88 <div><code>AskUserQuestion</code> dialogs no longer auto-continue by default; opt into an idle timeout via <code>/config</code></div>
89 <div>The "default" permission mode is now named "Manual" across the CLI, `--help`, VS Code, and JetBrains; `--permission-mode manual` is accepted alongside `default`</div>
90 <div>New <code>/dataviz</code> skill gives chart and dashboard design guidance, with a runnable color-palette validator</div>
91 <div>The built-in Explore agent now inherits the main session's model (capped at Opus) instead of running on Haiku</div>
92 <div>Background agents launched from <code>claude agents</code> now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask</div>
93 <div>Hook matchers with hyphenated identifiers like <code>code-reviewer</code> now exact-match instead of substring-matching; use <code>mcp\_\_brave-search\_\_.\*</code> to match all tools from a hyphenated MCP server</div>
94 <div>Transient server rate-limit errors unrelated to your usage limit are now retried automatically with backoff for subscribers instead of failing the turn</div>
95 <div>The streaming idle watchdog is now on by default for all providers: it aborts and retries when a response stream produces no events for 5 minutes (<code>CLAUDE\_ENABLE\_STREAM\_WATCHDOG=0</code> to disable)</div>
96 </div>
97</div>
59[Artifacts](/docs/en/artifacts) are now generally available and included on Pro and Max plans, joining Team and EnterpriseAdmins can set an [organization default model](/docs/en/model-config#organization-default-model) in the org console; it shows as "Org default" in `/model` when you haven't picked a model yourselfStacked skill invocations like `/skill-a /skill-b do XYZ` now load all leading skills (up to 5), not only the first`AskUserQuestion` dialogs no longer auto-continue by default; opt into an idle timeout via `/config`The "default" permission mode is now named "Manual" across the CLI, `--help`, VS Code, and JetBrains; `--permission-mode manual` is accepted alongside `default`New `/dataviz` skill gives chart and dashboard design guidance, with a runnable color-palette validatorThe built-in Explore agent now inherits the main session's model (capped at Opus) instead of running on HaikuBackground agents launched from `claude agents` now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to askHook matchers with hyphenated identifiers like `code-reviewer` now exact-match instead of substring-matching; use `mcp__brave-search__.*` to match all tools from a hyphenated MCP serverTransient server rate-limit errors unrelated to your usage limit are now retried automatically with backoff for subscribers instead of failing the turnThe streaming idle watchdog is now on by default for all providers: it aborts and retries when a response stream produces no events for 5 minutes (`CLAUDE_ENABLE_STREAM_WATCHDOG=0` to disable)
9860 
9961[Full changelog for v2.1.195–v2.1.201 →](/docs/en/changelog#2-1-195)
10062 

whats-new/2026-w28 Changed · +17 / -42 lines

from line 2
22 
33> Browse external sites from the Desktop app's built-in browser, run a full setup checkup with /doctor, and pick up auto mode transcript protections and agent view upgrades.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-202">v2.1.202 → v2.1.206</a></span>
7 <span>2 features · July 6–10</span>
8</div>
5Releases [v2.1.202 → v2.1.206](/docs/en/changelog#2-1-202)
62 features · July 6–10
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">In-app browser on Desktop</span>
13 <span className="digest-feature-pill">Desktop</span>
14 </div>
8In-app browser on Desktop
9Desktop
1510 
16 <p className="digest-feature-lede">Claude Code on desktop now has a built-in browser. Claude can pull up docs, designs, or any other site, and read, click through, and interact with pages the same way it does with your local dev server previews. The browser is sandboxed and configurable: you choose whether browsing sessions persist, and safety classifiers review actions on external sites.</p>
11Claude Code on desktop now has a built-in browser. Claude can pull up docs, designs, or any other site, and read, click through, and interact with pages the same way it does with your local dev server previews. The browser is sandboxed and configurable: you choose whether browsing sessions persist, and safety classifiers review actions on external sites.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/x358isu_VzLnyTEN/images/whats-new/desktop-browser.mp4?fit=max&auto=format&n=x358isu_VzLnyTEN&q=85&s=8033e85a1cb0a37870a79e702c18f4e4" data-path="images/whats-new/desktop-browser.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/x358isu_VzLnyTEN/images/whats-new/desktop-browser.mp4?fit=max&auto=format&n=x358isu_VzLnyTEN&q=85&s=8033e85a1cb0a37870a79e702c18f4e4" />
2114 
22 <a className="digest-feature-link" href="/docs/en/desktop#browse-external-sites">Browse external sites</a>
23</div>
15[Browse external sites](/docs/en/desktop#browse-external-sites)
2416 
25<div className="digest-feature">
26 <div className="digest-feature-header">
27 <span className="digest-feature-title">/doctor is a full setup checkup</span>
28 <span className="digest-feature-pill">v2.1.205</span>
29 </div>
17/doctor is a full setup checkup
18v2.1.205
3019 
31 <p className="digest-feature-lede"><code>/doctor</code> now diagnoses issues and can fix them, instead of printing a read-only report. It checks installation health, finds unused skills, MCP servers, and plugins versus their context cost, deduplicates local <code>CLAUDE.md</code> files against checked-in ones, proposes trimming <code>CLAUDE.md</code> content Claude could derive from the codebase, and flags slow hooks. It reports findings first and asks for confirmation before changing anything. <code>/checkup</code> is its alias.</p>
20`/doctor` now diagnoses issues and can fix them, instead of printing a read-only report. It checks installation health, finds unused skills, MCP servers, and plugins versus their context cost, deduplicates local `CLAUDE.md` files against checked-in ones, proposes trimming `CLAUDE.md` content Claude could derive from the codebase, and flags slow hooks. It reports findings first and asks for confirmation before changing anything. `/checkup` is its alias.
3221 
33 <p className="digest-feature-try">Run a checkup from any session:</p>
22Run a checkup from any session:
3423 
35 ```text Claude Code theme={null}
36 > /doctor
37 ```
24```text Claude Code theme={null}
25> /doctor
26```
3827 
39 <a className="digest-feature-link" href="/docs/en/commands#all-commands">All commands</a>
40</div>
28[All commands](/docs/en/commands#all-commands)
4129 
42<div className="digest-wins">
43 <p className="digest-wins-title">Other wins</p>
30Other wins
4431 
45 <div className="digest-wins-grid">
46 <div>Auto mode now blocks tampering with session transcript files, and asks before running <code>rm -rf</code> on a variable it can't resolve from context</div>
47 <div><code>/cd</code> now suggests directory paths as you type, matching <code>/add-dir</code></div>
48 <div><code>/commit-push-pr</code> auto-allows <code>git push</code> to the repo's configured push remote in addition to <code>origin</code></div>
49 <div>Gateway: <code>/login</code> now supports Anthropic-operated public gateway endpoints</div>
50 <div><code>EnterWorktree</code> asks for confirmation before entering a git worktree outside the project's <code>.claude/worktrees/</code> directory</div>
51 <div>Background agents upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach</div>
52 <div>Agent view rows now show a colored state word and a classifier-written headline instead of raw tool call text, and sessions that edit, merge, comment on, or push to an existing PR link it in <code>claude agents</code></div>
53 <div>Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MB</div>
54 <div>Background task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted on</div>
55 <div>Improved <code>/code-review</code> findings quality on Opus 4.8 across all effort levels</div>
56 </div>
57</div>
32Auto mode now blocks tampering with session transcript files, and asks before running `rm -rf` on a variable it can't resolve from context`/cd` now suggests directory paths as you type, matching `/add-dir``/commit-push-pr` auto-allows `git push` to the repo's configured push remote in addition to `origin`Gateway: `/login` now supports Anthropic-operated public gateway endpoints`EnterWorktree` asks for confirmation before entering a git worktree outside the project's `.claude/worktrees/` directoryBackground agents upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attachAgent view rows now show a colored state word and a classifier-written headline instead of raw tool call text, and sessions that edit, merge, comment on, or push to an existing PR link it in `claude agents`Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MBBackground task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted onImproved `/code-review` findings quality on Opus 4.8 across all effort levels
5833 
5934[Full changelog for v2.1.202–v2.1.206 →](/docs/en/changelog#2-1-202)
6035 

whats-new/2026-w29 Changed · +21 / -47 lines

from line 2
22 
33> Pull live data into published artifacts through MCP connectors, and use Claude Code with a screen reader in the new screen reader mode.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-207">v2.1.207 → v2.1.212</a></span>
7 <span>2 features · July 13–17</span>
8</div>
5Releases [v2.1.207 → v2.1.212](/docs/en/changelog#2-1-207)
62 features · July 13–17
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Artifacts call your MCP connectors</span>
13 <span className="digest-feature-pill">web</span>
14 </div>
8Artifacts call your MCP connectors
9web
1510 
16 <p className="digest-feature-lede">A published artifact can now call MCP connectors each time someone views it, so a dashboard shows live data and can take actions on demand rather than a snapshot from the session that built it. Each call runs through the viewing account's own connections, and viewers approve access before the page's first connector call. This week also adds public sharing links, editor roles for shared editing on Team and Enterprise plans, and artifacts created from Claude Tag sessions.</p>
11A published artifact can now call MCP connectors each time someone views it, so a dashboard shows live data and can take actions on demand rather than a snapshot from the session that built it. Each call runs through the viewing account's own connections, and viewers approve access before the page's first connector call. This week also adds public sharing links, editor roles for shared editing on Team and Enterprise plans, and artifacts created from Claude Tag sessions.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/ItzF3QVI6L0QypjJ/images/whats-new/artifacts-mcp.mp4?fit=max&auto=format&n=ItzF3QVI6L0QypjJ&q=85&s=ff8b81ed52b26c773899dc28cec959e6" data-path="images/whats-new/artifacts-mcp.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/ItzF3QVI6L0QypjJ/images/whats-new/artifacts-mcp.mp4?fit=max&auto=format&n=ItzF3QVI6L0QypjJ&q=85&s=ff8b81ed52b26c773899dc28cec959e6" />
2114 
22 <p className="digest-feature-try">Name the connector and the data you want in your prompt:</p>
15Name the connector and the data you want in your prompt:
2316 
24 ```text title="Claude Code" wrap theme={null}
25 Build a dashboard artifact of open pull requests that pulls the live list through my GitHub connector when the page loads.
26 ```
17```text title="Claude Code" wrap theme={null}
18Build a dashboard artifact of open pull requests that pulls the live list through my GitHub connector when the page loads.
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/artifacts#pull-live-data-with-mcp-connectors">Pull live data with MCP connectors</a>
29</div>
21[Pull live data with MCP connectors](/docs/en/artifacts#pull-live-data-with-mcp-connectors)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">Screen reader mode</span>
34 <span className="digest-feature-pill">CLI</span>
35 </div>
23Screen reader mode
24CLI
3625 
37 <p className="digest-feature-lede">Screen reader mode replaces the visual terminal interface with plain, linear text: instead of boxes, spinners, and in-place redraws, Claude Code prints labeled lines that a screen reader such as VoiceOver or NVDA reads in order, so you can approve permissions and review output end to end. Turn it on per session with a flag, per shell with the <code>CLAUDE\_AX\_SCREEN\_READER</code> environment variable, or everywhere with the <code>axScreenReader</code> setting.</p>
26Screen reader mode replaces the visual terminal interface with plain, linear text: instead of boxes, spinners, and in-place redraws, Claude Code prints labeled lines that a screen reader such as VoiceOver or NVDA reads in order, so you can approve permissions and review output end to end. Turn it on per session with a flag, per shell with the `CLAUDE_AX_SCREEN_READER` environment variable, or everywhere with the `axScreenReader` setting.
3827 
39 <p className="digest-feature-try">Start a session in screen reader mode:</p>
28Start a session in screen reader mode:
4029 
41 ```bash terminal theme={null}
42 claude --ax-screen-reader
43 ```
30```bash terminal theme={null}
31claude --ax-screen-reader
32```
4433 
45 <a className="digest-feature-link" href="/docs/en/accessibility#turn-on-screen-reader-mode">Turn on screen reader mode</a>
46</div>
34[Turn on screen reader mode](/docs/en/accessibility#turn-on-screen-reader-mode)
4735 
48<div className="digest-wins">
49 <p className="digest-wins-title">Other wins</p>
36Other wins
5037 
51 <div className="digest-wins-grid">
52 <div><code>/fork</code> now copies your conversation into a new background session with its own row in <code>claude agents</code> while you keep working; the in-session forked subagent it used to launch is now <code>/subtask</code></div>
53 <div><a href="/docs/en/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry">Auto mode</a> no longer needs the <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE</code> opt-in on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry; administrators can turn it off with <code>disableAutoMode</code></div>
54 <div>MCP tool calls that run longer than two minutes now move to the background automatically so the session stays usable; tune or disable the threshold with <code>CLAUDE\_CODE\_MCP\_AUTO\_BACKGROUND\_MS</code></div>
55 <div>New <code>claude auto-mode reset</code> restores the default auto-mode configuration, and `--yes` skips the confirmation prompt</div>
56 <div>New <a href="/docs/en/corporate-launcher">corporate launcher</a> support: <code>CLAUDE\_CODE\_PROCESS\_WRAPPER</code> or the <code>processWrapper</code> setting runs the processes Claude Code starts from its own binary, such as the background service and agent view sessions, through a required wrapper executable</div>
57 <div><code>vimInsertModeRemaps</code> setting maps two-key insert-mode sequences such as <code>jj</code> to Escape in vim mode</div>
58 <div>`--forward-subagent-text` and <code>CLAUDE\_CODE\_FORWARD\_SUBAGENT\_TEXT</code> include subagent text and thinking blocks in <a href="/docs/en/headless">stream-json output</a></div>
59 <div>Session-wide caps stop runaway loops: WebSearch calls and subagent spawns each default to 200, tunable with <code>CLAUDE\_CODE\_MAX\_WEB\_SEARCHES\_PER\_SESSION</code> and <code>CLAUDE\_CODE\_MAX\_SUBAGENTS\_PER\_SESSION</code></div>
60 <div>"Always allow" permission rules save at the repository root, so approvals granted in a git worktree persist across sessions and worktrees</div>
61 <div>Amazon Bedrock, Google Cloud's Agent Platform, and Claude Platform on AWS now default to Claude Opus 4.8</div>
62 <div>The collapsed tool summary line shows a live elapsed-time counter, so long-running tool calls visibly tick instead of looking stuck</div>
63 </div>
64</div>
38`/fork` now copies your conversation into a new background session with its own row in `claude agents` while you keep working; the in-session forked subagent it used to launch is now `/subtask`[Auto mode](/docs/en/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) no longer needs the `CLAUDE_CODE_ENABLE_AUTO_MODE` opt-in on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry; administrators can turn it off with `disableAutoMode`MCP tool calls that run longer than two minutes now move to the background automatically so the session stays usable; tune or disable the threshold with `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`New `claude auto-mode reset` restores the default auto-mode configuration, and `--yes` skips the confirmation promptNew [corporate launcher](/docs/en/corporate-launcher) support: `CLAUDE_CODE_PROCESS_WRAPPER` or the `processWrapper` setting runs the processes Claude Code starts from its own binary, such as the background service and agent view sessions, through a required wrapper executable`vimInsertModeRemaps` setting maps two-key insert-mode sequences such as `jj` to Escape in vim mode`--forward-subagent-text` and `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` include subagent text and thinking blocks in [stream-json output](/docs/en/headless)Session-wide caps stop runaway loops: WebSearch calls and subagent spawns each default to 200, tunable with `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` and `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION`"Always allow" permission rules save at the repository root, so approvals granted in a git worktree persist across sessions and worktreesAmazon Bedrock, Google Cloud's Agent Platform, and Claude Platform on AWS now default to Claude Opus 4.8The collapsed tool summary line shows a live elapsed-time counter, so long-running tool calls visibly tick instead of looking stuck
6539 
6640[Full changelog for v2.1.207–v2.1.212 →](/docs/en/changelog#2-1-207)
6741 

whats-new/2026-w30 Changed · +30 / -62 lines

from line 2
22 
33> Opus 5 becomes the default Opus model, Claude Code Desktop adds an iOS Simulator pane, and the Claude Security plugin scans your code for vulnerabilities.
44 
5<div className="digest-meta">
6 <span>Releases <a href="/docs/en/changelog#2-1-214">v2.1.214 → v2.1.219</a></span>
7 <span>3 features · July 20–24</span>
8</div>
5Releases [v2.1.214 → v2.1.219](/docs/en/changelog#2-1-214)
63 features · July 20–24
97 
10<div className="digest-feature">
11 <div className="digest-feature-header">
12 <span className="digest-feature-title">Claude Opus 5</span>
13 <span className="digest-feature-pill">new model</span>
14 </div>
8Claude Opus 5
9new model
1510 
16 <p className="digest-feature-lede">Claude Opus 5 is the new default Opus model in Claude Code. It's the default on Max, Team Premium, Enterprise pay-as-you-go, and the Anthropic API, and on Claude Platform on AWS, Amazon Bedrock, and Google Cloud's Agent Platform. On the Anthropic API and on Max, Team, and Enterprise plans, Opus 5 runs with a <a href="/docs/en/model-config#extended-context">1M-token context window</a>; on Amazon Bedrock and Google Cloud's Agent Platform, select the 1M model variant. Fast mode moves to Opus 5 at \$10/\$50 per MTok. Requires v2.1.219 or later.</p>
11Claude Opus 5 is the new default Opus model in Claude Code. It's the default on Max, Team Premium, Enterprise pay-as-you-go, and the Anthropic API, and on Claude Platform on AWS, Amazon Bedrock, and Google Cloud's Agent Platform. On the Anthropic API and on Max, Team, and Enterprise plans, Opus 5 runs with a [1M-token context window](/docs/en/model-config#extended-context); on Amazon Bedrock and Google Cloud's Agent Platform, select the 1M model variant. Fast mode moves to Opus 5 at \$10/\$50 per MTok. Requires v2.1.219 or later.
1712 
18 <Frame>
19 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/opus-5.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8536b1cb3180e539008f39930403e47b" data-path="images/whats-new/opus-5.mp4" />
20 </Frame>
13<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/opus-5.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8536b1cb3180e539008f39930403e47b" />
2114 
22 <p className="digest-feature-try">Switch to Opus 5 by name, or pick it from the model picker:</p>
15Switch to Opus 5 by name, or pick it from the model picker:
2316 
24 ```text Claude Code theme={null}
25 > /model claude-opus-5
26 ```
17```text Claude Code theme={null}
18> /model claude-opus-5
19```
2720 
28 <a className="digest-feature-link" href="/docs/en/model-config#available-models">Model configuration</a>
29</div>
21[Model configuration](/docs/en/model-config#available-models)
3022 
31<div className="digest-feature">
32 <div className="digest-feature-header">
33 <span className="digest-feature-title">iOS Simulator in Claude Code Desktop</span>
34 <span className="digest-feature-pill">Desktop</span>
35 </div>
23iOS Simulator in Claude Code Desktop
24Desktop
3625 
37 <p className="digest-feature-lede">Claude Code Desktop on macOS gets an iOS Simulator pane, in public beta on Pro, Max, and Team plans. When Claude builds, launches, or checks your app in a simulator, the pane opens next to the conversation and streams the device screen live, so you can watch Claude tap through the app to verify its changes or drive the device yourself. Requires Xcode with the iOS platform installed, and Claude Desktop v1.24012.0 or later.</p>
26Claude Code Desktop on macOS gets an iOS Simulator pane, in public beta on Pro, Max, and Team plans. When Claude builds, launches, or checks your app in a simulator, the pane opens next to the conversation and streams the device screen live, so you can watch Claude tap through the app to verify its changes or drive the device yourself. Requires Xcode with the iOS platform installed, and Claude Desktop v1.24012.0 or later.
3827 
39 <Frame>
40 <img className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/ios-simulator.jpg?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=6c88418ed14ed0fb12cc1af75b17f2ee" alt="Claude Code Desktop with the iOS Simulator pane showing an iPhone app next to the conversation" width="2048" height="1152" data-path="images/whats-new/ios-simulator.jpg" />
41 </Frame>
28![Claude Code Desktop with the iOS Simulator pane showing an iPhone app next to the conversation](https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/ios-simulator.jpg?fit=max\&auto=format\&n=N3yEaTYPXMXFrF6k\&q=85\&s=6c88418ed14ed0fb12cc1af75b17f2ee)
4229 
43 <p className="digest-feature-try">Ask Claude to run or test your app, and the pane opens when the app launches:</p>
30Ask Claude to run or test your app, and the pane opens when the app launches:
4431 
45 ```text Claude Code theme={null}
46 > Build the app and run it in the simulator to check the onboarding flow.
47 ```
32```text Claude Code theme={null}
33> Build the app and run it in the simulator to check the onboarding flow.
34```
4835 
49 <a className="digest-feature-link" href="/docs/en/desktop-ios-simulator#run-your-app-in-the-simulator">Test iOS apps in the simulator</a>
50</div>
36[Test iOS apps in the simulator](/docs/en/desktop-ios-simulator#run-your-app-in-the-simulator)
5137 
52<div className="digest-feature">
53 <div className="digest-feature-header">
54 <span className="digest-feature-title">Claude Security plugin</span>
55 <span className="digest-feature-pill">plugin</span>
56 </div>
38Claude Security plugin
39plugin
5740 
58 <p className="digest-feature-lede">The Claude Security plugin runs a multi-agent vulnerability scan of your codebase inside a Claude Code session: agents map your architecture, build a threat model, hunt for vulnerabilities, and independently review every finding before writing the report to a <code>CLAUDE-SECURITY-\<timestamp>/</code> directory. Scan a whole repository or only a branch's diff, a pull request, or a single commit, then turn the findings you choose into reviewed patches that you apply yourself.</p>
41The Claude Security plugin runs a multi-agent vulnerability scan of your codebase inside a Claude Code session: agents map your architecture, build a threat model, hunt for vulnerabilities, and independently review every finding before writing the report to a `CLAUDE-SECURITY-<timestamp>/` directory. Scan a whole repository or only a branch's diff, a pull request, or a single commit, then turn the findings you choose into reviewed patches that you apply yourself.
5942 
60 <p className="digest-feature-try">Install the plugin from the official Anthropic marketplace, run <code>/reload-plugins</code>, then start a scan with <code>/claude-security</code>:</p>
43Install the plugin from the official Anthropic marketplace, run `/reload-plugins`, then start a scan with `/claude-security`:
6144 
62 ```text Claude Code theme={null}
63 > /plugin install claude-security@claude-plugins-official
64 ```
45```text Claude Code theme={null}
46> /plugin install claude-security@claude-plugins-official
47```
6548 
66 <a className="digest-feature-link" href="/docs/en/claude-security#scan-and-fix-your-codebase">Scan and fix your codebase</a>
67</div>
49[Scan and fix your codebase](/docs/en/claude-security#scan-and-fix-your-codebase)
6850 
69<div className="digest-wins">
70 <p className="digest-wins-title">Other wins</p>
51Other wins
7152 
72 <div className="digest-wins-grid">
73 <div><a href="/docs/en/code-review-local"><code>/code-review</code></a> now runs as a background subagent with its own context window, so review work stays out of your conversation and the findings arrive when it completes</div>
74 <div><code>/verify</code>, <code>/code-review</code>, and <code>/deep-research</code> run only when you invoke them; Claude no longer launches them on its own</div>
75 <div><a href="/docs/en/interactive-mode#emoji-shortcodes">Emoji shortcodes</a> autocomplete in the prompt input: type <code>:heart:</code> to insert an emoji, or two or more characters after <code>:</code> for suggestions; turn it off with <code>emojiCompletionEnabled</code></div>
76 <div>Skills with <code>context: fork</code> <a href="/docs/en/skills#run-skills-in-a-subagent">run in the background</a> by default, and <code>background: false</code> in the skill's frontmatter waits for the result in the same turn</div>
77 <div>A session runs up to 20 subagents concurrently by default; change the <a href="/docs/en/sub-agents#concurrent-subagent-limit">limit</a> with <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>
78 <div>`--max-budget-usd` now enforces the cap on subagents: once spend reaches it, Claude can't start more and running background subagents stop</div>
79 <div>New <a href="/docs/en/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> setting skips filesystem isolation while keeping network egress control</div>
80 <div>In auto mode, the checks for dangerous <code>rm</code> commands, background jobs, and suspicious Windows paths no longer open permission dialogs; the auto-mode classifier adjudicates them instead</div>
81 <div>Bash permission checks fail closed on more shell forms, including file-descriptor redirects, Zsh variable subscripts in <code>\[\[ ]]</code> comparisons, <code>help</code> and <code>man</code> invocations that could run unsafe options, and commands over 10,000 characters</div>
82 <div><a href="/docs/en/fast-mode">Fast mode</a> no longer supports Opus 4.7: <code>/fast</code> now applies to Opus 5 and Opus 4.8</div>
83 <div>Long-running tool calls emit a periodic progress heartbeat instead of going silent</div>
84 </div>
85</div>
53[`/code-review`](/docs/en/code-review-local) now runs as a background subagent with its own context window, so review work stays out of your conversation and the findings arrive when it completes`/verify`, `/code-review`, and `/deep-research` run only when you invoke them; Claude no longer launches them on its own[Emoji shortcodes](/docs/en/interactive-mode#emoji-shortcodes) autocomplete in the prompt input: type `:heart:` to insert an emoji, or two or more characters after `:` for suggestions; turn it off with `emojiCompletionEnabled`Skills with `context: fork` [run in the background](/docs/en/skills#run-skills-in-a-subagent) by default, and `background: false` in the skill's frontmatter waits for the result in the same turnA session runs up to 20 subagents concurrently by default; change the [limit](/docs/en/sub-agents#concurrent-subagent-limit) with `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS``--max-budget-usd` now enforces the cap on subagents: once spend reaches it, Claude can't start more and running background subagents stopNew [`sandbox.filesystem.disabled`](/docs/en/sandboxing#disable-filesystem-isolation) setting skips filesystem isolation while keeping network egress controlIn auto mode, the checks for dangerous `rm` commands, background jobs, and suspicious Windows paths no longer open permission dialogs; the auto-mode classifier adjudicates them insteadBash permission checks fail closed on more shell forms, including file-descriptor redirects, Zsh variable subscripts in `[[ ]]` comparisons, `help` and `man` invocations that could run unsafe options, and commands over 10,000 characters[Fast mode](/docs/en/fast-mode) no longer supports Opus 4.7: `/fast` now applies to Opus 5 and Opus 4.8Long-running tool calls emit a periodic progress heartbeat instead of going silent
8654 
8755[Full changelog for v2.1.214–v2.1.219 →](/docs/en/changelog#2-1-214)
8856 
Feedback