6 6
7> Test your plugins with claude plugin eval and pop Claude Code Desktop panes out into their own windows.7> Test your plugins with claude plugin eval and pop Claude Code Desktop panes out into their own windows.
8 8
9<div className="digest-meta">9Releases [v2.1.263 → v2.1.269](/docs/en/changelog#2-1-263)
10 <span>Releases <a href="/docs/en/changelog#2-1-263">v2.1.263 → v2.1.269</a></span>102 features · September 7–11
11 <span>2 features · September 7–11</span>11
12</div>12Test plugins with claude plugin eval
13 13v2.1.269
14<div className="digest-feature">14
15 <div className="digest-feature-header">15`claude plugin eval` runs your plugin against a suite of test cases, scores the results, and by default runs each case again without the plugin so you can see what it contributes. `claude plugin eval init` asks you what a good result looks like, then proposes test cases and the checks that score them, tries the suite once, and writes the files. Every run, and every check that has a second model judge the reply, is a real model call on your account.
16 <span className="digest-feature-title">Test plugins with claude plugin eval</span>16
17 <span className="digest-feature-pill">v2.1.269</span>17
18 </div>18
19 19From your plugin's root directory, have Claude draft the suite:
20 <p className="digest-feature-lede"><code>claude plugin eval</code> runs your plugin against a suite of test cases, scores the results, and by default runs each case again without the plugin so you can see what it contributes. <code>claude plugin eval init</code> asks you what a good result looks like, then proposes test cases and the checks that score them, tries the suite once, and writes the files. Every run, and every check that has a second model judge the reply, is a real model call on your account.</p>20
21 21```bash terminal theme={null}
22 <Frame>22claude plugin eval init
23 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/plugin-eval.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=913066f6d4a2a15426e98a627802f47f" alt="Terminal output of claude plugin eval: a table of seven cases with each case's score with and without the plugin, the delta between them, the run count, and the cost, followed by a summary line with the mean delta, total duration, and total cost" width="1600" height="900" data-path="images/whats-new/plugin-eval.jpg" />23```
24 </Frame>24
25 25When Claude tells you the suite is ready, exit the session that `claude plugin eval init` opened and run `claude plugin eval .` to score every case. The summary table prints in your terminal, and `report.html` under `evals/results/` has the per-run detail.
26 <p className="digest-feature-try">From your plugin's root directory, have Claude draft the suite:</p>26
27 27[Test plugins with evals](/docs/en/plugin-evals)
28 ```bash terminal theme={null}28
29 claude plugin eval init29Pop Desktop panes out into their own windows
30 ```30Desktop
31 31
32 <p className="digest-feature-try">When Claude tells you the suite is ready, exit the session that <code>claude plugin eval init</code> opened and run <code>claude plugin eval .</code> to score every case. The summary table prints in your terminal, and <code>report.html</code> under <code>evals/results/</code> has the per-run detail.</p>32In the Claude Code Desktop app, you can pop any pane out into its own window. Drag the diff or terminal to a second screen while Claude keeps working in the main window, then dock the pane back when you're done.
33 33
34 <a className="digest-feature-link" href="/docs/en/plugin-evals">Test plugins with evals</a>34<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-pop-out-panes.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=ff3770dd09bb15ed9cf17a460f3d1e23" />
35</div>35
36 36[Arrange your workspace](/docs/en/desktop#arrange-your-workspace)
37<div className="digest-feature">37
38 <div className="digest-feature-header">38Other wins
39 <span className="digest-feature-title">Pop Desktop panes out into their own windows</span>39
40 <span className="digest-feature-pill">Desktop</span>40Set [`maxEffortLevel`](/docs/en/settings-reference#maxeffortlevel) at the top level or per model under `modelSettings` to cap the effort level on every provider, including Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry; any higher level runs at the capPoint `--plugin-dir` at a folder of plugins to [load each immediate subfolder that has a manifest](/docs/en/plugins/create#load-a-directory-or-archive-for-one-session)If WebFetch hasn't finished downloading a page within five minutes, [the fetch fails with a deadline error](/docs/en/tools-reference#webfetch-tool-behavior) instead of hanging; set `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` to change the deadline, or to `0` to remove the limitPass `--json` to `claude plugin install`, `uninstall`, `update`, `enable`, or `disable` to print the result as [one JSON object on the last line of stdout](/docs/en/plugins/cli-reference#plugin-json-result)When the auto mode classifier blocks an action, the reason Claude receives [usually names the rule that matched](/docs/en/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry), such as `[Data Exfiltration]`When you type `/` partway through a prompt, you can now pick from [a list of matching commands](/docs/en/interactive-mode#complete-a-command-mid-prompt) instead of a single suggestion. The list opens as you type in fullscreen rendering. A plugin skill also matches on its name without the plugin prefixIn the VS Code extension, click the agent count at the bottom of the prompt box to open the [agent map](/docs/en/vs-code#use-the-prompt-box), where you can open a subagent's read-only transcript or stop itIn the VS Code extension, select **Hooks** or **Permissions** in the command menu's Customize section to [add or remove hooks and permission rules](/docs/en/vs-code#use-the-prompt-box) in your user, project, and local settingsClaude can pick a [browser-tab icon](/docs/en/artifacts#create-an-artifact) to match each artifact it publishesIn Claude Code on the web, take back a queued message in a cloud session before Claude reads it: remove it from the queue, or press `Esc` or `Up`, and the text returns to the message box
41 </div>
42
43 <p className="digest-feature-lede">In the Claude Code Desktop app, you can pop any pane out into its own window. Drag the diff or terminal to a second screen while Claude keeps working in the main window, then dock the pane back when you're done.</p>
44
45 <Frame>
46 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-pop-out-panes.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=ff3770dd09bb15ed9cf17a460f3d1e23" data-path="images/whats-new/desktop-pop-out-panes.mp4" />
47 </Frame>
48
49 <a className="digest-feature-link" href="/docs/en/desktop#arrange-your-workspace">Arrange your workspace</a>
50</div>
51
52<div className="digest-wins">
53 <p className="digest-wins-title">Other wins</p>
54
55 <div className="digest-wins-grid">
56 <div>Set <a href="/docs/en/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> at the top level or per model under <code>modelSettings</code> to cap the effort level on every provider, including Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry; any higher level runs at the cap</div>
57 <div>Point `--plugin-dir` at a folder of plugins to <a href="/docs/en/plugins/create#load-a-directory-or-archive-for-one-session">load each immediate subfolder that has a manifest</a></div>
58 <div>If WebFetch hasn't finished downloading a page within five minutes, <a href="/docs/en/tools-reference#webfetch-tool-behavior">the fetch fails with a deadline error</a> instead of hanging; set <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> to change the deadline, or to <code>0</code> to remove the limit</div>
59 <div>Pass `--json` to <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code>, or <code>disable</code> to print the result as <a href="/docs/en/plugins/cli-reference#plugin-json-result">one JSON object on the last line of stdout</a></div>
60 <div>When the auto mode classifier blocks an action, the reason Claude receives <a href="/docs/en/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">usually names the rule that matched</a>, such as <code>\[Data Exfiltration]</code></div>
61 <div>When you type <code>/</code> partway through a prompt, you can now pick from <a href="/docs/en/interactive-mode#complete-a-command-mid-prompt">a list of matching commands</a> instead of a single suggestion. The list opens as you type in fullscreen rendering. A plugin skill also matches on its name without the plugin prefix</div>
62 <div>In the VS Code extension, click the agent count at the bottom of the prompt box to open the <a href="/docs/en/vs-code#use-the-prompt-box">agent map</a>, where you can open a subagent's read-only transcript or stop it</div>
63 <div>In the VS Code extension, select <strong>Hooks</strong> or <strong>Permissions</strong> in the command menu's Customize section to <a href="/docs/en/vs-code#use-the-prompt-box">add or remove hooks and permission rules</a> in your user, project, and local settings</div>
64 <div>Claude can pick a <a href="/docs/en/artifacts#create-an-artifact">browser-tab icon</a> to match each artifact it publishes</div>
65 <div>In Claude Code on the web, take back a queued message in a cloud session before Claude reads it: remove it from the queue, or press <code>Esc</code> or <code>Up</code>, and the text returns to the message box</div>
66 </div>
67</div>
68 41
69[Full changelog for v2.1.263–v2.1.269 →](/docs/en/changelog#2-1-263)42[Full changelog for v2.1.263–v2.1.269 →](/docs/en/changelog#2-1-263)