mdskills
agent-setup

Where Are Claude Code Skills Stored? File Paths Explained

Organized workspace with folders
Photo by Kelly Sikkema on Unsplash

Claude Code hunts for skills in five specific directories every time it loads. Understanding these file paths helps you organize skills properly and debug when they don't appear.

Project directory takes priority

Claude Code checks your current project's .claude folder first. This directory sits at your project root alongside .git or package.json:

your-project/
├── .claude/
│   ├── skills/
│   │   ├── format-json/
│   │   └── run-tests/
│   └── rules/
├── src/
└── package.json

Project skills override everything else. If you have a format-json skill in both your project and user directories, Claude Code uses the project version. This design lets teams share project-specific skills through version control while keeping personal preferences separate.

The SKILL.md spec defines how individual skills work within these directories. Each skill gets its own folder containing the skill definition and any supporting files.

User directory for personal skills

Your personal skills live in a platform-specific user directory. Claude Code stores where these claude code skills are stored based on your operating system:

macOS:

~/Library/Application Support/Claude Code/skills/

Linux:

~/.config/claude-code/skills/

Windows:

%APPDATA%\Claude Code\skills\

These directories auto-create when you install skills for the first time. User skills work across all your projects unless a project-specific version exists.

Your user directory might look like this:

~/.config/claude-code/skills/
├── debug-api/
├── optimize-images/
└── analyze-logs/

Plugin directories for third-party skills

Claude Code also scans plugin directories for skills installed through package managers. These follow similar platform conventions:

macOS:

~/Library/Application Support/Claude Code/plugins/

Linux:

~/.local/share/claude-code/plugins/

Windows:

%LOCALAPPDATA%\Claude Code\plugins\

Plugin skills work differently than manual installations. They often come bundled with multiple skills and update automatically when the plugin updates. The plugin system handles dependency management and version conflicts.

Rules files follow the same pattern

Rules files use identical directory structures but live in rules/ instead of skills/. Project rules override user rules, which override plugin rules. This hierarchy lets you define coding standards per project while maintaining personal defaults.

The CLAUDE.md spec explains how these rule files control Claude's behavior within your specific context.

Load order matters for conflicts

Claude Code processes directories in this exact order:

  1. Project .claude/skills/
  2. User skills directory
  3. Plugin directories (alphabetical by plugin name)
  4. Built-in skills (non-overridable)

Skills with identical names get replaced by higher-priority versions. The first match wins, so project skills always beat user skills.

This hierarchy makes debugging predictable. If a skill behaves unexpectedly, check whether multiple versions exist. Claude Code's status panel shows which version loads for each skill.

Finding your actual directories

Platform conventions sometimes change. To find your exact paths, check Claude Code's settings panel or run this command in your project:

claude-code --show-paths

This command outputs all active directories and their current contents. Useful when skills disappear or load wrong versions.

Some Linux distributions use non-standard config locations. Flatpak or Snap installations might store files in sandboxed directories instead of the standard paths.

Organizing large skill collections

Subdirectories don't work within skill directories. Claude Code only scans one level deep, so this structure fails:

skills/
├── web-dev/          # ❌ Claude Code ignores this
│   ├── minify-css/
│   └── optimize-js/
└── database-tools/   # ❌ And this
    ├── backup-db/
    └── migrate-schema/

Instead, use descriptive skill names:

skills/
├── web-minify-css/
├── web-optimize-js/
├── db-backup/
└── db-migrate-schema/

This flat structure keeps skills discoverable while maintaining organization through naming conventions.

Skill discovery vs MCP servers

Skills and MCP servers work through different discovery mechanisms. Skills use file system scanning while MCP servers require explicit configuration. Skills vs MCP explains when to choose each approach.

MCP servers typically run as separate processes and connect through configuration files, while skills integrate directly into Claude Code's runtime. Both approaches solve different problems in the agent ecosystem.

Common file path issues

Missing skills usually trace back to incorrect directory structures. Check these common problems:

Skills placed in wrong directories never load. Double-check platform-specific paths, especially on Linux where distributions vary.

Empty or malformed skill definitions cause silent failures. Each skill needs proper SKILL.md files following the specification.

File permissions can block skill loading on Unix systems. Ensure your user account has read access to all skill directories.

Symlinks sometimes confuse directory scanning. Use real directories when possible, especially for project skills that need version control tracking.

Testing your setup

Create a skill in each directory to verify loading order. Make simple skills that just echo their source location. This helps confirm which directories Claude Code actually scans and in what order.

Browser the skills marketplace to see examples of well-structured skills and learn best practices for organization and naming.

The file path system provides predictable skill management once you understand the hierarchy. Project skills for team sharing, user skills for personal tools, and plugins for third-party collections. Each has its place in building effective AI agent workflows.

claude-codefile pathsskills stored

Related Articles