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.
| When | Entry | What 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 docsMore `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 docsMore `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 docsMore `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 docsEvents 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsFor 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 docsFor 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsA 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 docsWork 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 docsWork 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 docsWork 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 docsWork 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 docsWork 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 docsWork 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 docsWork 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 docsEach 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 docsEach 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… |