@xiaoyuyu6420/dsh-backup

devtested: passnpmMIT

One-command backup, restore & migration for all DSH user data (~/.dsh) with a visual Settings panel: scheduled auto-backup with tiered retention, sha256 verification, hardened restore with auto-rollback and a result receipt, typed sub-backups (--types), credential redaction into a local vault, priva

下载量 / Downloads
4,324
依赖体积 / node_modules
16.48 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-backup

![dsh-plugin](https://github.com/topics/dsh-plugin)

![npm](https://www.npmjs.com/package/@xiaoyuyu6420/dsh-backup)

![Downloads](https://www.npmjs.com/package/@xiaoyuyu6420/dsh-backup)

![Publish to npm](https://github.com/xiaoyuyu6420/dsh-backup/actions/workflows/publish.yml)

![license](LICENSE)

![Stars](https://github.com/xiaoyuyu6420/dsh-backup/stargazers)

![Listed on DSH Directory](https://dsh.directory/plugins/xiaoyuyu6420/dsh-backup)

[English](README.en.md) | 简体中文

你所有的 DeepSeek Harness(DSH)工作数据都在一个目录里:~/.dsh。一次升级失败、一次误删、一次换电脑——没有备份,会话、设置、技能全没了。dsh-backup 用一条命令把它们找回来。

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup   # 安装
# 重启 dsh web,然后输入:
/backup                                                  # → 一份带校验的备份落在 ~/Desktop/DSH Backups/

v0.9.0 全新安装的真实输出:

备份完成: dsh-20260826-195150036.tar.gz
sha256: 8f9ae6322ef782d21554981cf4547220d5bb3e64d7964a883317415ad54e3cbb
轮换删除 0 份(保留 7 份)

不想敲命令也行:dsh web → 设置 → 插件 → 备份 里有可视化面板——列备份、校验、恢复、删除、改设置,全都立即生效不用重启。

三条承诺(完整对齐与交付标准见 [ALIGNMENT.md](docs/ALIGNMENT.md)):

  • 🔐 凭据不离开本机 —— API Key / Token 默认脱敏,明文只留在本机 vault;要更强,可选口令加密备份(AES-256-GCM)。
  • ↩️ 恢复绝不静默覆盖 —— 恢复前先自动快照当前数据、预览要写入的内容,失败自动回滚。
  • 🧭 装上就知道怎么用 —— 首屏三步引导 + 每个高级功能一句人话说明;三个 Tab(备份 / 恢复 / 设置),主按钮只有一个「立即备份」。

它替你挡掉哪些事

你担心的 · dsh-backup 做的事

「升级把环境搞坏了」 · 宿主版本一变就自动拍 dsh-pre-upgrade- 快照——放心试新版,坏了随时回滚

「我误删 / 改坏了东西」 · /backup restore latest --dry-run 先预览要恢复什么再动手;恢复失败自动回滚并给出结果回执

「DSH 根本起不来了」 · 每次备份都会往备份目录放一个零依赖的救援控制台(dsh-rescue / rescue.mjs,或双击「点我恢复」)——不依赖 DSH 的网页版恢复界面

「API Key 会被传到云上吗」 · 凭据默认脱敏,不进备份包;明文只存本机 vault,永不离开这台机器

「会话日志损坏了」 · /backup doctor 体检并从备份定点修复;损坏文件先隔离再入档,防止轮换把好副本也带走

「升级后老会话打不开了」 · /backup migrate-check 迁移预检:升级前静态扫描全部会话,预测哪些会被新宿主拒绝、挂在哪条规则;旧版扁平凭据文件在宿主改写前自动存底

「换新电脑了」 · GitHub 同步:/backup github pull 拉回云端备份,restore --sync-deps 顺手重装插件

「备份悄悄坏了没人知道」 · 每份归档带 sha256,/backup verify all 随时体检;每日/每周分级保留,留得住有用的历史

「我会忘记备份」 · /backup auto 12——每 12 小时自动跑,重启不中断,旧副本自动轮换(默认保留 7 份)

「换新电脑,插件和配置都要重装」 · 单文件 ZIP 导出/导入 + 本地 link:/file: 插件迁移;也能 WebDAV / S3 兼容 / Gist 多通道推送(跨机恢复走 GitHub 通道拉取或 ZIP 导入)

「想从别的 AI 工具搬过来」 · 从 Claude Code / Cursor / Codex 读取技能与全局指令,预览后导入(MCP 只检测报告)

「想回到对话里的某个时刻」 · 会话 Rewind 分叉:从指定轮次开新分支,原会话完整保留

「备份把磁盘占满了」 · 磁盘占用报告 + 分级清理:只清可再生缓存/过期备份,快照与同步数据不动

「想装社区现成配置」 · 配置市场:索引校验 + 预览安装 + 供应链提示,逐个确认才写入

遇到具体报错? 按症状与报错原文查的排错手册:[故障排查](docs/troubleshooting.zh.md)(会话打不开、29 字节空包、面板消失、Token 按钮报错、换机迁移……各条的版本与修法都写明)。

安装

要求:macOS / Linux / Windows 10+(自带 tar),DSH 0.1.1-rc.2+(0.1.1 / 0.1.2 / 0.1.5 / 0.1.6 / 0.1.7 列车均已实测,0.2.0 / 0.2.1 列车分别自 0.13.2 / 0.14.0 起支持;当前兼容状态见 [兼容性矩阵](docs/compatibility.md))。

dsh plugin --profile web add @xiaoyuyu6420/dsh-backup
# 或者直接从 GitHub 安装:
dsh plugin --profile web add github:xiaoyuyu6420/dsh-backup

装完重启 dsh web 后插件才生效。

安装时可能刷出 ✕ missing peer @deepseek-ai/... 警告,属预期现象:这些
peer 包由 DSH 宿主在运行时提供,不装在 profile 目录里。只要命令以
Done 结尾就是装成功了。

快速上手

1. 按上面装好插件,重启 dsh web

2. 输入 /backup

3. 搞定 —— 备份出现在 ~/Desktop/DSH Backups/,文件名带时间戳,旁边一份 .sha256

想定时自动跑?/backup auto 12(每 12 小时一次;off 关闭,status 看状态)。

命令速查

场景 · 命令

立即备份 · /backup

分类型备份(只备份选中类型) · /backup --types skills,sessions(可选:credentials·mcp·skills·sessions·settings·profiles;--only 同义)

定时备份(重启不中断) · /backup auto 12 · off · status

恢复(先预览) · /backup restore latest --dry-run

正式恢复 · /backup restore latest

分类型恢复(merge,不动其他类型) · /backup restore <归档> --types skills

列出备份 · /backup list

校验完整性 · /backup verify [前缀\ · all]

会话日志体检/修复 · /backup doctor · --repair [前缀\ · latest]

升级前迁移预检 · /backup migrate-check

DSH 起不来时自救 · 双击备份目录里的「点我恢复」,或 dsh-rescue / node rescue.mjs

删除 / 保留策略 · /backup delete <前缀\ · latest> · /backup --keep N(默认 7)

分类型备份

只想备份/恢复某几类数据?--types(或 --only)按内容类型子集操作,可选类型:credentials(凭据/api key)、mcp(MCP 配置)、skills(技能)、sessions(会话)、settings(设置)、profiles(插件 profiles)。

  • 备份:/backup --types skills,sessions 生成 dsh-t- 前缀的子集归档,与全量备份分开轮换、互不挤占保留份数
  • 恢复:/backup restore <归档名> --types skills 只把 skills 合并回现有 ~/.dsh(先 --dry-run 预览;覆盖的现有文件自动留档 .pre-merge-*),其他类型完全不碰
  • 凭据类型特殊:--types credentials 会把 api key 明文打进归档(默认全量备份是脱敏的)——这类归档绝不进 GitHub 同步,仅建议本机保存或手动拷到新机
  • 安全护栏:分类型归档不带 --types 直接整包恢复会被拒绝(防止误覆盖丢数据);rescue 救援通道同样不列、不整包恢复它们
  • 面板(Settings → 插件 → 备份)同样支持:备份按钮下方勾选类型;分类型归档在独立分区展示与恢复

换新电脑

前提:旧电脑配过 GitHub 同步([配置方法](docs/advanced.zh.md#github-同步可选))。

1. 新电脑装好插件,配置里填同一个 githubRepo

2. /backup github pull —— 拉回云端备份

3. /backup restore latest --sync-deps —— 恢复并重装插件依赖

4. 重启 dsh

常见问题

API Key / 密码会进备份包吗?

不会。已知的凭据文件打包前会脱敏,明文留在本机 vault 里不离开这台机器;恢复时自动还原。

到底备份了什么?

~/.dsh 下的全部——会话、设置、技能、插件配置——减去你配置的排除模式和 node_modules。

我把 ~/.dsh 搞坏了,dsh 都启动不了,还有救吗?

有——这正是救援通道的用途。每次备份都会往备份目录写 rescue.mjs 和双击启动器(macOS .command / Windows .bat / Linux .sh)。它只用普通 Node 就能跑,不需要 DSH,起一个本地网页让你浏览和恢复备份。

升级后老会话打不开了怎么办?

先别再点开它。运行 /backup migrate-check:静态扫描全部会话日志,告诉你哪些会话会被新宿主拒绝、挂在哪条规则(subagent descriptor 旧版本、插件注入的历史事件等),并检查文件系统硬链接支持。升级前先 /backup 拍一份,坏掉的会话可用 /backup doctor --repair 从更早的归档定点修复。

支持 Windows 吗?

支持——Windows 10+(用系统自带 tar),救援启动器是 .bat 文件。

备份默认放哪?

~/Desktop/DSH Backups/——在面板(设置 → 插件 → 备份)里随时可改,立即生效不用重启。0.14.0 起默认目录由旧的 ~/Desktop/dsh-backups 改名而来:从未配置过备份目录的用户,升级后首次启动会把旧目录自动改名(同盘、原子、不丢备份);显式配置过目录的一律不动。

**备份目录里那

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::27,最后更新 2026-10-30

Links

GitHub · Homepage · npm

Same category