To upvote this issue, give it a thumbs up. See this list for the most upvoted issues.
-
Codex, opencode, pi, copilot read the skills from .agents/skills (it is somewhat standard, see https://agentskills.io/home).
-
Current state
| Feature |
Config key |
Accepts |
Recursive directory? |
| Rules |
rules: [{path: "..."}] |
Single file only |
❌ |
| Commands |
commands: [{path: "..."}] |
Single file only |
❌ |
| Skills |
— |
Not configurable |
— |
Rules and commands in config.json only accept paths to individual files. There is no way to point them at a directory and have all files loaded recursively. This is inconsistent with how the file-based sources work (~/.config/eca/rules/** and .eca/rules/** both glob directories recursively).
Skills have no config.json representation at all — the only way to add skills from custom paths is via the plugin system (which populates an internal :pluginSkillDirs).
Proposal
- Add
skills: [{path: "..."}] to config.json, consistent with the existing rules and commands shape.
- Support both files and directories in
path for rules, commands, and skills:
- If
path points to a file → load it (current behavior)
- If
path points to a directory → recursively load all files matching the expected pattern (e.g. **/*.md for commands, **/SKILL.md for skills, ** for rules)
This gives users a uniform, simple way to point at a folder of rules/skills/commands from anywhere on disk without having to enumerate each file individually.
I initially thought it would be nice to have something like :extra-paths {:commands ..., :rules ..., :skills ...}, but that would be inconsistent and break backward compatibility, so I dropped the idea.
What do you think @ericdallo ?
I would work on this over the weekend.
To upvote this issue, give it a thumbs up. See this list for the most upvoted issues.
Codex, opencode, pi, copilot read the skills from .agents/skills (it is somewhat standard, see https://agentskills.io/home).
Current state
rules: [{path: "..."}]commands: [{path: "..."}]Rules and commands in
config.jsononly accept paths to individual files. There is no way to point them at a directory and have all files loaded recursively. This is inconsistent with how the file-based sources work (~/.config/eca/rules/**and.eca/rules/**both glob directories recursively).Skills have no config.json representation at all — the only way to add skills from custom paths is via the plugin system (which populates an internal
:pluginSkillDirs).Proposal
skills: [{path: "..."}]to config.json, consistent with the existingrulesandcommandsshape.pathforrules,commands, andskills:pathpoints to a file → load it (current behavior)pathpoints to a directory → recursively load all files matching the expected pattern (e.g.**/*.mdfor commands,**/SKILL.mdfor skills,**for rules)This gives users a uniform, simple way to point at a folder of rules/skills/commands from anywhere on disk without having to enumerate each file individually.
I initially thought it would be nice to have something like
:extra-paths {:commands ..., :rules ..., :skills ...}, but that would be inconsistent and break backward compatibility, so I dropped the idea.What do you think @ericdallo ?
I would work on this over the weekend.