Explore the .claude Directory
The hidden /.claude folder is where all of Claude Code's project intelligence lives — instructions, hooks, agents, skills, and settings. Learn what each file does so you can configure Claude like a pro.
The Full Directory Tree
When you work with Claude Code in a project, a .claude/ folder is created at the project root. Here is everything it can contain:
CLAUDE.md and settings.json automatically; you edit them to customise behaviour. Run claude --init to scaffold a project-ready .claude/ folder.File by File
.claude/CLAUDE.mdThis is the most important file. Every time a session starts, Claude reads it automatically. Use it to describe the project, its conventions, forbidden patterns, and preferred tools — so Claude always has the right context.
.claude/settings.jsonHolds hooks, permission rules, and other project-wide settings. Because it is committed, every team member gets the same Claude behaviour automatically.
.claude/settings.local.jsonSame format as settings.json but gitignored. Use it for personal preferences — your own extra hooks, local path overrides, or developer-only permission rules — that you don't want to push to the repo.
.claude/hooks/Store your hook shell scripts here. Reference them from settings.json using the $CLAUDE_PROJECT_DIR variable so paths stay correct regardless of where Claude is run from.
.claude/agents/Each Markdown file here defines a custom sub-agent with a YAML frontmatter header. Claude Code spawns the agent when instructed, giving it a focused role and optional tool restrictions.
.claude/skills/Each file becomes a /skill-name slash command inside Claude Code. Use$ARGUMENTS as a placeholder for anything typed after the command name.
Invoke with: /add-types src/utils/helpers.js
At a Glance
Git Hygiene
Add this block to your project's .gitignore to keep private files out of version control while committing the shared config:
/memory inside Claude Code to open a guided editor for CLAUDE.md — you can add, edit, or remove instructions without leaving the chat..claude/hooks/ must be executable. Run chmod +x .claude/hooks/*.sh after creating them, or Claude Code won't be able to call them..claude/ (minus settings.local.json) is a great team practice — every developer gets the same hooks, agents, and slash commands the moment they clone the repo.What's Next
You know your way around the .claude/ directory. Next: integrate Claude Code directly into your VS Code editor for an in-editor experience.