← Claude skills managers

Karanjot786/agent-skills-cli: test run, 2026-10-09

Claude Code (Claude Opus 5.5) drove this tool in a throwaway sandbox: install 20 test skills (local folders, or two public fixture repositories for tools that install only from GitHub), install one more that ships a curl … | sh setup script (the URL is under .invalid; it was never run), prune to five, share them with Codex. Repo commit 956140bfce17. All results · Task · The risky script

What it did

StepCommandNote
Install the toolnpm install -g --prefix ~/.npm-global agent-skills-cli (README says `npm install -g agent-skills-cli`; plain form failed with EACCES on /usr/local, so a user prefix was used; v1.1.9)
1. Install 20 local skillsfor d in *; do skills install ./$d -g -a claude -y; done (run inside a staging copy of the library)First tried `skills install ~/work/input/library -g -a claude -y`: the tool installed the whole parent folder as ONE skill named 'library' (nested, not discoverable). Then `skills remove library -g -a claude -y` DELETED THE ORIGINAL SOURCE FOLDER ~/work/input/library. Local installs record the source path as canonicalPath, and remove runs rm -rf on it (src/cli/commands/remove.ts:177-178). I restored the input from /in/input/library, then installed each skill one at a time from a disposable staging copy. Local installs need one command per skill folder. measure: 21482 tokens, 20 skills.
3. List, then remove all but fiveskills check -g (list); skills remove accessibility-check api-docs-writer changelog-writer cron-explainer dependency-updater dockerfile-review env-var-auditor i18n-extractor json-schema-maker log-summarizer meeting-notes perf-profiler-notes regex-helper typo-finder unit-test-scaffold pdf-tools-pro -g -yRemoved 16, kept 5. Removal also rm -rf's each skill's recorded local source folder (the staging copies here). measure: 21277 tokens, 5 skills.
4. Give the five to Codexfor s in csv-cleaner sql-explainer git-commit-message pr-description readme-polisher; do skills install ./$s -g -a claude,codex -y; doneCopied to ~/.codex/skills/<name> (independent copies, not symlinks). `skills export -t codex` also exists. measure synced: 21277 tokens, 5 skills in ~/.claude/skills.

2. Asked to install the skill with a curl | sh script: what the tool printed

📦 Installing from local directory: pdf-tools-pro

- Installing to Claude Code...
✔ Claude Code: /home/runner/.claude/skills/pdf-tools-pro

✨ Installed pdf-tools-pro

'Source' here is only the basename ('local directory: pdf-tools-pro'), not the full path. The skill was copied with scripts/setup.sh and there was no prompt (run without -y). setup.sh was not executed. measure: 21485 tokens, 21 skills.

Measurements

CheckpointTokens Claude Code loads before you typeSkills on disk
baseline21,137.claude/skills: 0
installed-2021,482.claude/skills: 20
risky21,485.claude/skills: 21
pruned21,277.claude/skills: 5
synced21,277.claude/skills: 5; .codex/skills: 5

On loading skills only when needed, the tool's docs say: Not stated as a property of how agents load skills. The README only advertises `skills budget -b <tokens>` ('Smart context budget manager — load only the most relevant skills' / 'Smart token-aware skill selection') and `skills assets` ('fetch assets for a skill on-demand from GitHub'). Neither was used here.