# Claude Code Extension Points
[[Claude Code]] has many extension points, and since October 2026 [[Claude Code Mods|mods]] add one more. Each one changes a different layer: what Claude knows, what it may do, which tools it has, and (with mods) how Claude Code itself behaves and looks.
The choice comes down to what you want to change, and whether it has to run inside Claude Code or can run beside it.
## Overview
| Mechanism | What you write | What it changes | Where it runs |
|---|---|---|---|
| CLAUDE.md and AGENTS.md ([[Claude Code Memory]]) | Markdown | What Claude knows at the start of every session | Read into the context |
| [[Claude Code Skills\|Skills]] | A `SKILL.md`, optionally with scripts | What Claude knows and does for one kind of task, loaded on demand | Read into the context |
| [[Claude Code Custom Commands\|Custom commands]] | A Markdown prompt | A reusable prompt behind a `/command` (legacy, superseded by skills) | Read into the context |
| Subagents ([[Claude Code Tools#Custom agents\|custom agents]]) | Markdown with frontmatter | A separate agent with its own prompt, tools and permission mode | Its own context |
| [[Claude Code Permissions\|Permissions]] | Allow, ask and deny rules in settings | What Claude may do without asking | Claude Code's rule engine |
| [[Claude Code Hooks\|Settings hooks]] | A shell command, HTTP request or prompt, plus a `settings.json` entry | Whether a tool call or prompt goes ahead, a tool call's arguments and result, context added for Claude | A separate process, per event |
| [[Claude Code MCP Integration\|MCP servers]] | A server in any language | Which tools Claude has | A separate process or service |
| Status line (e.g. [[Claude Epic Status Line]]) | A script that reads JSON on stdin | The line at the bottom of the screen | A separate process, on each refresh |
| [[Claude Code Mods\|Mods]] | JavaScript or TypeScript | Tool calls, prompts, commands, turns, subagents, and what the interface draws | Inside Claude Code's process |
| [[Claude Code Plugins\|Plugins]] | A manifest plus any of the above | Nothing by itself: it's the package that ships the others | Installed from a marketplace |
## Which one to pick
- Instructions I keep pasting: a skill, or a line in CLAUDE.md when it applies to every session in the project
- Claude needs to reach an external system: an MCP server
- A gate or a log, with a script I already have: a settings hook. It runs outside Claude Code, in any language, and it's easier to reason about
- A pane, a band above the prompt, a `/command` that answers instantly, or rewriting an event on its way (a prompt, a tool call, a request to the model): a mod
- Sharing any of these: wrap them in a plugin
## Where mods overlap with the others
A mod can do part of what the others do. It can register tools Claude calls (named like MCP tools, `mcp__<plugin>__<tool>`), add slash commands, run on the settings hook events as `classic.<Event>`, rewrite a skill's text as Claude receives it (`skill.prompt`), and show a line under the prompt with `$.ui.status`.
That doesn't make the others obsolete. A mod is JavaScript or TypeScript only, it runs with your permissions and outside the sandbox, and its README still warns that the API "may change between releases without notice". A skill is a Markdown file you can carry to other agents ([[AI Skill Portability]]), and an MCP server works with any MCP client. Skills and MCP servers stay the portable layer. Mods are for what only they can do: drawing in Claude Code's UI and intercepting events inside the process.
One switch covers several layers: `"disableAllHooks": true` stops settings hooks, the custom status line and every installed mod (built-in mods keep running).
## References
- Compare mods, settings hooks, skills, and MCP servers (official docs): https://code.claude.com/docs/en/plugins/mods/overview#compare-mods-settings-hooks-skills-and-mcp-servers
- Mods reference (official docs): https://code.claude.com/docs/en/plugins/mods/reference
- Hooks (official docs): https://code.claude.com/docs/en/hooks
- Skills (official docs): https://code.claude.com/docs/en/skills
- MCP (official docs): https://code.claude.com/docs/en/mcp
- Plugins (official docs): https://code.claude.com/docs/en/plugins/overview
## Related
- [[Claude Code]]
- [[Claude Code Mods]]
- [[Claude Code Plugins]]
- [[Claude Code Configuration]]
- [[AI Agent Skills]]
- [[Model Context Protocol (MCP)]]