Repository navigation
v2.0.5
v2.0.5 - Fix plugin skill discovery (re-release)
Fixes a bug where Claude Code plugin skills were not being discovered due to stale installPath entries in ~/.claude/plugins/installed_plugins.json.
🐛 Bug Fix
-
Plugin skill discovery: Skills from installed plugins now correctly appear in
openskills list- Root cause:
installPathin Claude Code'sinstalled_plugins.jsonbecomes stale when plugins update - Fix: Derive cache path from plugin key (
cache/{marketplace}/{plugin}/) instead of trustinginstallPath - Added semver-aware version selection when multiple versions exist in cache
- Root cause:
-
Hooks / SessionStart:
install-hooksis now agent-aware for session env vars (Droid usesCLAUDE_ENV_FILEfor now, withDROID_ENV_FILEleft as a commented fallback)- Restricts the session hook to
matcher: "startup"(Claude + Droid) - Adds a match-all SessionStart
openskills synchook (mirrors the recommended setup) - Fix: PATH injection now writes a fully-expanded PATH into the session env-file (some agents parse the env-file rather than shell-source it; writing
${PATH:-...}could be treated literally and breaknpx/MCP)
-
Tests:
- Make CLI/integration tests hermetic by isolating
HOMEto avoid local Claude plugin installs causing timeouts - Increased timeouts for a couple of integration tests under load
- Make CLI/integration tests hermetic by isolating
🧹 Code Cleanup
- Removed broken marketplace manifest fallback (~70 lines)
- The old fallback looked in the wrong location (marketplace repo instead of cache)
- Removed unused interfaces:
KnownMarketplacesFile,MarketplaceManifest - Simplified discovery loop from 90+ lines to ~30 lines
🧪 Tests
- Updated plugin tests to use cache-based directory structure
- Added tests for semver version selection
- Added tests for semver preference over commit hashes
Install
npm i -g openskills@2.0.5
# or
curl -fsSL https://ain3sh.com/openskills/install.sh | bash