CodeariaAcademy
Article cover: a cartridge in the slot of an old game console under orange light, with the words Mods for the agent
October 5, 202612 min readClaude CodeAI Agents

People now play Doom inside Claude Code while the agent writes code. What else are mods allowed to do?

Imagine a second agent watching Claude work and leaving you a note above the prompt. What Claude Code mods can do, how to install one, and what you risk.

In this article7
In short

Mods are a new kind of Claude Code plugin: JavaScript or TypeScript functions that run inside Claude Code itself. A mod can draw panes and bands in the interface, redraw the spinner and tool call rows, step into a tool call, and add commands that run without a Claude turn. They need version 2.1.287 or later, are on by default, were announced by Anthropic on 1 October 2026, and install through /plugin. A built-in mod called You should know shipped alongside them: a side agent watches a longer task and shows a note above the prompt when it finds something you might miss. It is off by default and works only in first-party Anthropic sessions with telemetry on. Mods are not sandboxed and run with your permissions.

"Every other player in the match is a person waiting for their Claude to finish." That is how Jarrod Watts described his mod, intermission, on 2 October. When Claude Code has been working for more than two seconds, Doom opens next to the transcript, and every opponent in the match is someone else waiting on an agent. Claude finishes, a three-second countdown runs, and you are back in the terminal.

The day before, Anthropic announced Claude Code mods, and the @ClaudeDevs post passed 4.3 million views. Doom is the loudest example and far from the most useful one. A mod reaches places that hooks and skills never could: it can redraw the interface and approve a tool call on your behalf. And Anthropic has already built parts of Claude Code itself as mods.

What Claude Code mods are and how they differ from hooks

A mod is a plugin that changes how Claude Code looks and behaves. Inside it are event handlers written in JavaScript or TypeScript. Claude Code calls them when Claude is about to run a tool, when you submit a prompt, when part of the interface is drawn. A handler can just watch the event, change it, or answer it itself, in which case the usual behavior does not run.

Hooks in settings.json also fire on events, but they are an external script. A mod lives inside the Claude Code process, which is why it is the only one of the four ways to extend Claude Code that can draw.

How it worksDrawsPick it when
ModJS or TS functions inside Claude CodeYesYou want a pane, a band above the prompt, a command, or to rewrite an event
Settings hookAn external script or request on an eventNoYou want to block, allow or log an event
SkillA SKILL.md file of instructionsNoYou keep pasting the same instructions
MCP serverA separate process with toolsNoClaude needs an external service

A mod does not replace skills built for your tasks or MCP servers. One plugin can hold all of it at once: a mod, a skill and an MCP server.

What a Claude Code mod can do

The documentation lists what the other options cannot:

  • draw an interface of its own: a pane beside the transcript or a band above the prompt, with tabs, buttons and text fields;
  • redraw Claude Code itself: a tool call's row, the spinner, the dialog Claude asks questions in;
  • step into a tool call: hold it while you answer a question, answer it without running the tool, or send the request to a different model;
  • add a /command that runs at once, with no Claude turn, even while Claude is busy.

The smallest mod is three files: the .claude-plugin/plugin.json manifest, hooks/hooks.json pointing at the code, and hooks/register.js itself. The example from the documentation counts tool calls and appends the count to the spinner:

hooks/register.js
let calls = 0
export function register(on) {
on('tool.call', async ($, e, next) => {
calls += 1
$.ui.invalidate('ui.render')
return next(e)
})
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}

While Claude works, the spinner reads Thinking · tool calls: 3…. Intermission uses the same trick to put the match score next to the spinner, and draws the game in a pane on the right.

The intermission mod at work. Screenshot from the README of jarrodwatts/intermission by Jarrod Watts, October 2026

Anthropic has calmer examples in the claude-code-playground repository, shared as they are, without support. token-weather draws a forecast of how full your context window is getting above the prompt. blast-radius holds a risky command such as rm -rf, git reset --hard or git push --force and shows what it would change, with Proceed and Cancel buttons; with no answer for 10 minutes, the command is declined. replay-theater adds /replay, which steps through the file edits from the last turn.

Claude Code itself is already partly built from mods. The /diff pane is the built-in mod cc-plugin-diff, loading AGENTS.md is a mod too, and the source of some built-in mods sits in the mods folder of the Claude Code repository.

You should know: a second agent above the prompt

On 2 October Anthropic showed the built-in mod You should know. According to the documentation, it runs a side agent that watches your back while Claude works on a longer task. When it finds something worth knowing that you might miss, it shows a note above the prompt. The announcement puts it more plainly: it scans Claude's output for important information so you stay in the loop.

It is off by default and takes one command to turn on:

turn on You should know
/plugin enable cc-plugin-you-should-know@builtin

The 2.1.287 changelog sets two conditions: the session goes directly through Anthropic rather than Bedrock or Vertex, and telemetry is on. In /plugin the mod sits in the Installed tab behind Show disabled, and only if it is available for your organization. In 2.1.288 the notes started saying who made a decision: "we", "the main agent" or "you".

