github runkids/skillshare v0.25.9

4 hours ago

skillshare v0.25.9 Release Notes

TL;DR

  1. Open an Agent's MCP file from the dashboard. The MCP page has an Open in editor button for each detected Agent's config file.
  2. Commands keep YAML anchors, aliases and merge keys in config.yaml. A skillshare target edit no longer expands &shared / *shared or <<: *base.
  3. sync -p no longer rewrites the project config when nothing moved. A stale record could pull every remote install in a shared source into the project's skills: list.
  4. Pi extension rules that depend on the Pi version show as unknown, and Open in editor accepts a quoted editor path in $EDITOR.

New: open an Agent's MCP file from the MCP page

Each detected Agent on the dashboard's MCP page now has Open in editor next to Copy path. It opens that Agent's MCP config file, such as opencode.json or .cursor/mcp.json, with the same editor a skill's Open in editor uses: $VISUAL or $EDITOR, then an installed GUI editor, then the system default.

  • The button shows only for files that exist.
  • The editor starts on the machine running the dashboard, so the button shows only when the browser runs there too: at localhost or through SSH port forwarding, not through a LAN address or a reverse proxy.

Fix: anchors, aliases and merge keys survive config writes

0.25.5 made commands keep the comments in config.yaml. Anchors were still expanded. After this, with the config below, b got its own copy of the list and stopped following a:

skillshare target a --add-exclude 'old-*'
targets:
  a:
    skills:
      path: /tmp/a
      include: &shared
        - demo
  b:
    skills:
      path: /tmp/b
      include: *shared

Anchors and aliases under targets and projects are now kept, and so are merge keys:

targets:
  claude:
    skills: &copy
      path: ~/.claude/skills
      mode: copy
  cursor:
    skills:
      <<: *copy
      path: ~/.cursor/skills
  • Editing the anchored value still reaches every alias and every mapping that merges it, including a key added to or removed from it.
  • A command that changes only an aliased or merged copy gives that copy its own value and leaves the anchor alone.
  • Comments on aliases and merge-list items are kept.
  • Still written out in full: a merge source written inline without an anchor (<<: {a: 1}) and anchors defined inside one.

Fix: sync -p leaves the project config alone when nothing moved

Since 0.25.5, sync looks for skills you moved by hand. In project mode, a .metadata.json record whose folder you deleted started that search, and the search then added every remote install in the source folder to the project's skills: list, .gitignore and skills.lock.json. This hit projects whose skillshare/skills folder is also the global source.

Sync now writes entries only for skills it actually found moved. When none moved, the three files are not touched.

Fix: Pi extension rules that depend on the Pi version

Pi 1.2.0 rewrites some resource-filter patterns before matching, while older Pi compares them as written:

Pattern Pi 1.2.0 and later read it as
~, ~/… home directory
file://… local path
~\… (Windows) home directory
/c/…, /mnt/c/…, /cygdrive/c/… (Windows) C:\…

Skillshare cannot tell which Pi reads the rules, so the dashboard's Pi extensions list now marks an extension decided by such a pattern as unknown and names the pattern, instead of guessing whether it loads. Exact rules also follow Pi's normalization now: a leading .\ is dropped, and \ becomes / on Windows.

Fix: quoted editor path in $EDITOR

Open in editor now accepts a quoted path with spaces in $VISUAL or $EDITOR, so an editor that is not on PATH works on Windows:

$env:EDITOR = '"C:\Program Files\Notepad++\notepad++.exe"'

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.