My personal pi agent config repo.
It keeps prompts/extensions/skills/themes/reminders plus repo-managed pi config in version control and bootstraps them into ~/.pi/agent.
- Node.js ≥ 22.19.0 — see Installing Node.js
- pi — see Installing pi
This config assumes a few CLI tools are available on PATH for the agent and its extensions to use:
difft(difftastic)fdjqrg(ripgrep)sccshellcheckctags(universal-ctags)yq
You can install these yourself, or use lum as a one-stop way to manage them:
lum tools syncmacOS (Homebrew):
brew install nodeOr install via fnm (recommended for managing multiple Node versions).
Linux — install via your package manager (apt, dnf, etc.) or fnm.
Verify:
node --version # should be ≥ 22.19.0Install pi globally with npm:
npm install -g @earendil-works/pi-coding-agentVerify:
pi --versionFrom this repo root:
npm run setupTheme defaults to light. You can also choose explicitly:
npm run setup-light
npm run setup-darkNo npm install needed — the bootstrap script uses only Node.js built-ins.
npm run setup runs bootstrap.mjs, which:
- symlinks into
~/.pi/agent:prompts/extensions/skills/themes/reminders/APPEND_SYSTEM.mdmodels.json
- merges overlay files into:
~/.pi/agent/settings.json(fromsettings.json)~/.pi/agent/verbosity.json(fromverbosity.json)~/.pi/web-tools.json(fromweb-tools.json)~/.pi/agent/hashline-readmap/settings.json(fromhashline-readmap-settings.json)
bootstrap.mjs— setup/link/merge scriptprompts/— prompt filesextensions/— pi extensionsskills/— pi skillsthemes/— pi themesreminders/— global reminder definitions forpi-system-remindersAPPEND_SYSTEM.md— extra system prompt text appended into pisettings.json— repo-managed pi settings overlay, including installed packages/extensionsverbosity.json— repo-managed pi-verbosity-control overlaymodels.json— custom provider/model definitions symlinked into pi (for example OpenRouter viaOPENROUTER_API_KEY)
The bootstrap script is plain Node.js, but pi extensions in extensions/ can still stay TypeScript.
Reminder files tracked in reminders/ become global reminders via ~/.pi/agent/reminders; project-specific reminders for some other repo should still live in that repo's .pi/reminders/ directory.
Re-run npm run setup any time you change files in this repo or set up a new machine.
bootstrap.mjs resolves the repo from the script location, so it works even if you invoke it outside the repo root.
settings.json and verbosity.json are applied as repo-managed overlays. Every leaf path present there is owned by this repo. Other local pi settings are preserved, and if a repo-managed key is later removed from either file, re-running setup removes it from the corresponding file in ~/.pi/agent/ too.