Skip to main content
Claude Code Mods: What They Are, and the Ten We Open-Sourced
AI Agents|October 2, 20268 min read

Claude Code Mods: What They Are, and the Ten We Open-Sourced

At 3 a.m. one of our own mods refused to let Claude run rm -rf until it got a launch code. We built twelve Claude Code mods in one night, from a live spend meter to a test-failure boss fight, and open-sourced ten. Here is what a mod is and what each one does.

Gabe KedingParker NewellLuke Keding

The OneWave Team

AI Consulting

Short answer: a Claude Code mod is a plugin made of function hooks that runs inside the Claude Code session itself. It can draw a live pane beside the transcript, a band above the prompt, a status line or a toast, and it can block, rewrite or react to any tool call before it runs. Mods hot-reload while you work, and Claude Code can write them for you. We built twelve in one night and open-sourced ten of them.

At a Glance

QuestionAnswer
What is a mod?A Claude Code plugin whose hooks module runs in the session and draws UI
What can it draw?Panes, a band above the prompt, status line entries, toasts, slash command output
What can it control?Tool calls, prompts, the system prompt, sounds, model calls, timers
How big is one?Three files minimum: a manifest, a hooks list, one TypeScript module
Do you have to write it yourself?No. Ask Claude Code for one and it writes, validates and loads it
Where does it draw?The terminal and the Code tab of the Claude Desktop app. Hooks also run in VS Code and claude -p, without UI
Our repogithub.com/OneWave-AI/claude-code-mods: ten MIT-licensed mods, 155 tests, installable with /plugin

Anthropic shipped mods on October 1

Anthropic opened mods to everyone with Claude Code 2.1.287 on October 1, 2026. The launch post came from the Claude developer account, alongside an official mods guide and a getting-started tutorial by Addy Osmani.

ClaudeDevs@ClaudeDevs·Oct 1, 2026
You can now mod Claude Code: change how it behaves, customize the UI, swap in your own features. Write one with a few lines of TypeScript, or have Claude build it for you. Mods ship inside plugins, so you install them with /plugin in the CLI or desktop app.
View on X

Boris Cherny, who created Claude Code, made the case we agree with most: there is no reason every team should run an identical Claude.

Boris Cherny@bcherny·Oct 1, 2026
Mods are absolutely insane. You can now customize Claude to work and look the way you want by just prompting it. Each person works differently, so there's no reason why everyone should have an identical Claude experience.
View on X

We started building the same night.

The mod that stopped us

A little before 3 in the morning, while we were packaging these mods to publish, Claude tried to clean up a folder of screenshots with a recursive delete. One of the mods we had built less than an hour earlier, launch-codes, caught the command, raised a red-alert pane and refused to run it without a code. Claude reported the block, rewrote the cleanup as a file-by-file delete, and moved on.

That is the whole argument for mods in one moment. A guardrail you can describe in a sentence became a guardrail that runs on every Bash call, in our own terminal, written in an evening.

Skills change what Claude knows. Hooks change what Claude is allowed to do. Mods change what you see while it works, and they can do all three.

What a Claude Code mod actually is

A mod is a Claude Code plugin with a hooks module: a TypeScript file that exports one register function. Inside it, on(event, hook) attaches a function to an event such as a tool call, a prompt submit, the start of a session, or a request to draw a part of the interface. Each hook gets the engine, the event and a next function, so it can pass the event through, change it, or answer it without passing it on.

That last part is what separates mods from the shell-script hooks most teams already use. A settings hook runs a command and returns a verdict. A mod lives in the session, keeps state, and draws. Its hooks run everywhere Claude Code runs, but according to Anthropic's mods guide what it draws only shows up in the terminal and the Code tab of the Desktop app. The VS Code chat panel, claude -p and cloud sessions run the hooks without the panes.

The same mods run in the Desktop app. This is burn-meter in the Desktop Code tab: the pane on the right, the band above the prompt, and code-pet's status line next to the model picker, all from the same files that run in the terminal.

Claude Desktop Code tab running the burn-meter mod: a Burn Meter pane with spend bars and plan limits, a burn band above the prompt, and the code-pet status line
Claude Code Changelog@ClaudeCodeLog·Oct 1, 2026
Claude Code CLI 2.1.287 changelog: New features: Added Claude Mods: plugins may now modify deeper behavior.
View on X

The minimum is three files:

  • .claude-plugin/plugin.json with a name, version and description
  • hooks/hooks.json pointing at the module
  • hooks/register.tsx, the module itself

claude plugin validate checks a mod the way the engine will load it, and claude plugin test runs its tests against the real engine. Every mod in our repo ships with tests, because a hook that throws is skipped silently and a mod that seems to do nothing usually threw.

The ten we open-sourced

We did not plan a product. We started with one idea at midnight and kept asking for the next one. Here is what came out, roughly in order of how useful they turned out to be.

burn-meter

Get it: burn-meter source on GitHub · /plugin install burn-meter@claude-code-mods

Claude Code with the burn meter docked: a flame bar of session spend, 5-hour and weekly plan limits, and the cost in burritos and McDoubles, plus the band above the prompt

A band above the prompt with a growing fire bar for session spend, plan-limit bars with reset times, and the cost translated into burritos and McDoubles. It sounds like a joke. It is the one we watch most, because spend you can see is spend you manage.

