- uninstall.sh: removes pi-kit from settings.json (string + gated object
entries), the package clone, kit-installed public skills, ~/.config/pi-kit
(env.sh with tokens, audit.jsonl) and the shell-rc sourcing block
- confirmation prompt by default; PI_KIT_UNINSTALL=1 for non-interactive,
PI_KIT_KEEP_CONFIG=1 / PI_KIT_KEEP_SKILLS=1 to retain parts
- works without the pi binary (settings edited directly); notes how to
remove pi itself
- tests: test/uninstall.test.sh against a throwaway $HOME (14 checks:
full/partial removal, refusal without flag, idempotent re-run), wired
into npm test
git.codelab.vc is Gitea/Forgejo: raw path is /raw/branch/<ref>/, the GitLab-style
/-/raw/main/ returned 404 so the one-command install was broken. The one-liner
now also fetches the script from the stable channel (vetted), not main.
Found in a clean cps sandbox run: a machine without git passes the Node check
but fails later inside 'pi install git:...' with an unclear error. Now checked
up front with an actionable message. CHANGELOG updated.
Decision on optionalDependencies (@modelcontextprotocol/sdk): KEEP. The heavy
install observed in the sandbox (~317 packages) is dominated by npm>=7
auto-installing the Pi peerDependencies stack, not the MCP SDK; removing the
SDK saves little and would make MCP enablement fragile across pi updates.