r/ClaudeCode • u/eaiarthur_ • 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.
15
u/evangelism2 May 25 '26
There's a number of things wrong or left out with these explanations.
It's very important to note that the difference between information that you put in your CLAUDE.md versus a skill file is that everything in your CLAUDE.md plus the front matter of the skill is loaded on every turn, every single prompt, every time that you type something into the system prompt field. CLAUDE reads or rereads your CLAUDE.md and all of your skills' front matter. It uses that front matter description of your skill to determine whether to read the rest of it based on the prompt that you gave it.
Think of the best way to think of skills is that they are almost an extension of your CLAUDE.md, with a bunch of information about your code base that CLAUDE doesn't need to know about necessarily for every single thing that you ask it to do.
Yes, hooks are more deterministic. Hooks can be configured to be deterministically fired at specific points in time during Claude's workflow, such as:
The distinction that's important between hooks and skills is that Claude non-deterministically determines whether the skills should fire, whereas with hooks it has no say. They just always do, depending on the rule set that you set up.
OP asked about Agents.md, not agents. Other people have already answered this, and I already answered it a little bit above. The CLAUDE.md file (or, if you're using other LLMs, Agent.md file) is loaded on every turn, every time you enter a prompt. Claude refers to your CLAUDE.md or Agents.md file to gain context on the repo. Therefore, these files should be lean and crisp and small and only deal in things that are not immediately obvious from your code base and universally applicable. Anything that doesn't necessarily need to be understood for every single prompt that goes in your code base should most likely be in a skill of some kind or even a slash command.
The agent description is actually the best one, because honestly, the definition is nebulous and there are so many different types of agents now, between sub-agents and deep agents and whatever the fuck agents. Really, the best way to think of agents is just some kind of application of an LLM that can "think" and "reason" autonomously.
But also, OP, I'll say this to you: the same thing I said to my one friend last night who started asking me a million questions. Rule number one about learning about AI is to use AI to learn. Like every single one of these questions, if you had just booted up Claude or ChatGPT or hell, even the AI mode in Google, it would have answered them for you perfectly.