launch-codes

Get it: launch-codes source on GitHub · /plugin install launch-codes@claude-code-mods

Claude Code blocking rm -rf and git push --force behind a launch-codes red alert pane with a four-character code and an ABORT dialog

Classifies every Bash command before it runs. Risky rm -rf, force pushes, git reset --hard, DROP through a live SQL client, production deploys and downloaded scripts piped into a shell all need a one-time code. It has 64 tests, more than any other mod in the repo, because a guardrail that fires on grep -r TODO gets turned off by lunch. Anthropic ships a sample mod with the same instinct, blast-radius, which holds a risky command and shows what it would change before you proceed.

session-wrapped

Get it: session-wrapped source on GitHub · /plugin install session-wrapped@claude-code-mods

Session Wrapped card showing session length, tool calls, MVP tool, files touched, test runs and cost for a Claude Code session

Spotify Wrapped for a session. /wrapped plays an animated reveal of tool calls, the MVP tool, red-to-green test runs and cost, then writes a shareable PNG. The PNG encoder is written inside the mod, since a hooks module has no Node and no DOM.

boss-fight and code-pet

Get it: boss-fight source on GitHub · code-pet source on GitHub · /plugin install boss-fight@claude-code-mods

Claude Code with the boss-fight pane open: a red pixel boss called Race Condition Wyrm at 3 of 7 HP after three tests were fixed

Failing tests spawn a pixel boss with one HP per failure, and every run that fixes tests lands a hit. code-pet is a pixel creature that eats on tool calls, gets sick on failures, panics on destructive commands and sleeps when you stop. Both read real test output from vitest, jest, pytest, mocha and cargo.

Claude Code with the code-pet pane open: a pixel pet named Byte at level 7, marked sick after a failed test run

inner-monologue and sportscaster

Get it: inner-monologue source on GitHub · sportscaster source on GitHub · /plugin install inner-monologue@claude-code-mods

Claude Code with the inner monologue pane listing dry, timestamped thoughts about the session

Two mods that call a model from inside the session. One writes Claude's dry inner thoughts about what it just did. The other calls the session as live sports play-by-play, out loud, with generated crowd audio. Neither makes anyone faster. Both made it obvious when the agent was going in circles.

Sound on. This is the sportscaster calling a scripted session in a real Claude Code terminal:

agent-narrator, agent-race and inbox-alerts

Get it: agent-narrator source on GitHub · agent-race source on GitHub · inbox-alerts source on GitHub · /plugin install agent-narrator@claude-code-mods

Claude Code with the agent narrator pane listing every step in plain English and 52 minutes of estimated human time savedClaude Code with the agent race pane showing two model lanes finishing a task with tools, edits, tests and cost per lane
  • agent-narrator turns each step into one plain-English sentence with a running time-saved estimate. We built it for training rooms where nobody has watched an agent work before.
  • agent-race puts several sessions on one track for the same task, which is the fastest way we have found to compare models or prompts side by side.
  • inbox-alerts polls Gmail, Slack and Calendar through the claude.ai connectors and surfaces new items as toasts and a pane, so you stop alt-tabbing out of the terminal.

What we learned building twelve in a night

  • Ask for the mod, do not write it. Claude Code ships a plugin-authoring skill that knows the API. Every mod here started as one sentence typed into a session.
  • A hook that throws fails quietly. Midway through the night the burn meter vanished, and the only sign was one dim transcript line: ui.render hook skipped: threw TypeError. Tests are how you find that before your team does.
  • Put state where the engine keeps it. A hot reload resets the module's own variables. Values the drawing reads belong in the session's state, or the pane goes blank on every edit.
  • Two stayed private. One runs our agency operations against our own CRM, the other gates client data. Mods that touch your own systems are the most valuable ones, and the ones you should not publish.

Where this fits for a business

Most companies we train still treat Claude Code as a chat window that edits files. Mods are the layer where a team encodes how it works: which commands need a second look, what spend looks like in real time, what a non-engineer sees when the agent is running. That is the same idea behind the Claude skills library and the skills we use to run the company, pushed into the interface itself.

It also needs a policy. Anthropic's guide is blunt that a mod is code running with your permissions: it can read your files and environment variables, see every prompt, approve tool calls and spend your usage, and it is not sandboxed. Before anyone installs a mod, run claude plugin validate on it, which lists every event it hooks and every call it makes without running it. Organizations can restrict mods through managed settings.

The repo is at github.com/OneWave-AI/claude-code-mods. Add it in any session with /plugin marketplace add OneWave-AI/claude-code-mods, install the ones you want, and break them. If you want help deciding which guardrails your team should run, that is a Claude Code consulting conversation we have every week.

Sources

Claude Code modsClaude Code pluginsClaude Code hooksClaude Code customizationClaude Code status lineClaude Code guardrailsplugin-authoringopen source Claude CodeClaude Code panesagentic coding
Share this article

Want this applied to your own stack?

Leave an email and we'll send back where this fits your team specifically — what to try first, and what it actually takes to run it.

No sequence, no spam. Or book a call directly.

Rather just talk? Book a free 30-minute call — no pitch, just a clear look at what's possible.

Not ready to talk? Stay in the loop.

OneWave Monthly: our best AI reads, blogs, and workflows. Unsubscribe anytime.