skillshare v0.13.0 Release Notes
Release date: 2026-02-16
TL;DR
v0.13.0 is a platform and architecture release:
- Skill-level target control — SKILL.md
targetsfield restricts which targets a skill syncs to - XDG compliance — proper directory layout on Linux/macOS, correct
%AppData%paths on Windows, automatic migration - Unified target names — project mode uses the same short names as global (
claude, notclaude-code) - Lighter binary — UI assets downloaded at runtime instead of embedded, reducing binary size significantly
- Smarter install — fuzzy subdirectory matching for monorepo skill installs
What's New
1) Skill-level targets field (doc)
Control which targets receive a specific skill via SKILL.md frontmatter:
---
name: cursor-rules
targets: [cursor]
---This skill will only sync to Cursor, even if Claude and other targets are configured. Combined with per-target include/exclude filters from v0.12.6, you now have fine-grained control at both the skill and target level.
This feature (along with v0.12.6's target filters) was inspired by Discussion #22 — a user wanted to install different versions of the same skill from one repo and route each to its own target. With skill-level targets + per-target include/exclude, this is now fully supported.
CLI validation: skillshare check warns about unknown target names in the targets field.
2) Target filter CLI + Web UI
Edit target include/exclude filters without touching config.yaml:
skillshare target claude --add-include 'core-*'
skillshare target cursor --add-exclude '*-experimental'
skillshare target codex --remove-include 'legacy-*'The Web UI Targets page also has an inline filter editor.
3) XDG Base Directory support
skillshare now follows the XDG Base Directory Specification:
| Data | macOS/Linux | Windows |
|---|---|---|
| Config + skills | ~/.config/skillshare/
| %AppData%\skillshare\
|
| Backups + trash | ~/.local/share/skillshare/
| %AppData%\skillshare\
|
| Logs | ~/.local/state/skillshare/
| %AppData%\skillshare\
|
| UI cache | ~/.cache/skillshare/
| %AppData%\skillshare\
|
Override with XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_STATE_HOME.
Migration is automatic — on first run, existing backups/trash/logs are moved to the new locations. Windows installs at ~\.config\skillshare\ are migrated to %AppData%\skillshare\ with config source path rewrite.
4) Unified project target names
Project mode now uses the same short names as global mode:
| Before (v0.12.x) | After (v0.13.0) |
|---|---|
claude-code
| claude
|
gemini-cli
| gemini
|
opencode-commands
| opencode
|
| ... | ... |
Old names still work as aliases for backward compatibility. If your .skillshare/config.yaml uses old names, everything continues to function — but new init -p will use the short names.
5) Runtime UI download
The skillshare binary no longer bundles frontend assets. On first skillshare ui launch, assets are downloaded from the matching GitHub Release and cached at ~/.cache/skillshare/ui/<version>/.
skillshare ui --clear-cache— reset cached assetsskillshare upgrade— pre-downloads UI assets for the new version
This reduces the binary from ~5MB to ~3MB.
6) Fuzzy subdirectory resolution for monorepo installs
When installing a skill from a monorepo:
skillshare install runkids/my-skills/vue-best-practicesIf vue-best-practices/ doesn't exist at the repo root, skillshare now scans all SKILL.md files and matches by directory basename. If multiple skills share the same name, an ambiguity error is shown with the full paths.
7) Improved list display
Skills are now grouped by directory with tree-style formatting:
frontend/
├── react-best-practices
├── vue-best-practices
└── css-guidelines
backend/
└── api-patterns
Use --verbose/-v for detailed output with metadata.
Breaking Changes
All breaking changes have automatic migration — no manual action required for most users.
| Change | Impact | Migration |
|---|---|---|
| XDG data/state split | Backups/trash/logs move to new dirs | Auto-migrated on first run |
| Windows path relocation | ~\.config\ → %AppData%\
| Auto-migrated on first run |
| Project target names | claude-code → claude, etc.
| Old names work as aliases |
| No embedded UI | Binary doesn't include frontend | Auto-downloaded on skillshare ui
|
Verification
All changes covered by unit tests + integration tests. Run make check to verify.
Changelog
- 53b31df Merge pull request #27 from runkids/v0.13.0
- 2dfe57a chore: improve list skills UX
- a29e198 feat: add target filter CLI, skill-level targets field, and Web UI support
- da50912 feat: fuzzy resolve subdirectory when exact path not found in repo
- 41e822d feat: remove go:embed, serve UI exclusively via runtime download
- 80c2d52 feat: respect XDG Base Directory Specification (#26)
- 0bf8449 feat: split XDG data/state dirs and add Windows legacy migration
- 403aafb feat: unify project target names with global names, add aliases for backward compat
- d30d90a feat: update Homebrew install to homebrew-core and detect missing UI
- 9c51630 fix: bind port before opening browser to avoid connecting to stale server
- cb9db75 fix: improve dev mode placeholder with actionable instructions
- e3f501d fix: redirect XDG vars into sandbox to prevent CI test leakage
- eed0bda fix: report migration outcomes and rewrite source after windows move
- 0b832f1 refactor: deduplicate skill target validation and project list display
- d996530 refactor: unify CacheDir into config package and document all platform paths