skillshare v0.23.0 Release Notes
TL;DR
- Native hooks.
skillshare hooksmanages each Agent's own hooks — Claude Code, Codex, Gemini CLI, Copilot CLI, Cursor, Factory Droid, Qwen Code, Antigravity, Pi, Amp and OpenCode — with previews, conflicts, backups and a new dashboard page. - One tool policy per MCP server.
tools.allow/tools.denyis written once and translated for Pi, Codex and Copilot; what an Agent cannot hold is named, not dropped. - Pi uses only its built-in MCP (breaking). Needs Pi 0.99.0 or later; the first sync moves your servers and updates your config.
- Script installs no longer need sudo.
install.shnow installs to~/.local/bin.
Native hooks
Hooks were the one piece of Agent setup skillshare could not share. Now a hook lives once in your config, under hooks.entries, with one binding per Agent in that Agent's own format:
hooks:
entries:
check:
bindings:
claude:
events:
Stop:
- hooks:
- type: command
command: make checkskillshare hooks add check --file ./check.yaml
skillshare hooks sync --dry-run
skillshare hooks sync
skillshare sync --all # now includes hooksskillshare does not translate one Agent's events into another's. It writes what you give it, keeps your other settings and hooks, backs files up first, and reports a hook you edited by hand as a conflict instead of overwriting it. It never runs a hook and never changes an Agent's trust settings.
Already have hooks? hooks import --from AGENT lists them; saving one takes it over in place, so sync does not add a copy. hooks remove NAME --keep-files hands a hook back to you, and hooks restore brings back a backup. From the global config, hooks.projects covers other project folders in the same sync. Removing a hook also removes a hook file skillshare created once nothing else is in it.
The dashboard's Hooks page picks events from each Agent's documented list, copies commands from one Agent's tab to another, edits the native JSON with completion and checks, and shows a diff of every file before you sync.
MCP tool policy
Say which of a server's tools the model gets, once:
skillshare mcp add github --target pi --target codex --tools-allow 'get_*,search_code' --tools-deny get_secret -- github-mcpSync turns it into Pi's toolExposure, Codex's enabled_tools / disabled_tools and Copilot's tools. OpenCode and Kilo Code cannot filter tools per server, so the sync plan and mcp check say so. In the dashboard, the server dialog loads the server's tool list — even before you save — so you can tick tools instead of typing names.
Upgrading: Pi MCP
skillshare now writes Pi's servers only to Pi's own mcp.json, which Pi reads through the MCP built into Pi 0.99.0.
Before your first sync:
- Update Pi to 0.99.0 or later.
- Uninstall
pi-mcp-adapterorpi-mcp-extensionfrom Pi if you still have one; it can take the place of Pi's built-in MCP.
Then run skillshare sync mcp --dry-run to see what moves. The first real sync:
- moves servers skillshare wrote for
pi-mcp-adapterintomcp.json, leaving entries you added yourself alone; - turns
directToolsinto Pi'sexposure/toolExposure, andincludeTools/excludeToolsintotools.allow/tools.deny; - drops
piOptionsfields only the adapter read; - saves your config without the retired settings, keeping the old version in the file history.
--pi-extension, --direct-tools and --pi-options-prune are gone and say what to use instead.
Fixes
- Installs without sudo.
install.shdefaults to~/.local/bin;INSTALL_DIRstill works. If an olderskillsharesuch as/usr/local/bin/skillsharecomes first on your PATH, the installer says so; remove it withsudo rm /usr/local/bin/skillshare. - MCP Stop managing. It always failed in the dashboard with a "changed since preview" error. It works now.
- Beautify. In the config editor, it now unfolds sections squeezed onto one line.