dsh-backup
Securityxiaoyuyu6420/dsh-backup
Backup and restore DeepSeek Harness user data with one command, including scheduled auto-backup, sha256 checksums, rotation, credential redaction, and GitHub sync.
- backup
- credential-redaction
- cross-machine-restore
- deepseek-harness
- dsh
- dsh-plugin
- github-sync
- restore
- snapshot
README
dsh-backup
English | 简体中文
dsh-backup is a DeepSeek Harness (DSH) plugin that backs up and restores ~/.dsh with a single command.
Sessions, settings, skills, and plugin config all live in ~/.dsh. Delete it by accident, break a config, or move to a new machine — with a backup, you get it all back. Credentials never enter an archive; scheduled backups and GitHub sync are supported (details in the advanced guide, Chinese).
Install
dsh plugin --profile web add @xiaoyuyu6420/dsh-backup
# or from GitHub:
dsh plugin --profile web add github:xiaoyuyu6420/dsh-backup
Then restart dsh web. Requires macOS / Linux / Windows 10+ (ships tar) and DSH 0.1.0-rc.6 or compatible.
Quickstart
- Install (above) and restart
dsh web - Run
/backup - Done — the archive lands in
~/Desktop/dsh-backups/, named with a timestamp
Want it on a schedule? /backup auto 12 — every 12 hours, keeps going across restarts.
Commands
| Task | Command |
|---|---|
| Back up now | /backup |
| Schedule | /backup auto 12 (off to stop, status to check) |
| Restore | /backup restore latest (--dry-run to preview) |
| List backups | /backup list |
| Verify integrity | /backup verify [prefix|all] |
| Delete | /backup delete <prefix|latest> |
| Keep N copies (default 7) | /backup --keep N |
Prefer clicking? There's a visual panel in dsh web settings.
New machine
Prerequisite: GitHub sync was configured on the old one (setup).
- Install the plugin, set the same
githubRepo /backup github pull— fetch the remote backups/backup restore latest --sync-deps— restore and reinstall plugin dependencies- Restart
dsh
More
Retention policy, credential redaction, GitHub sync, restore safeguards, config reference, troubleshooting, and development notes — in the advanced guide (Chinese).
Acknowledgements
- @beastrobin — the reserved-method-name root cause analysis in #1 that directly led to the v0.5.1 fix
- @mlosun — the thorough reproduction and root cause report in #2
- @Choi-Peng — triage help pointing affected users to the fix in #5
License
MIT