🛠️ skillshare v0.17.1 Release Notes
Release date: 2026-03-13
TL;DR
v0.17.1 adds a web UI theme system, a source subdirectory option for init, and fixes two bugs — collect failing on git-cloned repos and cryptic git error messages:
- Web UI themes — switch between Clean (professional) and Playful (hand-drawn) styles, with Light/Dark/System color modes
- Init
--subdir— store skills in a subdirectory when your repo contains non-skill files (dotfiles, CI config) - Collect
.git/skip — collecting a git-cloned repo no longer produces empty directories - Actionable git errors — install/update failures now show what went wrong and how to fix it
No breaking changes. Drop-in upgrade from v0.17.0.
Web UI Theme System
The problem
v0.17.0 shipped a redesigned "clean" UI, but the original hand-drawn aesthetic had its fans(me). Users had no way to choose between visual styles, and the dark/light toggle was a simple binary switch with no system-preference option.
Solution
Added a two-axis theme system:
| Axis | Options | Default |
|---|---|---|
| Style | Clean, Playful | Playful |
| Mode | Light, Dark, System | Light |
The Theme button in the sidebar opens a popover with both groups.
Init Source Subdirectory
The problem
skillshare init --remote treats the entire git repo as the skills source. Users who want to embed skills inside an existing repo (dotfiles, monorepo) had no clean way to specify that skills live in a subdirectory.
Solution
Added an interactive prompt during init and a --subdir flag for non-interactive use:
# Interactive: prompted during init
skillshare init --remote git@github.com:you/dotfiles.git
# Non-interactive
skillshare init --remote git@github.com:you/dotfiles.git --subdir skillsResult:
~/.config/skillshare/skills/ ← git repo root
├── README.md
├── .github/
└── skills/ ← source points here
├── my-skill/
└── another-skill/
Collect .git/ Directory Skip
The problem
When a user git-cloned a skill repo (e.g., obra/superpowers) directly into a target directory (~/.cursor/skills/superpowers/) and ran skillshare collect, only empty directories were copied to source. The nested skill files were missing.
This happened because the directory copy encountered .git/ internal files (pack files, etc.) and aborted, leaving all other directories empty.
Solution
collect now automatically skips .git/ directories when copying skills from target to source. Only skill content is copied — repository metadata stays behind.
Actionable Git Error Messages
The problem
When skillshare install or skillshare update encountered a git failure, users saw:
Error: exit status 128
No indication of what went wrong or how to fix it.
Solution
Error messages now include context-specific guidance:
| Scenario | Before | After |
|---|---|---|
| Missing auth | exit status 128
| git failed (exit 128): repository not found or authentication required
|
| Token rejected | exit status 128
| authentication token was rejected — check permissions and expiry
|
| SSL cert error | exit status 128
| SSL certificate verification failed + 3 solution options
|
| Divergent branches | exit status 1
| Shows the fatal: line from git
|
If a token was used but rejected, the message says "token was rejected" instead of "authentication required." Tokens are never leaked in error output.
Bug Fixes
- Collect empty directories —
skillshare collecton git-cloned repos (e.g.,obra/superpowers) now correctly copies all nested files instead of producing empty directories..git/is excluded from the copy. - Git error messages —
skillshare installandskillshare updatenow show actionable error messages with suggested fixes instead of raw exit codes likeexit status 128.
Changelog
- 06dae1c Added new line for spacing in prompts
- 4fc7b4b Implemented source subdir specification
- f8ce338 Integrated checkGitRepo in pull cmd
- 4a8814f Switched dir name reading to bufio for space sup
- e23bea1 Switched existing usage of cmd.Output to cmd.Run
- c08ed7f Switched git repo check to git rev-parse
- 57419a5 Updated checkGitRepo to use git status
- 156e428 Updated git initialization check in doctor cmd
- 7c4aa7b feat(init): add subdirectory prompt for source path (#78)
- 6fb9903 feat(ui): add multi-theme system with Playful (hand-drawn) style
- 767ad31 fix(collect): skip .git directories when pulling nested skills to source
- 9d837e9 fix(devcontainer): fix project mode UI and port cleanup
- 894b1b3 fix(init): improve subdir prompt with TTY check, --subdir flag, and ui helpers
- c16dc22 fix(install): show actionable error messages when git stderr is empty
- 0a3305f fix(update): capture git stderr and show actionable error messages
Notes
- Full changelog: https://github.com/runkids/skillshare/blob/main/CHANGELOG.md
- Security model docs: https://skillshare.runkids.cc/docs/guides/security
- Command reference: https://skillshare.runkids.cc/docs/commands