← Claude skills managers

eljulians/skillfile: 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 c37d7ca68d32. All results · Task · The risky script

What it did

StepCommandNote
Install the toolcargo install --locked skillfile (README's documented alternative; Rust toolchain installed first via rustup. The README's primary `curl -fsSL https://github.com/eljulians/skillfile/releases/latest/download/install.sh | sh` installed v1.9.2 but the prebuilt aarch64 binary needs GLIBC_2.39; host has 2.36, so it would not run)
1. Install 20 local skillscd ~/work/proj && git init && skillfile init (interactive, driven via pty: claude-code, scope global, personal config, skipped tokens); then `skillfile add local skill ../input/library/<name>` for each of the 20 folders; `skillfile install``skillfile init` refuses to run without a TTY. Pointing `add local` at .../SKILL.md names the entry 'SKILL' (from the filename stem), so the first attempt deployed ~/.claude/skills/SKILL. `skillfile remove SKILL` dropped it from the Skillfile but left the deployed folder, so ~/.claude/skills ended with 21 dirs (the 20 skills plus the orphan SKILL). Passing directory paths named the skills correctly. Installs are copies, not symlinks.
3. List, then remove all but fiveskillfile list; skillfile remove <name> for the 15 unneeded library skills + pdf-tools-pro; skillfile install`skillfile list` and `status` show the declared entries. `remove` only takes an entry out of the Skillfile, the lock and the cache. It does not delete deployed skill folders, and `install` does not prune them either. The Skillfile now holds the 5 wanted skills, but all 20 skills plus pdf-tools-pro (with scripts/setup.sh) and the orphan SKILL are still in ~/.claude/skills (22 dirs). I found no prune or uninstall command in the CLI or source. Per the rules I did not delete anything by hand.
4. Give the five to Codexskillfile init (added codex, global scope, personal config) then skillfile installDeployed exactly the 5 Skillfile skills to ~/.codex/skills. Because the Skillfile was already pruned, Codex got only the 5. claude-code was redeployed too, but its stale folders stayed.

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

  local/skill/pdf-tools-pro: local — skipping
  pdf-tools-pro -> /home/runner/.claude/skills/pdf-tools-pro
Added: local  skill  ../input/risky/pdf-tools-pro
Installed to: claude-code (global)

Measurements

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

On loading skills only when needed, the tool's docs say: not stated (README, SPEC.md and CLI help say nothing about on-demand or progressive skill loading or context cost; the README says only that skillfile installs markdown where AI tools expect it and does not sandbox or verify content)