Follow Discord

Claude Code v2.1.289

latestnext 67 entries read Grouped into 52 v2.1.288 → v2.1.289 Mods API: +7 added · 0 removed · 5 changed · 10 docs only Markdown JSON Follow Unofficial

You can now let plugins read the text you have selected in a connected app, in sessions without a terminal. The first non-empty answer that arrives within 5 seconds is used. Plugin agent-launch hooks now also apply when you start a named teammate. Such a hook can block, rewrite or retype the teammate. Running claude plugin eval on a plugin from a folder marketplace now runs it from that folder. When a plugin's view drawn by the desktop app fails, the plugin is told and can draw another view.

A plugin interface that crashes no longer breaks the screen. Claude Code shows its own interface instead and keeps your session running. Plugins now get a teammate's real id and model when they launch agents. The claude auth status command now exits right away with code 0 or 1 after printing your login status. Stale or overdrawn content in scrolled boxes is fixed. A plugin view that crashed while drawing is no longer applied again.

Written by our agent from the shipped bundle, not by Anthropic.

Five to try today

Picked from 2 you can use now
  1. Permission decisions can now name the hook that made them

    Permission decisions gain an optional hook field, which plugin tool.check hooks can set, and rules inside nested commands are now found

    Extensions
  2. claude plugin eval tests folder marketplace plugins from where sessions load them

    Evaluating an installed plugin from a folder marketplace now runs it from that folder, or stops with an error if the folder no longer lists it

    Extensions

Want the reasoning? Read walks the 8 entries that probably matter to you, each one opening to what changed and why.

Read this release → Every row →
52 of 52 shownClear
Reading as
Show only
Who it's for
Tier
Flag state
Names
Pick an entry · j / k steps through · rest on a row to peek
8 entries here

What probably matters to you

Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.

+New
You'll notice
Useful4 Signal4
Group of 4 Plugin UI no docs found unclear

Plugin UI failures are now caught, reported and recoverable#

When a plugin's on-screen UI throws an error, Claude Code now catches it, draws its own UI instead and lets the plugin recover

Unclear It is not clear whether ui.fault handlers are behind a rollout switch or reachable only when the desktop app is the host.

Details 0 0 Feedback
ui_client_fault
+New
Under the hood
Useful4 Signal4
Plugin Hooks Notable no docs found unclear

A new drawing slot for plugin function hooks, plus an interface fault event#

Claude Code lists a new drawing slot for plugin function hooks and a new interface event for reporting faults

Unclear It is not clear what switches the new drawing slot on, or whether users can reach it at all.

Details 0 0 Feedback
plugin_function_hooks_draw
+New
Under the hood
Useful4 Signal4
Plugin Hooks Notable no docs found unclear

Plugin function hooks get a capability named for reading the selection#

A plugin function-hook capability called plugin_function_hooks_selection_read now exists, along with a new internal control message

Unclear What this capability allows and what the new control message does are both unclear.

Details 0 0 Feedback
plugin_function_hooks_selection_read
↑Improved
Use it now
Useful3 Signal2
Group of 2 Plugin Hooks unclear

Permission decisions can now name the hook that made them#

Permission decisions gain an optional hook field, which plugin tool.check hooks can set, and rules inside nested commands are now found

Unclear How the hook name is used after it is accepted, and whether plugin hooks of this kind are on by default, is not clear.

Details 0 0 Feedback
+New
You'll notice
Useful4 Signal2
Plugins unclear

Claude Code can notice when a plugin's folder has been edited#

Claude Code can detect plugin folders changed since they were last read and show a notice that the plugin was re-read from its folder

Unclear When and from where this check runs is not shown.

Details 0 0 Feedback
↑Improved
Use it now
Useful3 Signal2
Plugins unclear

claude plugin eval tests folder marketplace plugins from where sessions load them#

Evaluating an installed plugin from a folder marketplace now runs it from that folder, or stops with an error if the folder no longer lists it

Unclear Whether the same error also appears elsewhere, such as when updating plugins, is not known.

Details 0 0 Feedback
claude plugin eval
↑Improved
Under the hood
Useful2 Signal2
Plugin UI Notable unclear

Plugin text lines described as up to 10000 characters instead of 4096#

Plugin-supplied text lines such as the pinned line are now described as up to 10000 characters followed by an ellipsis, not at most 4096

Unclear Whether the 10000 character limit is enforced or only described is not known.

