pi-sync-webdav
Manual WebDAV sync for Pi Coding Agent configuration.
Package details
Install pi-sync-webdav from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-sync-webdav- Package
pi-sync-webdav- Version
0.2.3- Published
- Aug 24, 2026
- Downloads
- 699/mo · 52/wk
- Author
- dabblerli
- License
- MIT
- Types
- extension
- Size
- 195.7 KB
- Dependencies
- 1 dependency · 2 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
A Pi Coding Agent extension that syncs one configuration directory to and from a WebDAV server using Basic Auth.
Requirements
- Pi Coding Agent
- A WebDAV server that supports Basic Auth
- HTTPS (HTTP is allowed only after you accept the cleartext warning during setup)
Install
pi install npm:pi-sync-webdav
Update with:
pi update --extensions
Quick start
- Create an empty, dedicated WebDAV folder for pi-sync-webdav. Do not put other files in it; the extension manages its own sync data there.
- Run
/sync-webdavand enter the WebDAV URL, the folder path, your username, and password. Setup will test read and write access to this folder before saving. - Choose which local paths to push.
- Run
pushon the machine you want to sync from andpullon the machine you want to sync to. Each changing action asks for confirmation first.
Commands
| Command | What it does |
|---|---|
/sync-webdav |
Opens setup when unconfigured, otherwise the dashboard. |
/sync-webdav settings |
Edits the WebDAV connection or the local push selection. |
/sync-webdav status |
Checks that the remote folder is reachable and readable, and reports sync data. |
/sync-webdav diff |
Previews the file changes the next push would make. Changes nothing. |
/sync-webdav push |
Uploads the selected local configuration. |
/sync-webdav pull |
Downloads and applies the remote configuration after confirmation. |
/sync-webdav restore |
Reapplies the most recent local backups created by a prior pull. |
/sync-webdav cleanup |
Removes verified remote residue left by a failed or interrupted operation. |
status and diff are read-only and can run non-interactively. Other commands require an interactive Pi TUI.
What syncs
Default push selection: settings.json, keybindings.json, AGENTS.md, SYSTEM.md, APPEND_SYSTEM.md, models.json, themes/, prompts/, skills/, extensions/.
Change the selection under settings. Directories sync recursively. The selection only affects push; pull always applies the full remote file set.
The top-level npm/, git/, and pi-sync-webdav/ directories are never synced. logs/ and node_modules/ are ignored wherever they appear.
sessions/ and auth.json are off by default. Adding one to the selection asks for an extra confirmation. Only sync sensitive data to a remote you trust.
How sync works
- push publishes your currently selected local files to the dedicated remote folder. After the first push, unchanged files are reused on the server and only changed files are uploaded.
- pull applies the remote file set, even if your local push selection is different. Only added or updated files are downloaded. Review the planned additions, updates, and removals before confirming.
- restore reapplies those local file backups after confirmation. It does not restore a remote version and does not reinstall Pi packages.
- Before pull replaces or removes managed local files, it backs them up under
pi-sync-webdav/backups/in the Pi agent directory. Only the latest changed pull is kept; restore leaves the backup in place.
Remote access and safety
- HTTPS is required by default. HTTP needs an explicit warning confirmation. Self-signed or invalid TLS certificates are rejected.
- If the remote folder can be read but not written, the connection is saved as read-only. You can still use
status,diff, andpull;pushand residue cleanup are unavailable. - Saving a connection only tests access—it never starts a push or pull.
- Long-running actions show progress and can be cancelled with Esc.
- If an operation reports remote residue, run
/sync-webdav cleanupto remove it.
Pi packages
When pull detects changes to the package list, it shows any installs, updates, or removals alongside the file changes and applies them after confirmation. Package install code runs with your user permissions, so only pull from a remote you trust.
If a package operation fails or is cancelled after files were pulled, the pulled files stay and you must resolve the package change manually.
Contributing
See CONTRIBUTING.md.
License
This project is licensed under the MIT License.
Acknowledgements
Thanks to the LINUX DO community.