Claude Code plugin: wetin e be and wetin e cost
Learn wetin Claude Code plugin be, where e dey live, how to install am, and why the mechanism cost nothing while everything e loads uses tokens.
Wetín Claude Code plugin be
Claude Code plugin na one directory of components wey Claude Code dey load and manage as one unit. The components na skills, agents, hooks, MCP servers, LSP servers, and background monitors. When you install plugin, e add all the parts at once under one name. When you disable am, e remove dem the same way.
Plugin no give the agent any ability wey e no already get. Every part inside plugin na something wey you fit write by hand for .claude/ directory. Plugin na the packaging layer. E give you way to version those parts, share dem with fifteen people, and update dem later without asking everybody to copy files. Na the whole idea be that. Most confusion about plugins dey happen because people expect dem to be new kind capability.
The optional manifest for .claude-plugin/plugin.json dey give the plugin name, and that name become namespace. You invoke skill for plugin wey dem call commit-commands as /commit-commands:commit. This mean two plugins fit each release skill wey dem call commit without one hiding the other. Plugin agents dey use the same scope for the @-mention list, as plugin-name:agent-name.
Plugin, skill, MCP server, ọ bụ rules file
Dem dey use okwu anọ a like say dem dey compete. E no be so, and e good make we state the boundary once.
- Skill na one unit of instruction wey Claude dey load when task need am. See wetin Agent Skill really be.
- MCP server na separate process wey dey expose tools to agent through protocol. Many times, na network service wey you run by yourself.
- Rules file like
CLAUDE.mdna project context wey system dey read when session start, and e dey apply to everything. - Plugin na container wey fit hold skills, agents, hooks, and MCP server definitions together, plus version number and distribution channel.
So question wey plugin dey answer no be "wetin agent fit do". Na "how I go ship this go my team and update am next month". If you dey choose between the first three, comparison of skills, MCP servers and rules files explain that decision well. If na the MCP part you care about, how to run your own MCP servers for VPS explain the hosting side.
Wetin dey inside plugin and where plugin dey live
Plugin wey you install from marketplace dey copy go local cache for ~/.claude/plugins/cache, instead make e run from where you clone am. Each installed version get im own directory. When you update or uninstall am, old version directory go mark as orphaned and delete around two weeks later. This one make session wey don load old version continue to work instead make e fail for middle of task.
Because path dey change every time you update, plugin no suppose hardcode im own location. Hooks and MCP configs inside plugin dey use ${CLAUDE_PLUGIN_ROOT}, wey dey resolve to current install directory. State wey must survive update go inside ${CLAUDE_PLUGIN_DATA}, wey dey resolve to stable directory under ~/.claude/plugins/data/.
Na only plugin own directory dem dey copy go cache, and this get one consequence wey people dey encounter later. Path wey point outside plugin root, like ../shared-utils, go work while you dey develop with local path but e go fail after installation, because dem no copy those files.
The layout look like this.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── code-review/
│ └── SKILL.md
├── agents/
├── hooks/
│ └── hooks.json
├── .mcp.json
└── bin/Na only plugin.json dey go inside .claude-plugin/. Everything else dey sit for plugin root. If you put skills/ or hooks/ inside .claude-plugin/, na the most common reason plugin go install cleanly but e no do anything: Claude Code dey look for those directories for root, e no find any, then e load plugin wey no get components.
The manifest itself small.
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0"
}How to install a Claude Code plugin
Installing get two steps, and the first one no dey install anything. You add a marketplace, wey be catalog of plugins, then you install individual plugins from there. Anthropic official marketplace, claude-plugins-official, dey register for you the first time you start Claude Code interactively. You go add other ones by yourself.
/plugin marketplace add anthropics/claude-code
/plugin install commit-commands@claude-code-pluginsNote say the repository na anthropics/claude-code, while the marketplace name na claude-code-plugins. The name come from the catalog file inside the repository, no be from the repository path. So read the marketplace name from the Marketplaces tab of /plugin before you type install command.
After installation, read the summary line. Plugin is now active. mean say the components don load for this session. Run /reload-plugins to activate. mean say dem never load, and you need run that command. If /reload-plugins warn say e go read the conversation again, run am again as /reload-plugins --force. Then confirm say the plugin really dey there: /plugin show am under the Installed tab, /help list its skills under Custom commands, and anything wey fail to load go show under the Errors tab with the reason.
Installation go ask for scope, and the scope decide who go get the plugin. User scope na for you, for every project. Project scope write the plugin inside the repository .claude/settings.json under enabledPlugins, so everybody wey clone the repository go get the offer to install am. Local scope na for you, for this repository only.
For script, Dockerfile, or any session wey interactive panel no dey available, use the shell form instead. E install to user scope unless you pass --scope.
claude plugin install commit-commands@claude-code-plugins --scope project
claude plugin listclaude plugin install dey run outside a session, so session wey already open no go see the new plugin until you run /reload-plugins or start new session.
The pattern for managing wetin you get na the same for both places. /plugin list print wetin dey installed, and e accept --enabled or --disabled. /plugin disable name@marketplace turn plugin off without removing am, /plugin enable turn am on again, and /plugin uninstall remove am. The slash-command forms open the plugin panel to apply the change. Na why you suppose use the claude plugin ... shell equivalents for scripts.
To give whole team access to marketplace, put am inside the project .claude/settings.json. Members go get prompt to install am once dem trust the repository folder.
{
"extraKnownMarketplaces": {
"my-team-tools": {
"source": {
"source": "github",
"repo": "your-org/claude-plugins"
}
}
}
}While you dey build your own plugin, skip marketplace completely. claude --plugin-dir ./my-plugin load a directory for that session, /reload-plugins pick up your edits without restart, and claude plugin validate ./my-plugin check the manifest, the skill and agent frontmatter, and hooks/hooks.json before anybody else see am.
Claude Code plugin dey cost how much?
The mechanism free. As of August 2026, dem no dey charge to add marketplace, install plugin, or keep plugin enabled. The official and community marketplaces na public git repositories, and plugin na directory of text files.
Wetin plugin dey cost na tokens, and na tokens your subscription usage or API bill dey actually measure. Which one plugin go use depend on how you dey pay for the tool from the beginning, and wetin Claude Code dey cost for each plan explain the subscription tiers together with per-token API pricing. That cost dey happen for three different ways, and each one behave differently.
Standing context cost. Wetin plugin add dey stay for your context, and system dey read am again for every turn of the session. Before you install am, the /plugin detail view dey show Context cost estimate for tokens, plus Will install section wey list the commands, skills, agents, hooks, and MCP and LSP servers wey you wan add. Read both. Plugins from local or custom marketplaces fit no provide this data. If so, na you go estimate am by hand. Plugin wey bundle MCP server usually dey use the most, because tool definitions big. But for models wey support MCP tool search, dem go defer those definitions until tool dey needed.
Invocation cost. When you run plugin skill, e append the skill instructions to the conversation. So na only when you use am you dey pay for the skill body. But the body na the cheap part. Wetin the skill tell the agent to do fit cost more: the unlazy skill's Depth Tree method dey spend almost all its tokens on the extra passes wey e force before agent fit call task done, not on the file wey you install. Agent different. Subagent dey run its own conversation with its own system prompt and own cache, and e start without cache hits. So plugin wey workflow dey spawn agents fit cost much more than its context estimate suggest.
Cache cost. If you enable or disable plugin in the middle of session, e fit force the next request to process the whole conversation again. Skills, commands, agents, hooks, LSP servers, monitors and themes no dey do this. Wetin dem add dey append after the existing history, so the next request pay for the new content and still read everything before am from cache. The exception na plugin wey provide MCP server. If tool search dey defer its tools, cache go survive. If the tools load into the prompt prefix, the next request go read the entire conversation again as uncached input. Na exactly why /reload-plugins dey warn and refuse for that case until you pass --force.
You fit monitor this instead of guessing. Every API response dey report cache_read_input_tokens and cache_creation_input_tokens, and a custom statusline wey dey show live token usage go put both for your front. Healthy session dey read much more than e create. If creation stay high turn after turn, something for your prefix dey change every turn. For the wider picture of wetin dey fill the window, see how to manage the Claude Code context window and wetin those token counts really mean.
One housekeeping task fit pay for itself. The Installed tab dey group plugins wey you never use for at least two weeks under Not used recently header, with Last used line for the detail view. Those plugins still dey cost startup time and context for every session. Disable or uninstall dem.
Plugin dey run with your permissions
Anthropic own documentation talk am plainly: plugins and marketplaces na highly trusted components wey fit execute arbitrary code for your machine with your user privileges. This no be hypothetical matter. A plugin hooks fit run shell commands when session events happen, including before and after tool calls. E add im bin/ directory to Bash tool PATH while plugin dey enabled. Im MCP servers na processes wey e start. Nothing for here dey sandbox away from your user account.
For laptop, the risk dey limited by wetin your desktop user fit reach. For server, e usually no be so. The account wey dey run the agent often get SSH keys, deploy tokens, cloud CLI session, and access to Docker socket. So, "arbitrary code as your user" mean say the machine fit dey affected. If Claude Code dey run for VPS, read how to run Claude Code safely on a VPS before you install anything. Also read how to keep credentials away from an agent before you install plugin wey dey talk to external service. Other harnesses get the same problem for the same rented box. Na why DeepSeek Harness plugins wey worth installing mostly dey focus on spend caps, tool permission rules, and injection scanning instead of new capabilities.
Some guardrails dey, and e good make you know which ones. A project-scope plugin come from the repository, no be from you, so e only load after you trust the workspace. Im MCP servers still need approval for each server. Im LSP servers wait for that trust. Im background monitors no load at all. Plugin-shipped agents no get permission to declare hooks, MCP servers, or permission mode. Marketplace plugins dey copied into cache with symlinks wey point outside the marketplace skipped, so plugin no fit pull in arbitrary host files.
All this no replace reading wetin you install. Check the Will install list. Prefer plugins wey source code you fit open and read. Keep your team's plugins for marketplace repository wey you control. Run claude plugin validate on anything wey you write yourself.
FAQ
Claude Code plugins cost extra money?
No. Plugin system, marketplace add korba, or plugin install korba, no one charge dey. The cost na token usage, and e dey bill against your plan or your API spend like any other context. Plugin dey add standing context for every turn, e dey add more when you invoke one of its skills or agents, and e fit force one expensive uncached turn if e provide MCP server wey tools load inside prompt prefix. The /plugin detail view dey show Context cost estimate before you install.
Wetin be the difference between plugin and skill?
Skill na one instruction unit. Plugin na package wey fit contain skills, agents, hooks, MCP servers, LSP servers, and monitors, with name, version, and marketplace wey you fit install am from. Write standalone skill for .claude/ when na for you and this project. Single-purpose skill like Ponytail, wey dey push the agent toward the smallest change wey go work na the clearest example: one file with one rule inside, until the day your team need am too. Turn am to plugin when other people need am and e need updates over time. Plugin skills get namespace, so you invoke skill inside plugin as /plugin-name:skill-name instead of /skill-name.
My plugin install, but its skills no show. Wetin dey wrong?
Check install summary first. If e talk say Run /reload-plugins to activate., the components never load yet, and if reload warn say e go read the conversation again, run am as /reload-plugins --force. If e load but e show nothing, open /plugin and read the Errors tab. The commonest structural mistake na to put skills/, agents/, or hooks/ inside .claude-plugin/, where Claude Code no dey look for dem. Remember say plugin skills get namespace, so you dey look for /plugin-name:skill-name inside Custom commands tab of /help. If nothing else work, rm -rf ~/.claude/plugins/cache, restart, and reinstall.
I fit install plugins without interactive panel?
Yes. Use shell command claude plugin install name@marketplace, wey dey install to user scope unless you pass --scope project or --scope local. E dey work for scripts, images, and non-interactive environments where /plugin panel no dey available. Since e run outside session, session wey already open need /reload-plugins before plugin go take effect.
E safe to install plugin from marketplace wey I find for GitHub?
Treat am like say you wan run that repository install script as yourself, because na almost the same thing. Plugin fit run shell commands through hooks, add executables to Bash tool PATH, and start MCP servers, all with your user privileges. Anthropic no dey control or verify third-party plugin contents. Install from sources wey you fit read, review Will install list before you confirm, and use stricter checks for server than laptop, because the account there usually get keys and tokens wey person fit steal.