Claude Code mods let you change the coding agent itself: add a panel, show a custom status indicator, or handle a tool call before it runs.
That is different from giving Claude another prompt or connecting an MCP server. A mod runs inside Claude Code and can change both its interface and its behavior.
The catch is permissions. Anthropic's documentation says mods are not sandboxed. They run with your user permissions and can reach files, secrets and the network. A useful-looking status widget still deserves a code review.
This guide covers when a mod makes sense, how to try a small one, and what to check before keeping it.
What is a Claude Code mod?
A mod is a plugin made of JavaScript or TypeScript event handlers. Claude Code calls those handlers when something happens, such as a tool call, a submitted prompt or an interface redraw.
A handler can observe an event, change it or handle it instead of the normal behavior.
According to the current official documentation, mods require Claude Code v2.1.287 or later. They are on by default, although an organization's managed settings can limit which ones load.
Some practical uses:
- Show context usage or a task indicator near the prompt.
- Add a command that runs a function without another Claude turn.
- Inspect a tool call before allowing it to continue.
- Keep shared state between handlers so one records an event and another displays it.
These are capabilities, not a reason to install every mod you find. Start with a problem you actually have.
Mods vs hooks vs skills vs MCP
Pick the smallest extension that solves the problem.
Use a skill for repeatable instructions. If you keep explaining your review process or coding standards, a skill may be enough. You do not need a mod just to store a checklist.
Use a settings hook for event-driven scripts. If an existing script can log an event or check a command, a settings hook is worth considering before writing an in-process handler.
Use MCP to connect external tools. An MCP server supplies tools from another process or service. It does not draw a custom pane inside Claude Code.
Use a mod when the interface or event handling is the job. A panel, a prompt-adjacent indicator, or a custom command that runs immediately is where mods become interesting.
One plugin can contain more than one of these. ‘Plugin' is the package; ‘mod' describes the event-handler code inside it.
How to try your first mod
For a first experiment, keep it read-only and visual. A branch-name indicator or tool-call counter is easier to inspect than a mod that rewrites prompts or approves commands.
1. Check your installed version
Run this in your terminal:
claude --version
If it is older than v2.1.287, update using the installation method you already use. If you are on a managed work account, check the organization's policy before loading third-party mods.
2. Ask for one small feature
In an interactive Claude Code session, you can ask Claude to create a mod. The official guide says Claude uses its built-in plugin-authoring skill; you can also open it with /plugin-authoring.
Try a narrow request:
Create a Claude Code mod that shows the current Git branch above the prompt.
Keep it read-only. Do not rewrite prompts, approve tool calls, call a model,
or make network requests. Explain the files and API calls before I load it.
This is a suggested prompt, not a tested implementation. Inspect the generated code and the approval prompt before loading it.
3. Validate the plugin directory
A small mod has a plugin manifest, a hooks.json file and a hooks module. The official example uses this layout:
first-mod/
.claude-plugin/
plugin.json
hooks/
hooks.json
register.js
Once you have the files, run:
claude plugin validate ./first-mod
Replace ./first-mod with your actual plugin directory. The validator reports the events the mod handles and the API calls it asks Claude Code to make, without running the mod.
Validation is not a security audit. Use it to focus your review. A branch-name indicator asking for model calls or unrelated network access needs an explanation.
4. Load it for one session
For a local plugin directory:
claude --plugin-dir ./first-mod
Then open /plugin and check that the expected mod appears in the active-mods line.
Keep the test in a disposable repository with no production credentials. Trigger the feature and check what changes. For a counter, make a few ordinary tool calls. For a branch indicator, compare the displayed branch with Git.
5. Keep it only after reviewing it
A mod generated inside a session is initially tied to that session. Anthropic's guide says you should copy it to a directory you control if you want to keep it, then load it with --plugin-dir or distribute it through a marketplace.
For an installed plugin updated from your shell, /reload-plugins loads the change into an open session. Otherwise it loads when you next start Claude Code.
Record the Claude Code version you tested. The official guide warns that events and methods can change between releases.
The security checklist matters more than the widget
A mod can read and write files your account can access, start processes and make network requests. It can also see prompts and tool calls, read environment variables, change session behavior and use your model allowance (see our Claude Code rate limits and usage quotas guide for how that allowance works).
Turning on Claude Code's Bash sandbox does not sandbox a process started by a mod. Treat a mod as software you are running on your machine, not as a harmless chat customization.
Before loading one:
- Read its source and dependencies, not only its README.
- Check whether its events and API calls match the feature it claims to provide.
- Look closely at file access, process execution, network calls and model calls.
- Check whether it rewrites prompts or approves tool calls.
- Use a test workspace without valuable credentials for the first run.
- Keep a known-good version and review updates before adopting them.
A mod that warns about a risky command is not proof that every risky action is covered. Its protection depends on its implementation. Do not use an unreviewed mod as your only safeguard.
Where will the custom UI appear?
Mods can draw panes and other interface elements in the interactive terminal and the Code tab of the Desktop app, subject to the documented platform limits.
The distinction matters elsewhere: hooks can run without their UI appearing. The official docs list no mod drawing in the VS Code extension's chat panel, claude -p, the Agent SDK or cloud sessions. The Desktop app's WSL sessions do not support plugins in the documented setup.
If your workflow is headless, design the mod to return useful text or logs instead of depending on a panel you will never see.
What if a mod breaks the session?
Start a diagnostic session with:
claude --safe-mode
This disables installed mods and other customizations for that session. It does not disable Claude Code's built-in mods, so ‘safe mode fixed it' is a useful clue, not a complete diagnosis.
To stop one installed mod, disable or uninstall its plugin from /plugin.
To stop all user-installed mods across sessions, the official docs describe setting "disableAllHooks": true in ~/.claude/settings.json. That also stops your settings hooks and custom status line; managed components can keep running. Do not use it without understanding that wider effect.
What should you build first?
Start with information you currently keep switching windows to check: a branch indicator, a context display or a small task-status panel.
Keep the first version observational. Add behavior-changing features only when you can explain what they change and how you will test them.
If a skill or settings hook solves the same problem, use that. Mods are useful when you need control of the interface or event pipeline, not because every workflow needs another plugin.
FAQ
Are Claude Code mods sandboxed?
No. Anthropic says they run with your permissions. The Bash sandbox does not contain processes a mod starts.
Do mods replace MCP servers?
No. MCP supplies external tools; mods can change the interface and handle events inside Claude Code. A plugin can include both.
Can I try a mod without installing it permanently?
Yes. Load its local directory for one session with claude --plugin-dir ./first-mod, after reviewing and validating the files.
Can I use a mod in VS Code?
The official docs say its hooks can run in the VS Code extension's chat panel, but its custom drawing does not appear there. An integrated terminal running the Claude CLI is a different case.
Related reading
- Claude Code Rate Limits & Usage Quotas Explained (2026)
- How to Set Up and Use Zapier MCP Server for AI Automation
- Top 10 Prompt Injection Detection & LLM Firewall Tools of 2026
Sources
Checked October 5, 2026. Commands and behavior are documentation-based; this article does not claim a hands-on test.
- Anthropic, Mods overview: https://code.claude.com/docs/en/plugins/mods/overview.md
- Anthropic, Create a mod: https://code.claude.com/docs/en/plugins/mods/create.md
- Anthropic, Manage mods for your organization: https://code.claude.com/docs/en/plugins/mods/admin.md
- BizStack, October 5 coverage: https://bizstack.tech/claude-code-now-supports-mods-powerful-unsandboxed-plugins/
- DevOps.com, October 5 example of a status-panel mod: https://devops.com/open-source-mod-brings-rate-limits-costs-and-ci-status-into-view-for-claude-code-users/


