Claude Code plugins · announced October 1, 2026

Claude Mods: change how Claude Code works, from the inside

Claude Mods (also searched as “claude code mods” or “mods claude code”) are official Claude Code plugins made of small JavaScript or TypeScript functions. A mod hooks into Claude Code events — a tool call, a submitted prompt, a part of the interface being drawn — and can watch the event, change it, or take it over. This page explains what mods can do, how to install them, and how to build your first one. Every claim links to an official source.

What a mod can do

Mods run inside Claude Code, in its own process. That sets them apart from settings hooks, skills, and MCP servers, which all work from outside. According to the official mods overview, a mod can:

In Anthropic’s announcement, the examples are concrete: rewrite a prompt before it reaches the model, block, rewrite, or retry a tool call, approve or deny a permission request, and redact secrets from tool output before Claude reads it.

Requirements & how mods are enabled

Source: Turn mods on or off — Claude Code Docs

How to install a Claude Code mod

A mod installs as a plugin, from a marketplace. You give the plugin’s name, an @, and the marketplace’s name — in a session with /plugin install token-chart@your-org, or from your shell with claude plugin install token-chart@your-org. If you install from the shell while a session is open, run /reload-plugins to load it.

Try an official sample mod (no marketplace needed)

Anthropic publishes sample mods in the claude-code/mods directory of the claude-code-playground repository. To try one for a single session:

git clone https://github.com/anthropics/claude-code-playground.git
cd claude-code-playground/claude-code/mods
claude --plugin-dir ./token-weather

To keep one, add the folder as a local marketplace and install from it:

claude plugin marketplace add ./
claude plugin install token-weather@claude-code-playground-mods --scope user

To confirm which mods a session loaded, run /plugin — a dim line under the tabs lists them, like 1 mod active · first-mod.

Sources: Install or update a mod · claude-code-playground README

Build your first mod (minimal example)

A mod is a plugin whose code registers event handlers, called hooks. A small mod has three files (from the official docs):

first-mod/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json
    └── register.js

This complete register.js counts the tool calls Claude makes and shows the count beside the spinner, so you watch it read Thinking · tool calls: 1…, then 2…:

// The count, shared by the two hooks below
let calls = 0

// Claude Code calls this once when the mod loads
export function register(on) {
  // Runs each time Claude is about to use a tool
  on('tool.call', async ($, e, next) => {
    calls += 1
    // Ask Claude Code to draw the interface again, so the new count shows
    $.ui.invalidate('ui.render')
    // Let the tool run as usual
    return next(e)
  })

  // Runs each time Claude Code draws the spinner
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    // Keep Claude Code's spinner, with the count added after its word
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}

A hook can observe an event and let it continue, rewrite it, or answer it so the usual behavior never runs. To do anything outside its own code — draw, add a command, call a model, read a file — a hook calls the mods API, which is also what lets Claude Code list what a mod does before you install it.

Source: How a mod works — Claude Code Docs (the example above is quoted from that page)

Mod list & where to find more

Anthropic’s sample mods

ModWhat it does
token-weatherDraws a forecast of your context window above the prompt.
blast-radiusHolds a risky shell command (like rm -rf or a force push) and shows what it would change, with Proceed and Cancel buttons.
replay-theaterAdds a /replay command that steps through the file edits Claude made in the last turn.

Source: anthropics/claude-code-playground · claude-code/mods

Mods built into Claude Code

Some of Claude Code’s own features now ship as mods — you can see them in /plugin → Installed → Built-in:

Name in /pluginWhat it does
cc-plugin-diffTakes over /diff and draws its pane. Disable it in /plugin and the built-in version answers instead — or replace it with your own mod.
cc-plugin-agents-mdLoads AGENTS.md as project instructions.
cc-plugin-plugin-authoringGives Claude the plugin-authoring skill for writing mods.
cc-plugin-sec-defaultGuards what your organization manages from the mods a user installs.
cc-plugin-telemetrySends the analytics records that Claude Code and its built-in mods log.
cc-plugin-you-should-knowRuns a side agent that surfaces notes above the prompt when it spots something worth knowing. Disabled by default.

Source: Mods built into Claude Code · some built-in mod source is public in the mods directory of the Claude Code repository

Official resources

Where mods run

Where you run Claude CodeHooks runDrawn UI appears
claude in a terminal (incl. JetBrains plugin)YesYes
Desktop app, Code tab (except WSL sessions)YesYes, except terminal-only elements
WSL session in the Desktop appNo (plugins aren’t available in WSL)No
VS Code extension chat panelYesNo
claude -p and the Agent SDKYesNo
Remote Control from claude.ai or the mobile appYes, in the session on your machineIn the terminal on your machine
Cloud sessionsYes, for a plugin that reaches the cloud sessionNo

Source: Where mods run — Claude Code Docs

Security: read this before installing any mod

A mod is code that runs with your permissions, inside Claude Code. The docs are explicit: mods aren’t sandboxed, and once loaded a mod can:

Before installing, review the plugin. Get its files (for example by cloning its repository) and run:

claude plugin validate ./some-mod

The hooks: and calls: lines in the output list the events the mod handles and what it asks Claude Code to do — without running it. Install mods only from authors and marketplaces you trust.

Source: Decide whether to trust a mod

FAQ

Are Claude Code mods official?

Yes. Anthropic announced mods on October 1, 2026 in “Customize Claude Code with mods”. They ship in Claude Code 2.1.287+ (CLI) and 2.1.286+ (desktop app), are on by default, and some built-in features like /diff are now mods themselves.

What’s the difference between a mod and a hook?

Claude Code’s settings hooks run outside Claude Code as a shell command, HTTP request, or prompt configured in a settings file. A mod’s handlers are functions that run inside Claude Code, so they can rewrite events, draw UI, and replace features — things a settings hook can’t do. The official docs call the settings-file kind a “settings hook” and a mod’s handler a “hook”.

Do I need to know TypeScript to use mods?

No. Mods are written in JavaScript or TypeScript, but you can describe the mod you want in a Claude Code session and Claude writes it for you — including installing and hot-reloading it. And Anthropic’s sample mods work without writing any code.

How do I turn mods off?

Three levels: disable one mod from the Installed tab of /plugin; start one session with --safe-mode to disable every installed mod for that session; or set "disableAllHooks": true in ~/.claude/settings.json to disable every mod you installed in every session (your settings hooks and custom status line stop too). Built-in mods keep running under --safe-mode and --bare.

Do mods work in VS Code or claude -p?

Hooks run in both, but the drawn interface (panes, bands, replaced rows) only appears in the terminal and in the Code tab of the desktop app. A mod that draws can check which app it runs in and fall back to a transcript line where nothing draws.

Are mods free?

Mods ship inside Claude Code plugins and load on your own Claude Code installation. Anthropic’s announcement and documentation don’t describe mods as a paid add-on; a mod can, however, call a model on your plan or API key, which uses your normal usage.

Where can I find mods to install?

Start with Anthropic’s official samples (token-weather, blast-radius, replay-theater) in the claude-code-playground repository, and check the built-in mods in /plugin. Anthropic’s announcement also points to a Claude directory for plugins that include mods, reachable with /plugin in the CLI.

Sources: Anthropic announcement · Official mods documentation