Instructions for AI coding agents working in this repository.
This is a Pi package monorepo for packages published under the @codella npm scope.
Packages should use pi-<type>-<name> names where practical:
- Themes use
pi-theme-*names:@codella/pi-theme-cyberpunk@codella/pi-theme-candy@codella/pi-theme-christmas@codella/pi-theme-halloween@codella/pi-theme-grayscale
- Prompt templates use
pi-prompt-*names:@codella/pi-prompt-plan
- Compatibility packages may keep old names while pointing to renamed packages:
@codella/pi-plan-mode->@codella/pi-prompt-plan
- Extensions currently include:
@codella/pi-mcp-support
packages/
pi-theme-cyberpunk/
themes/
pi-theme-candy/
themes/
pi-theme-christmas/
themes/
pi-theme-halloween/
themes/
pi-theme-grayscale/
themes/
pi-prompt-plan/
prompts/
pi-plan-mode/ # compatibility package for pi-prompt-plan
prompts/
pi-mcp-support/
extensions/
examples/
Every publishable package must:
- Include
"keywords": ["pi-package", ...]. - Include a
pimanifest inpackage.json. - Use a
filesallowlist so tarballs contain only intended package assets. - Include
README.mdandLICENSE. - Use
publishConfig.access = "public"for scoped public npm packages.
- Pi core imports should be
peerDependencieswith a"*"range and optional peer metadata. - Runtime dependencies needed by an extension must be in
dependencies. - Do not rely on root
devDependenciesat Pi runtime.
Before making any commit, consider whether the change also requires updating AGENTS.md and any relevant README.md files. If it does, include those documentation updates in the same atomic commit as the related change.
Before considering changes complete, run:
npm run validate
npm run pack:dry-runOr dry-run individual packages:
npm run pack:theme
npm run pack:candy
npm run pack:christmas
npm run pack:halloween
npm run pack:grayscale
npm run pack:plan
npm run pack:plan-mode
npm run pack:mcpReview tarball contents before publishing.
Test Pi packages locally before publishing.
Load prompt templates/extensions directly for a quick test:
pi --no-prompt-templates -e ./packages/pi-prompt-plan
pi --no-extensions -e ./packages/pi-mcp-supportLoad a theme directly for a quick test:
pi --no-themes --theme ./packages/pi-theme-cyberpunk/themes/cyberpunk.json
pi --no-themes --theme ./packages/pi-theme-candy/themes/candy.json
pi --no-themes --theme ./packages/pi-theme-christmas/themes/christmas.json
pi --no-themes --theme ./packages/pi-theme-halloween/themes/halloween.json
pi --no-themes --theme ./packages/pi-theme-grayscale/themes/grayscale.jsonFor a more realistic local install, use project settings:
pi install ./packages/pi-prompt-plan -l
pi install ./packages/pi-mcp-support -l
pi install ./packages/pi-theme-cyberpunk -l
pi install ./packages/pi-theme-candy -l
pi install ./packages/pi-theme-christmas -l
pi install ./packages/pi-theme-halloween -l
pi install ./packages/pi-theme-grayscale -lRemove local test installs when done:
pi remove ./packages/pi-prompt-plan -l
pi remove ./packages/pi-mcp-support -l
pi remove ./packages/pi-theme-cyberpunk -l
pi remove ./packages/pi-theme-candy -l
pi remove ./packages/pi-theme-christmas -l
pi remove ./packages/pi-theme-halloween -l
pi remove ./packages/pi-theme-grayscale -lNever run npm publish without explicit user approval for the exact package(s) and version(s).
@codella/pi-mcp-support documents config in packages/pi-mcp-support/README.md and example config in packages/pi-mcp-support/examples/mcp.json.
Supported config lookup order:
.pi/mcp.json~/.pi/agent/mcp.json~/.pi/mcp.jsonlegacy fallback