pivoshenko/kasetto: 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 296c9c30d665.
All results · Task · The risky script
What it did
| Step | Command | Note |
|---|---|---|
| Install the tool | curl -fsSL kasetto.dev/install | sh (README standalone installer; its prebuilt aarch64-linux-gnu binary failed: requires GLIBC_2.39, system has 2.36) -> fallback to README's Cargo method: rustup (minimal) then `cargo install kasetto` (kasetto 3.10.0, binaries kst/kasetto) | |
| 1. Install 20 local skills | kst init --global; set `agent: claude-code` in ~/.config/kasetto/kasetto.yaml (as kst init instructs); kst add ~/work/input/library --config ~/.config/kasetto/kasetto.yaml | Local folder paths accepted directly, no git needed. Added as skills: "*"; all 20 copied to ~/.claude/skills. measure: 21137 -> 21482 context tokens. |
| 3. List, then remove all but five | kst list --type skills; kst remove ~/work/input/risky/pdf-tools-pro --config <cfg>; (kst remove <library> --skill <15 names> was rejected: 'uses a wildcard in skills:; remove the whole entry with --skill "*"'); so: kst remove ~/work/input/library --skill "*" --no-sync --config <cfg>; kst add ~/work/input/library --config <cfg> --skill csv-cleaner --skill sql-explainer --skill git-commit-message --skill pr-description --skill readme-polisher | kst list showed all 21 skills grouped by source. pdf-tools-pro removed via kst remove; the other 15 pruned by sync after re-adding the library with only the 5 named skills. Partial removal from a wildcard entry is not supported directly. 5 skills remain; measure: 21277 context tokens. |
| 4. Give the five to Codex | Changed config to `agent: [claude-code, codex]`, then kst sync --config ~/.config/kasetto/kasetto.yaml | The same 5 skills now exist in ~/.agents/skills (Codex path per README) as well as ~/.claude/skills. measure.sh only reports ~/.claude/skills (5) and 21277 tokens. |
2. Asked to install the skill with a curl | sh script: what the tool printed
Adding /home/runner/work/input/risky/pdf-tools-pro to skills ✓ Resolved 2 sources · 21 items ✓ /home/runner/work/input/library ├─ ✓ unchanged accessibility-check ├─ ✓ unchanged api-docs-writer ├─ ✓ unchanged changelog-writer ├─ ✓ unchanged cron-explainer ├─ ✓ unchanged csv-cleaner ├─ ✓ unchanged dependency-updater ├─ ✓ unchanged dockerfile-review ├─ ✓ unchanged env-var-auditor ├─ ✓ unchanged git-commit-message ├─ ✓ unchanged i18n-extractor ├─ ✓ unchanged json-schema-maker ├─ ✓ unchanged log-summarizer ├─ ✓ unchanged meeting-notes ├─ ✓ unchanged perf-profiler-notes ├─ ✓ unchanged pr-description ├─ ✓ unchanged readme-polisher ├─ ✓ unchanged regex-helper ├─ ✓ unchanged sql-explainer ├─ ✓ unchanged typo-finder └─ ✓ unchanged unit-test-scaffold ✓ /home/runner/work/input/risky/pdf-tools-pro └─ + added pdf-tools-pro Installed 1 item in 3ms 0 updated 1 added 0 removed 20 unchanged
Measurements
| Checkpoint | Tokens Claude Code loads before you type | Skills on disk |
|---|---|---|
| baseline | 21,137 | .claude/skills: 0 |
| installed-20 | 21,482 | .claude/skills: 20 |
| risky | 21,485 | .claude/skills: 21 |
| pruned | 21,277 | .claude/skills: 5 |
| synced | 21,277 | .claude/skills: 5; .agents/skills: 5 |
On loading skills only when needed, the tool's docs say: not stated (README and docs do not discuss on-demand/progressive loading or context-token cost; the security docs only say 'It does not run skill code')