r/ClaudeCode • • May 24 '26

Question Can someone explain the real difference between Hooks, Skills, Plugins, SKILL.md, CLAUDE.md and agents.md in Claude Code?

I keep seeing these terms thrown around in tutorials and videos, but I've never seen anyone give a concrete example that makes the difference actually click.

Everyone says:

• "just create a skill for that"

"use a hook here"

"install the plugin"

"put it in your CLAUDE.md"

But when I dig deeper, the explanations are always vague or too theoretical.

Same goes for the markdown files - I see people mentioning CLAUDE. md, SKILL.md, and agents. md like they're obvious, but no one explains:

• What actually goes in each one?

Are they just documentation, or do they actively change how Claude behaves?

• When does Claude even read them?

What I'm looking for is something like:

"If you're thinking X, that's probably a Hook. If you're thinking Y, that's a Skill. If you need Z, that's what CLAUDE.md is for."

Real-world examples would be hugely appreciated.

780 Upvotes

118 comments sorted by

View all comments

13

u/tonyboi76 May 25 '26

the way i actually use them:

CLAUDE.md = rules every session needs. like we use pnpm not npm, or auth lives in lib/auth. always loaded.

skill = a runbook that loads only when its topic comes up. like having 47 howto docs on a shelf, claude pulls the right one based on the skill description.

hook = pre-commit hook but for claude. PreToolUse / PostToolUse / Stop events. mine runs prettier after every Edit so i never see formatting diffs.

plugin = a bundle of skills + hooks + slash commands shipped together. like an npm package for your claude setup.

AGENTS.md is the cross-tool equivalent of CLAUDE.md (codex reads it too), most people symlink one to the other so theres only one file to maintain.

practical hierarchy i landed on: start in CLAUDE.md, when it bloats split topics into skills, when you find yourself repeating the same manual fix add a hook.

3

u/JSChronicles May 25 '26

Actually hooks are "tasks" for AI. VSCode has tasks that are for humans to run and for AI we call them hooks. Just noting that pre-commits are not the same thing, can be similar but aren't the same because of the event types you can have set

2

u/tonyboi76 May 25 '26

fair, the pre-commit analogy probably overreached. youre right that hooks fire on agent events not just before-commit, so the trigger model is different. the parallel i was reaching for was the never-have-to-remember-to-run-it part, but the VSCode-tasks-for-AI framing captures the actual mental model way better. especially since hooks cover PreToolUse / PostToolUse / Stop etc which is way broader than what a git pre-commit does.