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
| Step | Command | Note |
|---|---|---|
| Install the tool | cargo 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 skills | cd ~/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 five | skillfile 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 Codex | skillfile init (added codex, global scope, personal config) then skillfile install | Deployed 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
| Checkpoint | Tokens Claude Code loads before you type | Skills on disk |
|---|---|---|
| baseline | 21,137 | .claude/skills: 0 |
| installed-20 | 21,486 | .claude/skills: 21 |
| risky | 21,486 | .claude/skills: 22 |
| pruned | 21,486 | .claude/skills: 22 |
| synced | 21,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)