AI DevelopmentPlaybook7 min readPublished October 2, 2026

A mod runs as you, inside the agent, with no sandbox

Before You Install a Claude Code Mod: A Security Checklist

Claude Code Mods can rewrite prompts, approve tool calls and read secrets. A checklist for reviewing a third-party mod before you or your team switch it on.

DA
Digital Applied Team
Research and practical guidance
Applies toClaude Code 2.1.287+

Claude Code 2.1.287, released October 1, 2026, turned on Mods by default: plugins whose code runs inside Claude Code and can change prompts, tool calls and permission decisions. Anthropic’s own documentation tells you to install them only from authors you trust. This checklist is the review to run before you do, for one developer or for a whole team.

Editorial note: Built from Anthropic’s Mods overview, events guide, reference and administrator guide at code.claude.com, as published for version 2.1.287 and read October 3, 2026. The feature is new and the documentation will change; check it against the version you run.

Key takeaways
  1. 01
    Validate before you loadOne command lists every event a mod handles and every API call it makes, without running it.
  2. 02
    Every call needs a reasonA theme mod that reads environment variables or makes network requests has some explaining to do.
  3. 03
    The guard has gapsDeny rules stop a mod approving Claude’s tool calls, not its own file and process calls.
  4. 04
    Teams decide centrallyOne managed setting keeps users’ own mods from loading, and users cannot undo it.

01 — The riskWhat you are trusting

Most plugins add instructions or tools. A mod adds code that runs in the middle of every session. The Mods overview lists what a loaded mod can do. In short: act on your machine as you, read environment variables and settings files where API keys often live, see and rewrite every prompt and tool call, submit a prompt as if you typed it, approve a tool call before you are asked, and call a model on your plan.

Two limits sit around that. Mods are not sandboxed, and turning on Claude Code’s sandbox isolates the shell commands Claude runs, not a program a mod starts. And a mod can restyle most of the interface but not the permission prompt, so what a prompt shows you is still accurate. A mod can, though, decide a tool call before any prompt appears. For the full mechanism, see our explainer on what Mods are and the events they hook.

02 — Step 1Read the validate output

Clone the plugin and run claude plugin validate on its directory. Nothing runs. The output has a hooks: line listing the events the mod handles and a calls: line listing the API methods its code uses. Anthropic’s administrator guide explains why the list can be trusted: the mods API is the only way a mod reaches files, processes or the network, and Claude Code refuses to load a mod that uses the API in a way the command cannot read.

Four entries on the hooks line mean the mod is in the decision path, not just watching. Check each one against what the mod claims to do.

  • tool.call: sees every tool call and can change it, refuse it or answer it so the tool never runs.
  • tool.check: can approve or deny a call before the permission prompt appears.
  • prompt.submit: sees and can rewrite every prompt.
  • session.append: can rewrite each row of the conversation before it is stored.

03 — Step 2Question each call

The calls line is where a review earns its time. The administrator guide names the calls to look for. The third column is our test: the question the mod’s author should be able to answer in one sentence.

Calls and meanings: Claude Code administrator guide for Mods, read October 3, 2026. Review questions are Digital Applied’s.
CallWhat it lets the mod doAsk before installing
$.fs.read, $.fs.writeRead or write any file you canWhich paths, and why?
$.process.run, $.process.spawnStart programs as youWhich program? It runs outside the sandbox and outside network policy.
$.http.fetchMake network requestsTo which host, carrying what data?
$.env.get, $.settings.readRead environment variables and settings, where keys liveCheck the env reads line. Does any named variable hold a secret?
$.env.setSet a variable for Claude Code and every command and MCP server it starts laterCould the value change what those programs run, such as a path or proxy?
$.model.completeCall a model on your plan or keyHow often, and with what in the prompt?
$.prompt.submit, $.session.sendSubmit a prompt as you, or message another sessionWhy does a mod need to speak for you?
$.mcp.callCall a tool on a connected MCP server, under your permission rulesWhich server and tool?

Combinations matter more than single calls. A mod that reads environment variables and makes network requests has everything it needs to send a key somewhere. That does not make it malicious, but it moves the mod from a skim to a line-by-line read.

04 — Step 3Read the hooks themselves

Mods are written in JavaScript or TypeScript, so the review can read the source rather than guess. For any mod in the decision path, read three things.

  • What it approves. If a tool.check hook returns allow, write down the exact calls it approves. In auto mode, the administrator guide notes, a call a mod approves runs without the classifier check.
  • How it fails. The events guide says a hook that throws or times out before passing the event on is skipped, so a guard without a catch handler lets the held command run. A guard should attach a catch handler that denies.
  • Where data goes. Follow every fetch, file write and spawned process back to the event data it carries.

Then pin what you reviewed. A mod is a plugin, so it updates like one, and an update is new code. The administrator guide points to the plugin update policy for deciding when a reviewed plugin can change.

The gap in deny rules