Details 0 0 Feedback
Were these the right ones to put at the top? 0 answered
Below the fold

Everything else

Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

25 entries here

Improvementsopen

3 more of these are in What probably matters to you, above.

↑Improved
You'll notice
Useful3 Signal2
Terminal UI unclear

Pane headers now have two drag areas instead of one#

In the terminal interface, a pane's header now has two separately sized mouse grab areas, one at the left edge and one just past the close mark

Unclear It is not clear what the two grips are meant to do differently, or why the header was split this way.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal1
Group of 2 Plugins unclear

Clearer handling of plugins loaded from a local folder#

Folder-based plugins now get a note on update, extra lines in /reload-plugins output, and file watching that follows the real path

Unclear The exact conditions under which the note appears are not settled.

Details 0 0 Feedback
/reload-plugins
↑Improved
You'll notice
Useful2 Signal2
Plugin UI unclear

Plugin pane layout rearranged around its tabs, content and close button#

A pane's tab strip, body and close button are now laid out in separate boxes, with scrolling handled differently and a spacer row in some cases

Unclear What a reader would actually see differently is not known.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Group of 2 Elsewhere unclear

@-mentioned files are re-checked before reading and may be left unexamined#

@-mentioned files are now re-checked before being read; ones that can't be safely opened are passed as references and the model is told why

Unclear It is not clear what makes Claude Code mark mentions as ones that could not be examined.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Elsewhere unclear

Unread file references can now say the file could not be examined#

A referenced file that was not read now shows "not read: could not be examined" when it could not be examined, and "not read" otherwise

Unclear It is not clear what makes Claude Code mark a file as one that could not be examined.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Terminal UI unclear

Dismissed prompts now always offer a Dismiss option on key 0#

The list of choices shown after "Dismissed." now always ends with a "Dismiss" option bound to key 0

Unclear It is not clear which prompt or dialog shows this row.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Plugins unclear

Plugin updates can print a note about the plugin's folder#

Updating a plugin from the command line can now print an extra note about its folder before the result

Unclear When the folder note is set and what it says is not shown.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Permissions unclear

Fewer find commands are allowed without asking#

Claude Code now asks before running some find, test, jobs and set commands that it used to treat as safe to run automatically

Unclear Exactly which find options are treated as read differently by different versions is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Terminal UI unclear

Syntax highlighting gives up on code blocks that take too much work#

Code highlighting now has a work limit based on text length, nesting and embedded languages, and stops highlighting a block that goes over it

Unclear How the block is shown once highlighting is abandoned is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Terminal UI unclear

The "That was helpful" feedback prompt now gets a way to be dismissed#

The two-choice feedback prompt ("That was helpful" / "Didn’t understand") is now given a dismiss action, so it can be closed without answering

Unclear It is not clear what the dismiss action does on screen, which key or click triggers it, or whether this prompt is shown to everyone.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Group of 4 Permissions unclear

find -rm is no longer auto-approved as a read-only command#

Claude Code now treats find ... -rm like find ... -delete: it is not auto-allowed as read-only and is flagged as destructive

Unclear It is not clear whether the server-side setting affects the read-only pattern itself, which has -rm built in, or only the separate list of blocked options.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Permissions unclear

More shell commands get checked part by part against your permission rules#

Claude Code now checks a shell command part by part when it splits into several commands, or when its one parsed command differs from what was written

Unclear It is not clear which commands end up as a single command with different text.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Plugin UI unclear

Plugin client error messages drop repeated prefixes and fall back when empty#

Error text from a plugin client now has its leading labels removed, and a standard message is shown when nothing is left

Unclear The exact old wording could not be read cleanly, so the precise before and after behaviour is unclear.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Plugin Hooks unclear

Clearer errors when a plugin launches an agent that cannot start#

Plugin agent launches now say when required MCP servers have no tools yet, and list the available agents when the named one does not exist

Unclear What turns on the plugin hooks involved is not clear.

Details 0 0 Feedback
↑Improved
Under the hood
Useful1 Signal1
Elsewhere unclear

A URL check no longer limits length and gives shorter error messages#

One of Claude Code's URL checks dropped its length limit and empty-text check and now uses shorter error messages

Unclear Which URLs go through this check is not stated, though it may be the one used for plugin URLs.

Details 0 0 Feedback
↑Improved
You'll notice
Useful1 Signal1
Plugin Hooks unclear

Warnings for plugin hooks that were not applied no longer say "skipped"#

