v1.20.0
What's New
Live Clone Progress
The spinner now shows real-time git download progress (Receiving objects 45% 1.2 MiB) instead of a static "Fetching from GitHub..." message.
Sparse Checkout for Large Repos
Monorepos like iii-hq/iii now use partial clone (--filter=blob:none) with sparse checkout — only skill directories are downloaded. Clones that previously took forever now complete in ~1.4s.
skillkit remove --source and --all
skillkit remove --source iii-hq/iii # remove all skills from a repo
skillkit remove --all # remove everything
skillkit remove --all --force # no confirmationStandalone .md Skill Support
Single-file .md skills are now installed as plain files (preserving format) with sibling metadata dotfiles for tracking. skillkit read and skillkit remove --source work correctly with them.
Scanner False Positive Fixes
- Code examples in fenced blocks no longer trigger CI007/DE003
- Standard YAML frontmatter no longer triggers PI013
- Fence delimiter tracking follows CommonMark spec (backtick vs tilde)
- Unclosed frontmatter can't bypass scanning
Search Path Fix
skillkit read now searches ALL agent skill directories, not just the configured agent's. Skills installed to .claude/skills/ are found regardless of default agent setting.
Other Improvements
--single-branch --no-tagson all clones for faster downloads- Logo shows on
--all/--yes(TTY-gated, not interactivity-gated) isPathInsidefor location detection instead of substring matchingtoAdapterInfohelper eliminates 4x duplicated object constructionstatSyncwrapped in try-catch so one bad source doesn't abort all installs--terminator before sparse paths prevents option injection- stderr capped at 4KB to bound memory on verbose clones