pi-sync-extension
Secure sync for Pi configuration (settings, extensions, skills)
Package details
Install pi-sync-extension from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-sync-extension- Package
pi-sync-extension- Version
1.1.4- Published
- May 12, 2026
- Downloads
- 52/mo · 4/wk
- Author
- cemmetje87
- License
- MIT
- Types
- extension
- Size
- 11.4 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"pi-sync.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
name: pi-sync description: Secure sync for Pi settings, extensions, skills, and tools
Pi Sync Extension 🔧
Open Source • MIT License
Securely sync all Pi configuration between machines.
Features ✨
- Exports: skills, extensions, settings
- Excludes sensitive files (
.env,*_local*) - Encryption: age (best) or openssl AES-256-CBC
📦 Installation
🚀 One-Liner Install (Recommended)
# Install with auto-export
curl -fsSL https://github.com/cemmetje87/pi-sync/raw/main/install.sh | bash -s -- --export ~/pi-backup.age
# Or just install without export
curl -fsSL https://github.com/cemmetje87/pi-sync/raw/main/install.sh | bash
Note: First export auto-generates a random encryption password (shown in output). Save this for importing on other machines.
NPM
npm install -g pi-sync-extension
# or use directly
npx pi-sync-extension export ~/pi-backup.age
package.json
{
"name": "pi-sync-extension",
"version": "1.0.0",
"description": "Secure sync for Pi configuration (settings, extensions, skills)",
"main": "pi-sync.ts",
"bin": {
"pi-sync": "./sync.sh"
},
"files": [
"pi-sync.ts",
"sync.sh",
"SKILL.md"
],
"keywords": ["pi", "extension", "sync", "backup", "configuration"],
"author": "",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/cemmetje87/pi-sync.git"
},
"homepage": "https://github.com/cemmetje87/pi-sync"
}
From Git (Recommended for now)
# Clone the repository
git clone https://github.com/cemmetje87/pi-sync.git
cd pi-sync
# Copy files to Pi extensions directory
mkdir -p ~/.pi/agent/extensions/pi-sync
cp sync.sh pi-sync.ts ~/.pi/agent/extensions/pi-sync/
# Create extension symlink
ln -sf ~/.pi/agent/extensions/pi-sync/pi-sync.ts ~/.pi/agent/extensions/pi-sync.ts
# Run export (generates password automatically)
cd ~/.pi/agent/extensions/pi-sync
./sync.sh export ~/pi-backup.age
# Restart Pi to load the extension
Quick Install (with auto-extension setup)
# Clone or download the pi-sync extension
cd ~/.pi/agent/extensions/pi-sync
# Run export with auto-install - creates extension symlink automatically
PI_SYNC_AUTO_INSTALL_EXT=1 ./sync.sh export ~/pi-backup.age
Manual Install Steps
📁 Download the extension
# Create directory mkdir -p ~/.pi/agent/extensions/pi-sync # Copy files (from repo or extract) # sync.sh → ~/.pi/agent/extensions/pi-sync/sync.sh # pi-sync.ts → ~/.pi/agent/extensions/pi-sync/pi-sync.ts🔗 Create extension symlink
ln -sf ~/.pi/agent/extensions/pi-sync/pi-sync.ts ~/.pi/agent/extensions/pi-sync.ts🔐 First run generates password
cd ~/.pi/agent/extensions/pi-sync ./sync.sh export ~/my-pi-config.age # Creates ~/pi-sync/.env with encryption password🔄 Restart Pi to load the extension
Usage
# Export (encrypt and save)
./sync.sh export ~/backup/pi-config.age
# Import (load and decrypt)
./sync.sh import ~/backup/pi-config.age
# Install extension for Pi (auto-creates symlink)
./sync.sh install-extension
# Auto-install extension on export
PI_SYNC_AUTO_INSTALL_EXT=1 ./sync.sh export ~/backup.pi-age
Environment Variables
| Variable | Description |
|---|---|
PI_SYNC_PASS |
Encryption password (if not set, random one generated) |
PI_SYNC_INSTALL_AGE |
Set to 1 to auto-install age via brew |
PI_SYNC_AUTO_INSTALL_EXT |
Set to 1 to auto-create extension symlink |
What Gets Synced
~/.pi/agent/skills/- All skills (excluding.env)~/.pi/agent/extensions/- All extensions~/.pi/agent/settings
Security Notes
- Password stored in
~/pi-sync/.env(NOT synced) - Existing
.envfiles in skills are excluded - Share encrypted archive safely between machines
License
MIT License - See LICENSE file for details.
Open source, free to use, modify, and distribute.