WebDAV synchronization for Claude Code user data
npx claudepluginhub babylonehy/claude-webdav-sync-pluginSynchronize Claude Code user configuration and history across machines via WebDAV
Synchronize your Claude Code configuration and history across multiple machines via WebDAV.
tar.gz before transfer — efficient and reliablePush: local files → tar.gz + manifest.json → WebDAV
Pull: WebDAV → verify sha256 → extract only changed files → local
Remote layout:
/claude-code-sync/
claude-sync.tar.gz # all synced files packed
claude-sync.manifest.json # per-file sha256 + archive sha256
# In Claude Code, run:
claude /plugins install Babylonehy/claude-webdav-sync-plugin
git clone https://github.com/Babylonehy/claude-webdav-sync-plugin.git
cd claude-webdav-sync-plugin
chmod +x scripts/install.sh
./scripts/install.sh
git clone https://github.com/Babylonehy/claude-webdav-sync-plugin.git
cd claude-webdav-sync-plugin
pip install webdavclient3 pyyaml click python-dateutil
webdav-sync configure
Prompts for URL, username, and password.
webdav-sync configure --preset jianguoyun
Automatically sets the URL to https://dav.jianguoyun.com/dav/ and prompts for:
Create an app password at: https://www.jianguoyun.com/d/account#security
# Set alias (add to ~/.bashrc or ~/.zshrc)
alias webdav-sync='python3 ~/.claude/plugins/cache/webdav-sync-marketplace/webdav-sync/1.0.0/scripts/webdav_sync.py'
webdav-sync push # pack and upload (skips if nothing changed)
webdav-sync pull # download and extract changed files only
webdav-sync push --force # always re-upload
webdav-sync pull --force # extract all files unconditionally
webdav-sync status # show connection and last sync time
webdav-sync configure --sync-on-startup --sync-on-shutdown
| Path | Description |
|---|---|
~/.claude.json | Main user settings |
~/.claude/settings.json | Project-level settings |
~/.claude/config.json | API key configuration |
~/.config/opencode/opencode.json | OpenCode configuration |
~/.claude/history.jsonl | Conversation history |
~/.claude/projects/*/ | Project session files |
Not synced: plugin cache, telemetry, shell snapshots, debug logs.
Stored at ~/.claude/plugins/data/webdav-sync/config.yaml:
webdav_url: https://your-webdav-server.com/dav
username: your-username
password: your-password
provider: generic # or: jianguoyun
auto_sync: false
sync_on_startup: false
sync_on_shutdown: false
exclude_patterns:
- telemetry/*
- debug/*
- shell-snapshots/*
- statsig/*
pip install -e ".[dev]"
pytest tests/ -v
pytest tests/ -v --cov=src/webdav_sync --cov-report=html
MIT License — see LICENSE for details.
rm -rf ~/.claude/plugins/cache/webdav-sync-marketplace
rm -rf ~/.claude/plugins/marketplaces/webdav-sync-marketplace
rm -rf ~/.claude/plugins/data/webdav-sync