[FEATURE] Add support for subdirectories in skills
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
We have started using and developing skills with my team, and we wanted to organise them into subfolders.
Adding a subdirectory in the .claude/skills prevents claude from finding them
The workaround we found was creating a local marketplace and custom skill plugin that had a startup hook to direct claude to look recursively for scripts. Upgrading claude to v.2.0.25 broke that, and now we again are limited to a flat list of skills.
Proposed Solution
Could we add support for subdirectories so it's easier to organise/version control skills?
So if my tree looks like
plugins/custom-skills/skills/
└── collaboration/
├── skill1/
├── skill2/
└── productivity/
├── skill3/
└── skill4/
Claude can find and use skills in these subdirectories
Alternative Solutions
_No response_
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_
48 Comments
I would also appreciate this. I actually assumed it worked this way and spent too much time testing and attempting to "debug" it. Same goes for recursive skill loading up the project directory chain.
note to @aran0ia , you can mimic a nested directory structure by having
skills/your-skill/
you do that by referencing those files explicitly in the skills.md with markdown links + instructions,
e.g. "if you're working on the event system, read [the Event subskill](/subfolder/another-subskill3.md)"
markdown links like that get auto-registered in the skill system once the parent skill.md is read in.
I ran into this as well. Very inconsistent with commands, which do support folders.
seconding this
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
still an issue afaik and would still like solution
Yes please - definitely need subfolder support!
+1. Especially with command/skills merge. Thanks !
Please support it, the flat skills is hard to maintain
This is confirmed to be a bug https://github.com/agentskills/agentskills/issues/59#issuecomment-3731961421
They tried to fix https://github.com/anthropics/claude-code/blob/7d22b6e16755a75ca729079f64197dab31f666ab/CHANGELOG.md?plain=1#L26
But it doesn't seem to work still
+1. Would really help with maintenance
@ashwin-ant please help us here, we have broken few workstations and rolling things back is painful enough by now.
+1 > I guess it should be like traversing a wiki or docs
This is still an issue that makes managing skills difficult
When this issue is finally resolved, it would be great if #14836 was considered at the same time.
Meaning in the original example, the "custom-skills" sub-directory should also work if it is a symlink.
This would be extremely convenient for larger monorepos or modular repos, where dedicated sub-teams may want to maintain separate skill folders while all contributing to the global skill space.
This intention was also mentioned in the duplicate to this issue: #18192
Has there been any word on this? It's been an issue that commands and such support subfolders while skills don't. It's been very difficult to namespace our skills in the way we would like.
yes its really crazy that it s still not available
any update on that? i have over 35 skills that have to use prefix in catalogs name to keep them organized. Why won't just reuse agents / commands catalog code / module for skills grouping?
Any update? We really need this to be fixed. Please.
This issue is here 4 months, is liked by 96 people and still has no official reaction, could you raise its importance please or put here any statement on this? Support of subdirectories for skills is VERY NECESSARY when number of skills is large. @klazuka, @ItsBarryZ
Ohh yes this would be great, without sub-folders this is getting very messy :-)
But specially to keep the behavior aligned with the commands
Wow. I actually thought that it just works like that out of the box. (Similar to scaffolded
CLAUDE.mdfiles in subdirectories). I am glad i found this open issue.While native subdirectory support isn't there yet, one thing that helps in the meantime is having visibility into what skills you have across all scopes (global, workspace, project) and being able to move them between scopes via drag-and-drop.
I'm building a visual dashboard for exactly this — it shows your full Claude Code setup (skills, memories, MCP servers, hooks, configs, plugins) organized by scope hierarchy. You can move items between scopes to keep things organized, delete what you don't need, and see everything in one place instead of digging through dotfiles.
We just launched a couple days ago and are actively working on solving more of these config management pain points — give us a ⭐ to follow along: https://github.com/mcpware/claude-code-organizer
This should be indeed possible. I am looking at a package that has 90+ skills. I would like to organize it into skills/package-name/skill1, skills/package-name/skill2, ... like commands. Not even sure now how to organize that, because i don't want 90+ skills in the skills root. Hmm.
That's exactly the kind of setup we're building for! With 90+ skills, scope visibility becomes a real problem — knowing what's loaded where, what's inheriting from global, and what's project-specific.
We just launched Claude Code Organizer a few days ago. Right now it covers moving skills and memories between scopes with a visual hierarchy view + drag-and-drop. Only tested on Ubuntu so far.
Coming soon: inline editing, a sidebar navigation with expandable tree view, and a cleaner UI overall — we're actively iterating on the design.
Would love your feedback if you give it a try, especially with a 90+ skill setup — that's a great stress test for us. Any bugs or feature requests, open an issue and we'll fix it within hours. We've been turning around updates same-day.
npx @mcpware/claude-code-organizer⭐ If you find it useful, a star on the repo helps a lot — and follow @mcpware to get notified when we ship updates.
Is it possible to create a master script to process our internal skill folder structure based on how we’ve organized it? Specifically, is it possible to first reference a master index (placed at the top-level folder) before performing any searches within the folder hierarchy?
A
UserPromptSubmithook can load skills from subdirectories:Structure:
The hook recursively finds all
.mdskill files in subdirectories and injects them into context.+1 on this feature.
The problem with extra tooling to manage this is harness spread. I've decided to use one harness. This harness has no skill management beside its own bundled ones. But it has many other benefits. Now I cannot easily switch to another harness for the skill-management when I need the rest of the initial solution. And I tend not to have multiple parallel harnesses for different things. I would rather have claude code to manage these "concepts" for me instead of me managing claude.
Another really nice use case for this: repo-specific local-only skills. For example, you could have a
.gitignored.claude/skills/local/folder that can be changed for preference/task/etc. without polluting the global/user scope with repo-specific configuration. It could also allow for the use of submodules for specific sets of shared/related functionalityHitting this running an agency-style setup. 40+ skills split across a consultancy (n8n automation), a creative pipeline, and multiple client-specific workflows. The flat-directory constraint is a material tax at this scale, not theoretical. Categories that would map cleanly to subdirs. gstack/, linkedin-, content-, solo-mixed-sales, payload-, koda-stack/*.
Concrete daily pain
cc-auto-suggest.md\trigger map is now a 55 line linear table. A subdir aware registry could auto derive trigger keywords from the parent dir name.Preference for the fix. Recursive scan is simpler than any explicit nesting syntax. No config churn, no migration path needed. Specifically
skill_id\should be the full relative path from skills/ (e.g. \gstack/qa\not \qa\) so name collisions across categories are impossibleIf this is on a roadmap already, a "planned" note in this thread would help teams decide whether to invest in the local marketplace workaround or wait. Running 40+ skills flat is a real maintenance tax at professional scale.
+1
+1
+1
+1
+1
+1
+1
+1
+1
Fuck you! Stupid Anthropic company — such a simple yet important feature, and you still haven't fixed it after all this time! Do you have any idea how much trouble this has caused me? I can't manually trigger skills, and sometimes this stupid Claude Code can't even find sub-skills, forcing me to manually send it the file path! And instead, you spend your time on those stupid Pokémon things!
+1
+1
Hello guys.
I had encountered the same issue, so I created a simple package that solves multiple issues regarding Claude and other AI providers, Agent Kit
This package solves three issues:
So the idea is simple, you create a
skillsfolder in your root package, split it into multiple folders (ie backend, frontend, mobile) then run theagent-kit synccommand, it will flatten the skills folder into .claude/skills to be something like this:This will be converted into:
Instructions are simple:
install the package
init it
then sync (this one that you will use when you add more skills) that's it
You could see instructions per IDE/AI (Cursor, Claude..etc) in detail from here:
https://mongez.js.org/agent-kit/agent-integrations/
You can put your skills into a subfolder in
.claude/commandseg as symlink, they are detected automatically.Should be visible as:
See also https://code.claude.com/docs/en/skills
+1
?
+1
+1
Feel free to try this package it should be sufficient enough to handle this case and keep any other AI agents synced from a single source of skills folder
https://github.com/anthropics/claude-code/issues/10238#issuecomment-4574169592