6 6
7> Computer use in the CLI, interactive in-product lessons, flicker-free rendering, per-tool MCP result-size overrides, and plugin executables on PATH.7> Computer use in the CLI, interactive in-product lessons, flicker-free rendering, per-tool MCP result-size overrides, and plugin executables on PATH.
8 8
9<div className="digest-meta">9Releases [v2.1.86 → v2.1.91](/docs/en/changelog#2-1-86)
10 <span>Releases <a href="/docs/en/changelog#2-1-86">v2.1.86 → v2.1.91</a></span>105 features · March 30 – April 3
11 <span>5 features · March 30 – April 3</span>
12</div>
13 11
14<div className="digest-feature">12Computer use in the CLI
15 <div className="digest-feature-header">13research preview
16 <span className="digest-feature-title">Computer use in the CLI</span>
17 <span className="digest-feature-pill">research preview</span>
18 </div>
19 14
20 <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>15Last 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.
21 16
22 <Frame>17<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" />
23 <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" />
24 </Frame>
25 18
26 <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>19Requires 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:
27 20
28 ```text title="Claude Code" wrap theme={null}21```text title="Claude Code" wrap theme={null}
29 Open the iOS simulator, tap through onboarding, and screenshot each step22Open the iOS simulator, tap through onboarding, and screenshot each step
30 ```23```
31 24
32 <a className="digest-feature-link" href="/docs/en/computer-use">Computer use guide</a>25[Computer use guide](/docs/en/computer-use)
33</div>
34 26
35<div className="digest-feature">27/powerup
36 <div className="digest-feature-header">28v2.1.90
37 <span className="digest-feature-title">/powerup</span>
38 <span className="digest-feature-pill">v2.1.90</span>
39 </div>
40 29
41 <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>30Interactive 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.
42 31
43 <Frame>32<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" />
44 <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" />
45 </Frame>
46 33
47 <p className="digest-feature-try">Run it:</p>34Run it:
48 35
49 ```text title="Claude Code" wrap theme={null}36```text title="Claude Code" wrap theme={null}
50 /powerup37/powerup
51 ```38```
52 39
53 <a className="digest-feature-link" href="/docs/en/commands">Commands reference</a>40[Commands reference](/docs/en/commands)
54</div>
55 41
56<div className="digest-feature">42Flicker-free rendering
57 <div className="digest-feature-header">43v2.1.89
58 <span className="digest-feature-title">Flicker-free rendering</span>
59 <span className="digest-feature-pill">v2.1.89</span>
60 </div>
61 44
62 <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>45Opt 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.
63 46
64 <Frame>47<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" />
65 <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" />
66 </Frame>
67 48
68 <p className="digest-feature-try">Set the env var and restart Claude Code:</p>49Set the env var and restart Claude Code:
69 50
70 ```bash theme={null}51```bash theme={null}
71 export CLAUDE_CODE_NO_FLICKER=152export CLAUDE_CODE_NO_FLICKER=1
72 claude53claude
73 ```54```
74 55
75 <a className="digest-feature-link" href="/docs/en/fullscreen">Fullscreen rendering</a>56[Fullscreen rendering](/docs/en/fullscreen)
76</div>
77 57
78<div className="digest-feature">58MCP result-size override
79 <div className="digest-feature-header">59v2.1.91
80 <span className="digest-feature-title">MCP result-size override</span>
81 <span className="digest-feature-pill">v2.1.91</span>
82 </div>
83 60
84 <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>61MCP 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.
85 62
86 <p className="digest-feature-try">Annotate the tool in your server's <code>tools/list</code> response:</p>63Annotate the tool in your server's `tools/list` response:
87 64
88 ```json highlight={5} theme={null}65```json highlight={5} theme={null}
89 {66{
90 "name": "get_schema",67 "name": "get_schema",
91 "description": "Returns the full database schema",68 "description": "Returns the full database schema",
92 "_meta": {69 "_meta": {
93 "anthropic/maxResultSizeChars": 50000070 "anthropic/maxResultSizeChars": 500000
94 }71 }
95 }72}
96 ```73```
97 74
98 <a className="digest-feature-link" href="/docs/en/mcp#raise-the-limit-for-a-specific-tool">MCP reference</a>75[MCP reference](/docs/en/mcp#raise-the-limit-for-a-specific-tool)
99</div>
100 76
101<div className="digest-feature">77Plugin executables on PATH
102 <div className="digest-feature-header">78v2.1.91
103 <span className="digest-feature-title">Plugin executables on PATH</span>
104 <span className="digest-feature-pill">v2.1.91</span>
105 </div>
106 79
107 <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>80Place 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.
108 81
109 <p className="digest-feature-try">Add a <code>bin/</code> directory at the plugin root:</p>82Add a `bin/` directory at the plugin root:
110 83
111 ```text highlight={4, 5} theme={null}84```text highlight={4, 5} theme={null}
112 my-plugin/85my-plugin/
113 ├── .claude-plugin/86├── .claude-plugin/
114 │ └── plugin.json87│ └── plugin.json
115 └── bin/88└── bin/
116 └── my-tool89 └── my-tool
117 ```90```
118 91
119 <a className="digest-feature-link" href="/docs/en/plugins/manifest-reference#standard-layout">Plugins reference</a>92[Plugins reference](/docs/en/plugins/manifest-reference#standard-layout)
120</div>93
121 94Other wins
122<div className="digest-wins">95
123 <p className="digest-wins-title">Other wins</p>96Auto 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`)
124
125 <div className="digest-wins-grid">
126 <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>
127 <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>
128 <div><code>/buddy</code>: hatch a small creature that watches you code. An April Fools' joke, no longer available</div>
129 <div><code>disableSkillShellExecution</code> setting blocks inline shell from skills, custom commands, and plugin commands</div>
130 <div>Edit tool now works on files viewed via <code>cat</code> or <code>sed -n</code> without a separate Read</div>
131 <div>Hook output over 50K saved to disk with a path + preview instead of injected into context</div>
132 <div>Thinking summaries off by default in interactive sessions (<code>showThinkingSummaries: true</code> to restore)</div>
133 <div>Voice mode: push-to-talk modifier combos, Windows WebSocket, macOS Apple Silicon mic permission</div>
134 <div><code>claude-cli://</code> deep links accept multi-line prompts (encoded <code>%0A</code>)</div>
135 </div>
136</div>
137 97
138[Full changelog for v2.1.86–v2.1.91 →](/docs/en/changelog#2-1-86)98[Full changelog for v2.1.86–v2.1.91 →](/docs/en/changelog#2-1-86)