From ae98c99f053105b20f652ae015444b013c802491 Mon Sep 17 00:00:00 2001 From: kriptoburak Date: Sat, 20 Jun 2026 23:05:36 +0300 Subject: [PATCH] Document runtime skill source roots --- README.md | 30 ++++++++++++++++++++++++++++++ docs/CONFIG.md | 16 ++++++++++++++++ skillctl/cli.py | 16 ++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/README.md b/README.md index ee93ce4..c4c7010 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,36 @@ skillctl usage --top 10 # leaderboard Open `~/.skillctl/catalog/catalog.html` in a browser. +## Scan other agent runtimes + +Claude Code is the default source, but `skillctl` can catalog any runtime that +stores skills as `SKILL.md` folders. Add more roots to `~/.skillctl/config.toml`: + +```toml +[[sources]] +status = "active" +root = "~/.claude/skills" +glob = "*/SKILL.md" + +[[sources]] +status = "runtime" +root = "~/.codex/skills" +glob = "*/SKILL.md" + +[[sources]] +status = "runtime" +root = "~/.agents/skills" +glob = "*/SKILL.md" + +[[sources]] +status = "runtime" +root = "~/.openclaw/workspace/skills" +glob = "*/SKILL.md" +``` + +Use `status = "runtime"` for skills that are live in another harness but not +loaded by Claude Code. + ## What it does ### `rebuild` — scan and emit diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 92e7914..41b52a3 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -25,6 +25,22 @@ glob = "*/SKILL.md" # Do NOT add ~/.claude/commands here — those are slash-command definitions, # not skills, and scanning them pollutes the catalog. +# Other SKILL.md runtimes can be cataloged as runtime sources. +[[sources]] +status = "runtime" +root = "~/.codex/skills" +glob = "*/SKILL.md" + +[[sources]] +status = "runtime" +root = "~/.agents/skills" +glob = "*/SKILL.md" + +[[sources]] +status = "runtime" +root = "~/.openclaw/workspace/skills" +glob = "*/SKILL.md" + [[sources]] status = "archival" root = "~/skill-library" diff --git a/skillctl/cli.py b/skillctl/cli.py index 566e0d2..7ad6e92 100644 --- a/skillctl/cli.py +++ b/skillctl/cli.py @@ -155,6 +155,22 @@ def cmd_init(cfg: Config, args: argparse.Namespace) -> int: # Note: ~/.claude/commands/ holds slash-command definitions, not skills. # Scanning it pollutes the catalog, so it is not a default source. +# Other SKILL.md runtimes can be cataloged as runtime sources. +# [[sources]] +# status = "runtime" +# root = "~/.codex/skills" +# glob = "*/SKILL.md" +# +# [[sources]] +# status = "runtime" +# root = "~/.agents/skills" +# glob = "*/SKILL.md" +# +# [[sources]] +# status = "runtime" +# root = "~/.openclaw/workspace/skills" +# glob = "*/SKILL.md" + # Example: a folder of skills you've collected but not enabled yet. # [[sources]] # status = "archival"