MR1ZK/dsh-quick-setup ↗★ 0

dsh-quick-setup

导出第三方插件及配置为便携包并支持批量安装 适合需要在多台电脑或不同配置环境间快速同步、对齐已装插件集合的用户。

套件
dsh-quick-setup
相容性
待驗證
版本
0.3.0
授權
MIT
最近更新
2026年10月24日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:MR1ZK/dsh-quick-setup

使用

  1. 导出:打开设置页,勾选要带走的插件,点“导出插件包”,得到一个 dsh-quick-setup- -.dshpack.tgz。
    • 想连同插件设置一起带走时,勾选「同时备份插件配置」(默认不勾选,因为配置里可能有密钥);
    • 如果只想同步插件名和版本,勾选“仅导出插件信息”,得到 dsh-quick-setup- -.plugins.txt;
    • 该模式下可再选择“包含当前版本号”(默认勾选):取消勾选则清单只写插件名,目标实例安装 npm 上的 latest。
  2. 传输:U 盘、scp、网盘均可。
  3. 导入:在目标 DSH 的同一设置页选择文件(.dshpack.tgz 或 .plugins.txt 都接受)→ “检查兼容性” → 核对报告 → “安装选中的插件”。
  4. 若结果里出现 restart-required,重启目标 DSH 后在插件页确认状态。

插件配置备份的范围

勾选「同时备份插件配置」后,包里会额外带上一份 config 字段,内容是 cordis.patch.yml 中属于所选插件的补丁条目(- id: / name: / config: 的原样 YAML 文本):

  • 这是 DSH 官方配置编辑器写入的设置,即用户在设置页里改过的值;插件自己的默认值来自包内代码,不在备份范围。
  • 匹配按包名进行,dsh-ops/shell 这样的子路径条目算作 dsh-ops 的一部分。
  • 只备份带 config: 或 disabled: true 的条目;没有配置的插件不会产生空条目。
  • 配置里可能有 API Key、路径等敏感信息。插件包本身没有任何加密,请像对待密钥一样保管和传输。
  • 导入时逐条合并:目标 cordis.patch.yml 中已有相同 id 或 name 的条目会被跳过(保留目标机器上的现有值),其余追加写入。配置在组合重载后生效,通常需要重启 DSH。
  • 单个条目上限 128 KiB、总量 512 KiB、最多 200 条;超限的包会被拒绝导入,而不是截断。

插件自己的私有存储(例如 ~/.dsh/music-player-prefs.json、localStorage 中的状态)不在备份范围,需要单独复制。

插件信息清单(.plugins.txt)只有插件名和版本号(或只有插件名),不含代码、描述与来源 registry;导入时目标实例必须能访问这些包所在的 npm registry(镜像、代理或私有 registry 需已在目标 profile 配置好)。

已知限制:

  • 含原生模块(.node)或平台限定的可选依赖的插件,可能在目标平台安装失败;报告会给出原始错误。
  • 需要执行安装脚本的插件,会被 DSH 官方安装流程拦下并要求确认;本插件不会绕过该确认。
  • 清单里的 requirements 只是导出时的快照,导入时以目标实例重新计算的报告为准。
  • 同名插件的升级/降级不会自动执行:DSH 的 pluginManager.installBundle() 在热重载模式下会拒绝已存在的包名。快速安装会把这类条目标成“版本冲突”,请先在插件管理里移除旧版本,再导入新包或新清单。清单里已安装且版本相同的条目会标为“已安装”,不会重复安装。
  • 插件信息清单导入时,未安装条目会通过 pnpm view 查询 npm(并发 4、单条 15 秒超时)。网络不可用时会给出警告,条目仍可手动尝试安装;包不存在或不是 DSH 插件的条目会被标为无效并默认不选。
  • 不处理插件自己的私有配置文件;这类文件通常应单独复制。

HTTP 接口(同源,内部使用)

方法路径用途
GET/dsh-quick-setup/api/status当前环境 + 可导出的第三方插件
GET/dsh-quick-setup/api/export?plugin=&plugin=…流式下载完整插件包(无参数则导出全部;加 config=1 时附带 cordis.patch.yml 配置条目)
GET/dsh-quick-setup/api/export?mode=info&withVersion=0|1下载插件信息清单(text/plain;withVersion=0 时只写插件名,默认带版本号)
POST/dsh-quick-setup/api/upload上传插件包(application/gzip)或插件清单(text/plain),生成兼容性预览
POST/dsh-quick-setup/api/install安装一个选中条目(JSON:{uploadId, name};清单条目按 name@version 或裸 name 装 npm 包)

POST 需要 x-dsh-quick-setup: 1 头;所有接口都做同源检查。插件清单上传上限 1 MiB,插件包 1 GiB。