A plugin hook that was not applied now gets a warning reading "<event> hook: <reason>" instead of "<event> hook skipped: <reason>"

Unclear When a hook counts as not applied rather than skipped is not stated.

Details 0 0 Feedback
9 entries here

Bug Fixesopen

✓Fixed
You'll notice
Useful2 Signal2
Teammates unclear

Plugins see accurate ids and states for teammates#

Plugin agent launches now return a teammate's real id and model, and plugin messaging and task lists find teammates more reliably

Unclear What reads the updated task list beyond plugins is not clear.

Details 0 0 Feedback
✓Fixed
You'll notice
Useful1 Signal2
Plugin UI unclear

A plugin view that crashed while drawing is no longer applied again#

Claude Code now skips applying a plugin view whose drawing failed, and fits pane contents to the space left by the pane frame

Unclear The visible effect of the pane row calculation is not settled.

Details 0 0 Feedback
✓Fixed
You'll notice
Useful2 Signal1
Terminal UI unclear

Fix for stale or overdrawn content in scrolled boxes#

Claude Code's terminal display now tracks clipped areas while scrolling, fixing stale or overdrawn content in scrolled boxes

Unclear It is not known which specific visible glitch this fixes.

Details 0 0 Feedback
✓Fixed
You'll notice
Useful2 Signal1
Elsewhere unclear

claude auth status now exits straight away after printing its result#

After showing your login status, claude auth status now ends at once with exit code 0 or 1 instead of first waiting on an internal step

Unclear It is unclear what the old exit routine did besides ending the program, so other small differences on exit cannot be ruled out.

Details 0 0 Feedback
claude auth status
✓Fixed
You'll notice
Useful1 Signal0
Terminal UI unclear

Text containing tabs is measured the same way it is drawn#

Claude Code now expands tabs and respects the wrapping mode when measuring text width, so layout matches what appears on screen

Unclear The exact effect on how text is laid out on screen is not established.

Details 0 0 Feedback
10 entries here

Internal Changesopen

·Internal
Under the hood
Useful2 Signal3
Group of 2 Plugin Hooks unclear

Values leaving the plugin hook sandbox are now copied and checked#

Plugin hook values leaving the plugin's sandbox are now copied, frozen and checked as plain data, unless isLeavingUncopied is set

Unclear It is not clear what sets the option that lets values leave the sandbox uncopied.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal2
Elsewhere unclear

A new remote feature switch with no visible purpose yet#

Claude Code has a new remotely controlled switch that counts as on when the server sends no value, and nothing yet shows what it controls

Unclear What this switch controls is not known.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal0
Permissions unclear

Read-deny check for attached files now goes through shared helpers#

Checking whether a deny rule blocks reading an attached file now uses a shared helper that also tests whether any read-deny rules exist

Unclear It is not clear whether attachments are blocked any differently than before.

Details 0 0 Feedback
2 entries herePlugin Hooks · none marked notable
·Internal
Under the hood
Useful1 Signal0
Plugin Hooks unclear

Handling of failed plugin hooks reorganised#

The code that marks in-progress work as failed when a plugin hook fails was moved into a shared helper; runaway-plugin shutdown is unchanged

Unclear It is not known whether the new helper changes what happens when a hook fails.

Details 0 0 Feedback
2 entries herePlugin UI · none marked notable
·Internal
Under the hood
Useful2 Signal2
Plugin UI unclear

Questions sent to an interface host now report why they failed#

When Claude Code asks an interface host a question, a failure now comes back with a reason instead of an empty result

Unclear What uses these failure reasons is not shown.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal2
Plugin UI unclear

Plugin notification description no longer promises 2 second spacing#

The description of plugin pop-up notifications now tells apps to expect them at no fixed rate, instead of 2 seconds apart

Unclear It is not known whether the 2 second spacing itself was removed or only dropped from the description.

Details 0 0 Feedback
2 entries hereTeammates · none marked notable
·Internal
Under the hood
Useful2 Signal3
Teammates unclear

Teammate records now store how the teammate was spawned#

Teammates running inside Claude Code now carry a spawnedWith record of how they were started

Unclear It is not shown what reads this field, or whether it is used to restore or resume teammates.

Details 0 0 Feedback
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.289. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

