Follow Discord
Sweep 06 Nov 2026 · 01:32Z Build v2.1.319 537 read Stable v2.1.311 Latest v2.1.318 Next v2.1.319 Feeds RSS JSON llms.txt llms-full.txt Unofficial
HomeReleasesWhat has changed since
What has changed since

An entry is only as true as the day it was written.

Flags move on the server after a release ships. Anthropic's own notes land days later and their documentation later still. Sometimes an entry turns out to be wrong and gets corrected by hand. All of that is recorded against the entry it happened to, and this is the whole of it in the order it happened.

Nothing here replaces an entry. Every line links to the page its release published, still saying what that release said, because a correction is added and dated rather than swapped in.

Events22,542dated, and never edited afterwards
Newestthe last time anything moved
Flag readings moved17,190a reading is one sample, for one account
Documentation arrived5,242a docs edit touched an entry's names
WhenEntryWhat happened
v2.1.265ui.close Documentation arrivedAnthropic's documentation has since written up ui.close, on Test a mod.
the line in the docs

* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hoo…

v2.1.265ui.close Documentation arrivedAnthropic's documentation has since written up ui.close, on Test a mod.
the line in the docs

* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hoo…

v2.1.265ui.close Documentation arrivedAnthropic's documentation has since written up ui.close, on Test a mod.
the line in the docs

* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hoo…

v2.1.265ui.close Documentation arrivedAnthropic's documentation has since written up ui.close, on Test a mod.
the line in the docs

* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hoo…

v2.1.265ui.close Documentation arrivedAnthropic's documentation has since written up ui.close, on Test a mod.
the line in the docs

* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hoo…

v2.1.265hotkey Documentation arrivedAnthropic's documentation has since written up hotkey, on Mods reference.
the line in the docs

More `Button` rules: `action` names one of Claude Code's own [keybinding actions](/docs/en/keybindings), and the user's binding for it presses the button when that binding is a chord or a modified key. A digit `hotkey` on a button in the b…

v2.1.267Button Documentation arrivedAnthropic's documentation has since written up Button, on Mods reference.
the line in the docs

More `Button` rules: `action` names one of Claude Code's own [keybinding actions](/docs/en/keybindings), and the user's binding for it presses the button when that binding is a chord or a modified key. A digit `hotkey` on a button in the b…

v2.1.260Button Documentation arrivedAnthropic's documentation has since written up Button, on Mods reference.
the line in the docs

More `Button` rules: `action` names one of Claude Code's own [keybinding actions](/docs/en/keybindings), and the user's binding for it presses the button when that binding is a chord or a modified key. A digit `hotkey` on a button in the b…

v2.1.277prompt.attachment Documentation arrivedAnthropic's documentation has since written up prompt.attachment, on Mods reference.
the line in the docs

| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: nul…

v2.1.277prompt.attachment Documentation arrivedAnthropic's documentation has since written up prompt.attachment, on Mods reference.
the line in the docs

| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: nul…

v2.1.277prompt.attachment Documentation arrivedAnthropic's documentation has since written up prompt.attachment, on Mods reference.
the line in the docs

| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: nul…

v2.1.277prompt.attachment Documentation arrivedAnthropic's documentation has since written up prompt.attachment, on Mods reference.
the line in the docs

| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: nul…

v2.1.286prompt.compose Documentation arrivedAnthropic's documentation has since written up prompt.compose, on Mods reference.
the line in the docs

