A pi-first coding setup with integrated skills, plan/build mode, and strict OpenCode compatibility.
.pi/ is the source of truth. OpenCode reads the same skills through .opencode/skills -> ../.pi/skills; it never maintains a separate copy.
Run inside the project you want to configure:
curl -fsSL https://raw.githubusercontent.com/HGZahn/agentic-coding/master/get-started.sh | bashThe installer asks two questions:
- Install pi config? — adds
.pi/settings.json,.pi/extensions/, andAGENTS.md. Differing managed files are backed up with a.bak.<timestamp>suffix. - Install skills? — adds
.pi/skillsandskills-lock.json, and links.opencode/skills -> ../.pi/skills.
If .opencode/skills already exists and is not the canonical symlink, installation stops without modifying anything.
Then start pi and approve project trust:
piThe included extension provides:
/plan— inspect and plan without editing project files/build— restore full file editingShift+Tab— toggle modes
Existing global keybindings are never modified by the installer.
All skill payloads are committed under .pi/skills and work offline. skills-lock.json records each skill's upstream source, ref, path, and content hash — the harness-neutral provenance record. Pi discovers skills from .pi/skills; OpenCode sees the same files through the symlink.
Requirements: Bash and Node.js.
Run ./menu.sh to select a maintenance action interactively.
npx skills update # update installed skills
node scripts/skills.mjs verify # lock matches .pi/skills (hashes, frontmatter)
node scripts/skills.mjs rehash # recompute hashes after editing vendored skills
bash scripts/test-install.sh # fresh, decline, repeat, conflict installsRepository-owned skills are edited directly in .pi/skills, then rehash and verify.
- Project credentials, sessions, models, and trust state are never copied.
- A noncanonical
.opencode/skillsis never imported, backed up, or deleted; resolve it explicitly and rerun. - To uninstall, remove the managed files and the
.opencode/skillssymlink; restore a.bak.*file by renaming it back.