Of these 27 bullets, 5 name something an entry on this page also names, 6 name something no entry here does, and 16 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

  • Fixed a deny or ask rule on a nested part of a compound shell command not holding over a user-installed mod's approval on managed machines Nothing to match on
  • Fixed the terminal freezing on short code blocks with many unclosed <script> tags or deeply nested ${ substitutions Nothing to match on
  • Fixed Read deny rules not applying to files @-mentioned, changed, or selected in the IDE through a symlink Probably plugin-list-shows-where-each-plugin-was-read-from-and-its-fo
  • [VSCode] Reverted a 2.1.288 change to claude auth status that may have made sign-outs more frequent Probably auth-status-cli-exits-directly
  • Improved how quickly large files open in a plugin code pane by laying the highlighted view out once at its final width Nothing to match on
  • Fixed plugin list, plugin eval and plugin update showing a stale copy of a plugin installed from a local folder marketplace, and hot reload for a symlinked --plugin-dir Probably plugin-list-shows-where-each-plugin-was-read-from-and-its-fo, claude-plugin-eval-resolves-installed-plugins-from-marketpla
  • Fixed installed mods not loading in the first session after an upgrade Nothing to match on #99130Mods off remotely on 2.1.288 despite docs saying on by default since 2.1.287 (rollout switch serves off) Open
  • Fixed a plugin's rows above the prompt showing a stale row while the Background tasks dialog was open in fullscreen Nothing to match on
  • Fixed plugin panes drawing nothing when a link used a localhost address, an @ in its path, an uppercase host or a file: path Nothing to match on
  • Fixed a user-installed plugin being able to rewrite the descriptions of an organization-managed MCP server's sign-in tools Nothing to match on
  • Fixed a freeze or forced quit at launch when a plugin drew a Box with a border style the terminal does not know Nothing to match on
  • Fixed supervised and background sessions ending when a plugin's on-screen handler threw asynchronously Nothing to match on
  • Fixed sessions ending with an interface error when a plugin region with no height kept growing Nothing to match on
  • Fixed Bash deny and ask rules missing a command behind an environment variable prefix with an expanded value (e.g. TZ="$HOME" rm -rf build) when the sandbox auto-allows commands No entry names this
  • Fixed a Bash deny or ask rule being skipped under sandbox auto-allow when a bare variable assignment came before the command Nothing to match on
  • Fixed claude plugin validate skipping the plugin when the folder also holds a marketplace manifest No entry names this
  • Added agent.spawn for teammates, one agent id across plugin hook events, and idle and waiting states in $.agent.list() Probably teammate-spawn-records-spawnedwith-agentspawn-hook-gains, agent-teammate-spawn-now-runs-through-the-agentspawn-plugin
  • Fixed sessions ending with "unrecoverable interface error" when a value a mod's ui.render hook wrote made a row throw while drawn; the engine now draws its own row instead No entry names this
  • Fixed text with a tab, a stray escape and a C1 control, or a short text with a tab and CRLF line endings, drawing over the rows below it Nothing to match on
  • Fixed right-aligned content in a mod's pane or band drawing under the close mark or [-], which now also keep one column in from the terminal's edge No entry names this #98987[FEATURE] Mods: keep the Pane close mark (×) and the band's [-] off the terminal's last column Open
  • Fixed a mod's Client that fails while drawn taking down everything the mod drew around it; it now fails alone and raises ui.fault Probably client-error-text-is-stripped-of-prefixes-and-falls-back-whe, plugin-client-faults-are-now-reported-and-surfaced-the-clie, new-ui-client-fault-control-request-lets-the-desktop-report, new-plugin-function-hooks-feature-slot-plugin-function-hook
  • Fixed claude plugin validate failing an Anthropic marketplace's own plugin and listing a clean plugin.json in --json No entry names this
  • Fixed a mod's band that fails to draw briefly telling the cards under it to step aside Nothing to match on
  • Fixed a failed plugin component showing Error or nothing as its reason when the failure carried no message No entry names this
  • Improved the line a mod's author sees when its band or pane fails to draw: it names the mod and says nothing was drawn Nothing to match on
  • Fixed published artifact pages freezing or crashing the reader's browser tab on short code blocks with many unclosed <script> tags Nothing to match on
  • Fixed a mod's Client region staying failed for the whole session after the terminal threw while drawing it Nothing to match on

A model matched these bullets to the GitHub issues they fix, so a link can be wrong.

System prompt

No change to the system prompt since v2.1.288.

Claude Code, interactive mode

Documentation

What the docs did around this release

182 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Switches

Every name in this release

The 11 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.

Slash commands

Settings and names in the code

Feedback