| [`prompt.section`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each named section of the system prompt. `e.name` is the section's `id` in `prompt.compose`. | `{ text }`, or `{ text: null }` to omit the section |

v2.1.286prompt.compose Documentation arrivedAnthropic's documentation has since written up prompt.compose, on Mods reference.
the line in the docs

| [`prompt.section`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each named section of the system prompt. `e.name` is the section's `id` in `prompt.compose`. | `{ text }`, or `{ text: null }` to omit the section |

v2.1.286prompt.compose Documentation arrivedAnthropic's documentation has since written up prompt.compose, on Mods reference.
the line in the docs

| [`prompt.section`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each named section of the system prompt. `e.name` is the section's `id` in `prompt.compose`. | `{ text }`, or `{ text: null }` to omit the section |

v2.1.280process.spawn Documentation arrivedAnthropic's documentation has since written up process.spawn, on Mods reference.
the line in the docs

Events are grouped by what they concern, each with when it fires and what a hook on it can return. Hooks on `turn.step` and `process.spawn` are async generators, and other hooks are async functions.

v2.1.271autoFocus Documentation arrivedAnthropic's documentation has since written up autoFocus, on Draw in the interface with a mod.
the line in the docs

* **`autoFocus`**: to choose which control has the focus when the pane opens, add `autoFocus: true` to it. The prop accepts only `true`, so omit it on the other controls.

v2.1.271autoFocus Documentation arrivedAnthropic's documentation has since written up autoFocus, on Draw in the interface with a mod.
the line in the docs

* **`autoFocus`**: to choose which control has the focus when the pane opens, add `autoFocus: true` to it. The prop accepts only `true`, so omit it on the other controls.

v2.1.268ui.press Documentation arrivedAnthropic's documentation has since written up ui.press, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.268ui.select Documentation arrivedAnthropic's documentation has since written up ui.select, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.260ui.select Documentation arrivedAnthropic's documentation has since written up ui.select, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.260ui.select Documentation arrivedAnthropic's documentation has since written up ui.select, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.268ui.input Documentation arrivedAnthropic's documentation has since written up ui.input, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.260ui.input Documentation arrivedAnthropic's documentation has since written up ui.input, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.260ui.input Documentation arrivedAnthropic's documentation has since written up ui.input, on Draw in the interface with a mod.
the line in the docs

A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another …

v2.1.271Raster Documentation arrivedAnthropic's documentation has since written up Raster, on Draw in the interface with a mod.
the line in the docs

For a heat map, a sparkline, or a game board in the terminal, draw one `Raster` and not a `Box` for each cell. A `Raster` takes a `key`, its size in `columns` and `rows`, and `cells`, a base64 string that packs every cell. Each cell is thr…

v2.1.271Raster Documentation arrivedAnthropic's documentation has since written up Raster, on Draw in the interface with a mod.
the line in the docs

For a heat map, a sparkline, or a game board in the terminal, draw one `Raster` and not a `Box` for each cell. A `Raster` takes a `key`, its size in `columns` and `rows`, and `cells`, a base64 string that packs every cell. Each cell is thr…

v2.1.269turn.complete Documentation arrivedAnthropic's documentation has since written up turn.complete, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.265turn.complete Documentation arrivedAnthropic's documentation has since written up turn.complete, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.265turn.complete Documentation arrivedAnthropic's documentation has since written up turn.complete, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.269turn.step Documentation arrivedAnthropic's documentation has since written up turn.step, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.269turn.step Documentation arrivedAnthropic's documentation has since written up turn.step, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.260turn.step Documentation arrivedAnthropic's documentation has since written up turn.step, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.260turn.start Documentation arrivedAnthropic's documentation has since written up turn.start, on React to events with a mod.
the line in the docs

A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:

v2.1.277isLink Documentation arrivedAnthropic's documentation has since written up isLink, on Use the mods API.
the line in the docs

* **`$.fs.list`**: returns one directory's entries as `{ name, kind, size, isLink }` and isn't recursive

v2.1.267fs.list Documentation arrivedAnthropic's documentation has since written up fs.list, on Use the mods API.
the line in the docs

* **`$.fs.list`**: returns one directory's entries as `{ name, kind, size, isLink }` and isn't recursive

v2.1.280session.send Documentation arrivedAnthropic's documentation has since written up session.send, on Use the mods API.
the line in the docs

`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:

v2.1.280session.receive Documentation arrivedAnthropic's documentation has since written up session.receive, on Use the mods API.
the line in the docs

`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:

v2.1.269session.receive Documentation arrivedAnthropic's documentation has since written up session.receive, on Use the mods API.
the line in the docs

`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:

v2.1.267session.receive Documentation arrivedAnthropic's documentation has since written up session.receive, on Use the mods API.
the line in the docs

`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:

v2.1.267session.receive Documentation arrivedAnthropic's documentation has since written up session.receive, on Use the mods API.
the line in the docs

`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:

v2.1.271clock.every Documentation arrivedAnthropic's documentation has since written up clock.every, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.271clock.after Documentation arrivedAnthropic's documentation has since written up clock.after, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.271clock.sleep Documentation arrivedAnthropic's documentation has since written up clock.sleep, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.271clock.now Documentation arrivedAnthropic's documentation has since written up clock.now, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.260session.start Documentation arrivedAnthropic's documentation has since written up session.start, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.259session.start Documentation arrivedAnthropic's documentation has since written up session.start, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.259session.start Documentation arrivedAnthropic's documentation has since written up session.start, on Use the mods API.
the line in the docs

Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution…

v2.1.269plugin.register Documentation arrivedAnthropic's documentation has since written up plugin.register, on Manage mods for your organization.
the line in the docs

Each time another mod is about to load, your mod receives the list that `claude plugin validate` prints, in an event named [`plugin.register`](/docs/en/plugins/mods/reference#other-mods). A mod in `prependPlugins` can read that list and re…

v2.1.269plugin.register Documentation arrivedAnthropic's documentation has since written up plugin.register, on Manage mods for your organization.
the line in the docs

Each time another mod is about to load, your mod receives the list that `claude plugin validate` prints, in an event named [`plugin.register`](/docs/en/plugins/mods/reference#other-mods). A mod in `prependPlugins` can read that list and re…

Feedback