Where the built-in guard loads, a user’s mod cannot approve a tool call that a deny rule refuses. But that covers Claude’s tool calls only. Anthropic’s example: with reading .env denied, a mod can still read the file through its own API or start a program that does. Deny rules do not limit what a mod does itself.

05 — Step 4Set the team controls

For a team, the review is only half the job. The other half is deciding which mods can load at all. The built-in guard loads first on any machine with managed settings and for anyone signed in on a Team or Enterprise plan. A developer using an API key, Amazon Bedrock, Google Cloud or Microsoft Foundry gets it only on a machine with managed settings. By default the guard protects what the organisation manages and allows everything else.

A
allowManagedModsOnly
Guard option

Users’ own mods do not load. Their settings hooks and status lines keep working. Read from managed settings only.

Start here
B
disableSideloadFlags
Managed setting

Rejects --plugin-dir and --plugin-url at startup and stops mods Claude writes during a session from loading.

Close side doors
C
Marketplace allowlist
Plugin control

A mod is a plugin, so existing marketplace restrictions decide whether it can be installed at all.

Existing control
D
allowModsToOverrideDenyRules
Guard option

Lets a user’s mod approve calls a deny rule refuses. Off unless set. Leave it off.

Leave unset

Two warnings from the guide. The early-access environment variable that once gated Mods is now ignored, so setting it to zero keeps nothing off. And none of these settings sandboxes a mod you allow: it still runs with the user’s access to files, processes and the network. The lesson from the ClawHavoc plugin incident applies directly. An extension marketplace is a supply chain, and the controls belong in place before the first install, not after.

06 — Practical implicationsInstall, limit or refuse

The review ends in one of four outcomes. Write the outcome and the reason down, so the next person who asks about the same mod does not start again.

Observes only, no file, process or network calls
Install and pin the reviewed version
Install
Network or process calls with a clear reason
Install for one developer first, then roll out
Pilot
Approves tool calls or rewrites prompts
Line-by-line review and a fail-closed catch handler
Review
Secret reads plus network, with no clear reason
Do not install; ask the author first
Refuse

If your team builds its own mods instead, the same guide shows how to run an organisation’s mods ahead of the guard and use one as a policy check on the others. That is the right home for the protection described in our inference hooks and data loss prevention guide. Where a team wants this designed and reviewed rather than improvised, our AI transformation work covers agent permissions, extension review and the record that goes with them.

Next step

Set allowManagedModsOnly first, then review one mod at a time

On a team, switch users’ own mods off centrally, then admit mods one at a time after a validate run, a calls review and a read of any hook that approves or rewrites. On your own machine, run the same steps before the first install, not after the first surprise.

Agentic AI implementation

Review agent extensions before they run

Digital Applied sets up coding-agent permissions, reviews extensions and keeps a record of what each one can reach.

Managed settingsExtension reviewFail-closed guards
The four checks

Before any mod loads

  • →Run claude plugin validate
  • →Question every call
  • →Read hooks that approve
  • →Pin the reviewed version
Questions and answers

Practical questions

Yes. Clone the plugin and run claude plugin validate on its directory. The hooks line lists the events it handles and the calls line lists the API methods it uses, without executing the mod.
Digital Applied newsletter

Deep dives on AI, marketing and development.

Practical guides and fresh insights by email. No recycled takes.

Related dispatches

Continue reading

AI Development

Claude Code Mods: What Function Hooks Can Change in an Agent

Claude Code 2.1.287 adds Mods, plugins that wrap prompts, tool calls and permissions in TypeScript. What they can change, how to enable them and the risks.

October 1, 2026 · 8 minRead
AI Development

Two Agent CLIs Shipped. Here Is What Actually Changed

Claude Code v2.1.234 hardened the remaining pre-approval NTLM path accesses. Codex CLI 0.148.0 added Bedrock and session forking. What changed for operators.

August 18, 2026 · 14 minRead
AI Development

Grok Build Uploaded Entire Repos: What Actually Fixed It

Grok Build reportedly uploaded full repos and git history to xAI's cloud. The /privacy toggle never stopped it — a server-side flag did. Agent trust is infra.

July 14, 2026 · 12 minRead
AI Development

Claude Code Desktop Adds a Sandboxed Browser for Agents

Claude Code's desktop app now ships an in-app sandboxed browser. What agent-driven browsing, OAuth testing, and UI checks mean for dev teams in 2026.

July 12, 2026 · 10 minRead
AI Development

Agent Computer Use: Enterprise Automation Playbook

Enterprise playbook for deploying computer-use agents — a 40-point guardrails checklist spanning identity, audit, action boundaries, failures, and compliance.

May 22, 2026 · 17 minRead
AI Development

State of AI Agents 2026: 200+ Data Points Compiled

The definitive State of AI Agents 2026 — 247 data points across adoption, ROI, autonomy, and governance, sourced from McKinsey, Stanford HAI, and Gartner.

May 22, 2026 · 16 minRead
Google Search

See more Digital Applied analysis in your Google results by adding us as a preferred source.

Add as a preferred source