A monorepo of Pi extensions distributed as a Git package.
| Package | Description | Distribution |
|---|---|---|
| pi-crawl4ai | Web crawling with crawl4ai and proxy support | Git package |
| pi-work | Docs-as-work skills, docs/work scaffold, and /work browse-and-act wizard |
Git package |
| pi-presets | Named job presets (/preset, --preset) |
Git package |
| pi-tools | Official /tools command |
Git package |
| pi-keepalive | Delayed provider-error retries and configurable periodic keepalive messages | Git package |
| pi-searxng | Self-hosted SearXNG as web_search_searxng |
Git package |
| pi-xai-defaults | Default-on xAI extras for Grok models | Git package |
| pi-workspaces | Pi Web workflow panel for Melon task worktrees and Codex | Git package |
Pi can manage this monorepo as one unpinned Git package. This installs every
Melon extension, the Pi Web workspace plugin, and the pi-work skills declared
by the root manifest:
pi install git:github.com/Patrick3131/pi-packagesUpdate it together with third-party Pi packages, then hot-reload the active session:
pi update --extensions
# In Pi: /reloadThis is the deployment and normal workstation setup. Local paths are reserved for development of an extension before it is pushed.
The global setup also installs pi-compact
as a workaround for Pi's current auto-compaction gap during long assistant/tool
loops. It compacts at completed turn boundaries and coordinates continuation
ownership with pi-goal.
This is not a replacement for native Pi behavior. The guard should eventually
be handled by Pi core before the next provider request; remove pi-compact from
the global package configuration once that native fix is available.
git clone https://github.com/Patrick3131/pi-packages.git
cd pi-packages
npm installKeep the GitHub package in global settings for normal use. In this checkout only,
use project-local .pi/settings.json to disable that package's resources and load
the working tree instead:
{
"packages": [
{
"source": "git:github.com/Patrick3131/pi-packages",
"extensions": [],
"skills": [],
"prompts": [],
"themes": []
},
".."
],
"extensions": []
}# Install dependencies
npm install
# Build all packages
npm run build
# Build single package
npm run build --workspace=packages/pi-crawl4ai
# Type check all
npm run typecheck./configs/global/restore.shThat copies sanitized global settings, personal job presets, and /tools. It does not copy auth.json or sessions.
- Create directory:
packages/pi-<name>/ - Copy structure from
packages/pi-crawl4ai/ - Update
package.jsonwith new name and description - Add to the Packages table above
Push changes to the repository, then update installed copies with:
pi update --extensions
# In Pi: /reloadFor a pinned release, install a Git tag or commit:
pi install git:github.com/Patrick3131/pi-packages@<tag-or-commit>pi-packages/
├── packages/
│ ├── pi-crawl4ai/
│ │ ├── src/
│ │ ├── package.json
│ │ └── README.md
│ ├── pi-work/
│ │ ├── src/
│ │ ├── skills/
│ │ ├── package.json
│ │ └── README.md
│ └── pi-presets/
│ ├── src/
│ ├── package.json
│ └── README.md
├── configs/global/ # Restore snapshot for ~/.pi/agent
├── package.json # Workspace root
├── AGENTS.md # Working agreements
├── CONTEXT.md # Architecture
└── README.md # This file
MIT