57 lines
1.1 KiB
Markdown
57 lines
1.1 KiB
Markdown
|
|
# Packaging & Distribution
|
||
|
|
|
||
|
|
|
||
|
|
### Creating a Pi Package
|
||
|
|
|
||
|
|
Add a `pi` manifest to `package.json`:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "my-pi-package",
|
||
|
|
"keywords": ["pi-package"],
|
||
|
|
"pi": {
|
||
|
|
"extensions": ["./extensions"],
|
||
|
|
"skills": ["./skills"],
|
||
|
|
"prompts": ["./prompts"],
|
||
|
|
"themes": ["./themes"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Installing Packages
|
||
|
|
|
||
|
|
```bash
|
||
|
|
pi install npm:@foo/bar@1.0.0
|
||
|
|
pi install git:github.com/user/repo@v1
|
||
|
|
pi install ./local/path
|
||
|
|
|
||
|
|
# Try without installing:
|
||
|
|
pi -e npm:@foo/bar
|
||
|
|
```
|
||
|
|
|
||
|
|
### Convention Directories (no manifest needed)
|
||
|
|
|
||
|
|
If no `pi` manifest exists, pi auto-discovers:
|
||
|
|
- `extensions/` → `.ts` and `.js` files
|
||
|
|
- `skills/` → `SKILL.md` folders
|
||
|
|
- `prompts/` → `.md` files
|
||
|
|
- `themes/` → `.json` files
|
||
|
|
|
||
|
|
### Gallery Metadata
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"pi": {
|
||
|
|
"video": "https://example.com/demo.mp4",
|
||
|
|
"image": "https://example.com/screenshot.png"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Dependencies
|
||
|
|
|
||
|
|
- List `@mariozechner/pi-ai`, `@mariozechner/pi-coding-agent`, `@mariozechner/pi-tui`, `@sinclair/typebox` in `peerDependencies` with `"*"` — they're bundled by pi.
|
||
|
|
- Other npm deps go in `dependencies`. Pi runs `npm install` on package installation.
|
||
|
|
|
||
|
|
---
|