What we could not find is the price. The documentation does not say which model the second agent runs on or how much it uses. On 5 October a user opened issue #99649: the built-in plugin is missing from /plugin list, and its usage does not show up in /usage. There was no maintainer reply at the time of writing. If you already watch Claude Code's weekly limits, you will have to check what is left after a long task with this mod yourself.

How to install a mod or ask Claude to write one

A mod installs like any plugin, from a marketplace.

  1. 1

    See what the mod does

    claude plugin validate ./some-mod lists the events on the hooks: line and the API calls on the calls: line, without running the code.

  2. 2

    Install it

    /plugin install name@marketplace in a session, or claude plugin install name@marketplace in your shell. If you installed from the shell while a session was open, run /reload-plugins.

  3. 3

    Check that it loaded

    /plugin shows a line under the tabs such as 1 mod active · first-mod. Built-in mods are left out of that line.

Intermission, for instance, installs with /plugin install intermission --marketplace jarrodwatts/intermission, then /intermission. It needs macOS 15 or later and the Ghostty or kitty terminal, and downloads about 20 MB on first run. Another mod by the same author, claude-image-view, shows thumbnails of pasted images above the prompt instead of [Image #1]; it also needs Ghostty or kitty and runs on macOS and Linux.

You do not have to write a mod by hand. The built-in plugin-authoring skill tells Claude where to put a mod and which events your version has, and you can call it yourself. The documentation's example request: "make a mod that shows the current git branch above the prompt". Claude writes the mod into ~/.claude/dev-mods/ and offers to turn on hot reload for the session. That mod lives only in the current session, so to keep it, copy the folder somewhere of your own and load it with claude --plugin-dir.

If all you want is a line with the model, context and branch at the bottom of the screen, a mod is overkill: a configured statusline does the job.

Where a mod shows up, and where it runs silently

A mod's hooks run wherever the plugin loads. Drawing is narrower. Panes and bands appear in claude in a terminal, including an editor's integrated terminal and the JetBrains plugin, and in the Code tab of Claude Desktop. In the VS Code extension's chat panel, in claude -p, in the Agent SDK and in a cloud session the mod runs but shows nothing. A WSL session in Desktop has no plugins at all. The documentation advises mod authors to check where they are running and fall back to a line in the transcript where nothing draws.

What a mod can do without asking you

A mod runs with your permissions

Mods are not sandboxed: even with sandboxing on, a process a mod starts runs outside the sandbox. A mod reads and writes files, starts programs, makes network requests, sees environment variables and settings files that hold API keys, sees every prompt and tool call and can rewrite them. It can approve a tool call before you are asked and spend your usage by calling a model. The one thing it cannot change is the permission prompt.

The rule that follows is simple: run someone else's mod through claude plugin validate first, read the calls: line, and install only from authors and marketplaces you trust. There are three ways to turn mods off: one mod from the Installed tab in /plugin, every installed mod for one session with --safe-mode, every mod everywhere with "disableAllHooks": true in ~/.claude/settings.json. Built-in mods, You should know included, ignore those flags; you turn them off in /plugin.

The feature is very young, and the changelog shows it. Version 2.1.289 fixed installed mods not loading in the first session after an upgrade, and a case where a deny or ask rule on part of a compound shell command did not hold against a mod's approval on managed machines.

Where to start

Our opinion, and you can disagree: the first mod to install is blast-radius, not Doom. While nothing risky happens, it changes nothing about how you work, and it stops exactly the commands that take longest to undo. We would turn on You should know for long tasks and watch the limit until Anthropic says what it costs. We are wrong if its notes turn out more useful than the description suggests and catch something you missed in almost every long task: then it is worth keeping on all the time.

Versions as of 5 October 2026: mods need Claude Code 2.1.287 or later, and the latest version in the changelog is 2.1.289. Versions change, so check the current one in the documentation.

Sources10expand
  1. Anthropic, «Mods overview», Claude Code documentation, checked 5 October 2026 — https://code.claude.com/docs/en/plugins/mods/overview
  2. Anthropic, «Create a mod», Claude Code documentation, checked 5 October 2026 — https://code.claude.com/docs/en/plugins/mods/create
  3. Anthropic, «Claude Code CHANGELOG», sections 2.1.287–2.1.289 — https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
  4. @ClaudeDevs, «You can now mod Claude Code», 1 October 2026 — https://x.com/ClaudeDevs/status/2105721434807083061
  5. @ClaudeDevs, «You should know», 2 October 2026 — https://x.com/ClaudeDevs/status/2106118517447876618
  6. Jarrod Watts, post about intermission, 2 October 2026 — https://x.com/jarrodwatts/status/2105858869482471602
  7. Jarrod Watts, «jarrodwatts/intermission», README, checked 5 October 2026 — https://github.com/jarrodwatts/intermission
  8. Jarrod Watts, «jarrodwatts/claude-image-view», README, checked 5 October 2026 — https://github.com/jarrodwatts/claude-image-view
  9. Anthropic, «blast-radius», claude-code-playground, checked 5 October 2026 — https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/blast-radius
  10. GitHub, issue #99649 «Built-in plugin missing from /plugin list and /usage cost tracking», 5 October 2026 — https://github.com/anthropics/claude-code/issues/99649

Comments