仅数据的事务式配置包管理器,提供完整性、归属、预览、差异和回滚保护。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
面向 DeepSeek Harness 的事务性纯数据包管理器:预览、安装、比较、导出和卸载 $DSH_HOME 下的独立版本资源,同时记录归属并保护用户修改。
界面截图

使用 GPT Image 根据已实现的 Client 布局和功能生成;实际外观会随 DSH 主题和视口变化。
包格式
来源是本地目录,或 ZIP 兼容的 .dshpack/.zip 归档,其中包含 dshpack.yaml 和清单声明的全部载荷。严格的版本 1 清单包含 id、版本、兼容范围、1–10,000 个文件、每个文件的 SHA-256、create/replace/merge 模式、归属元数据和有大小限制的展示元数据。
包文件只能是数据。允许的载荷扩展名包括 JSON/YAML/.dshskin、Markdown/文本/TOML/INI,以及 PNG/JPEG/WebP/GIF 图片;可执行或未知扩展名会被拒绝。脚本、钩子、shell 命令、JavaScript 模块、URL 下载、符号链接、YAML alias/tag/anchor、嵌入密钥、路径穿越、重复归档路径和未声明载荷都不会执行或安装。使用载荷前会检查归档压缩大小、展开大小、单文件大小、总字节数和条目数。
事务与归属
预览会报告 create/replace/merge 动作和冲突。已有但无归属的文件、其他包拥有的文件、create 模式碰撞,以及安装后被修改的资源都需要显式 force。Force 只转移清单声明资源的归属,绝不会隐式启用。
安装和卸载会串行执行,并使用磁盘事务锁。固定顺序原子写入前会备份每个目标;失败后按逆序恢复,并报告部分回滚错误。账本原子写入 $DSH_HOME/.dsh-vibe-pack/ledger.json。卸载默认保护被用户修改的资源。
每次读取和修改受管资源前都会解析真实文件系统位置。若符号链接或 Windows 目录联接指向所配置 DSH 根目录之外,预览、备份、导出、建目录、写入和删除都会提前拒绝。
Merge 模式只接受 JSON 或 YAML 对象:递归合并对象键,替换数组和标量,拒绝原型键和密钥,并输出确定性数据。导出会先确认已安装资源仍与账本一致,再生成可移植 .dshpack 归档。
UI 与 CLI
Settings → Vibe Pack 提供中文、响应式且可键盘操作的本地包管理界面:选择本地目录或 .dshpack/ZIP 路径后必须先预览;预览按 create/replace/merge 动作及冲突分组,安装会绑定该次预览的来源摘要,来源变化后必须重新预览。已安装包直接来自账本,可选择后查看差异表、导出 .dshpack,或输入包 ID 二次确认再卸载。强制安装和强制卸载分别确认,绝不会相互沿用。生成的 Typert namespace 为 vibePack。CLI 默认管理 $DSH_HOME,--root 仅用于显式测试目录。
dsh-pack --root $env:DSH_HOME inspect ./my-pack
dsh-pack --root $env:DSH_HOME plan ./my-pack.dshpack
dsh-pack --root $env:DSH_HOME install ./my-pack.dshpack
dsh-pack --root $env:DSH_HOME history
dsh-pack --root $env:DSH_HOME diff my-pack
dsh-pack --root $env:DSH_HOME export my-pack > my-pack.dshpack
dsh-pack --root $env:DSH_HOME uninstall my-pack
只有在检查归属或修改冲突后才应使用 --force。
安装
dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack
安装后重启原有 DSH Web 进程并刷新页面。完整说明见套件安装指南。
模型体验
本插件不会增加模型提示、工具、消息、token 消耗或 KV cache 内容。包检查和修改只会通过用户显式执行的 Host UI 或 CLI 操作发生。
已知限制
进程异常退出后事务锁会保持 fail-loud;确认没有 Vibe Pack 进程运行后可能需要手动清理。Remote 操作由同一 DSH Web composition 中的可信客户端共享。当前格式提供 SHA-256 完整性和归属检查,不提供发布者签名或网络分发。
开发
在仓库根目录运行 corepack pnpm typecheck、corepack pnpm test、corepack pnpm build 和 corepack pnpm pack:check。安全验收用例见 TEST_PLAN.md。
1.0.1 已标记兼容 DSH 0.1.2-rc.1 的 web Profile。Windows 实测已在 3081 隔离 QA 实例和 3080 现有本地 Profile 中加载 Host 服务、浏览器 Client、生成的 Remote 命名空间和 Settings 面板;面板成功显示账本已加载且当前为 0 个包。自动化覆盖共 14 项测试,包括目标存在与不存在时的目录联接越界。
CI 已配置为在 Windows 和 Linux 上重新构建已提交的 lib 产物;任何已跟踪或未跟踪差异都会使检查失败。
MIT,见 LICENSE。
链接
同类插件
dsh-market/dsh-market★ 10295
在 DeepSeek Harness 设置页内浏览、搜索并安装社区插件,支持分类筛选、一键更新与停用,以及主题切换与配置备份。
zhu1090093659/dsh-web#packages/dsh-plugin-manager★ 9959
设置 → 插件 分区里的插件管理 Tab:从 npm/git 安装带进度、下次启动生效的启停开关、安装冲突对账可撤销、失败一键转交修复会话。
kingOfSoySauce/dsh-skin-market★ 295
原生皮肤市场与生命周期管理器,发现社区皮肤、展示预览与兼容状态,并提供已验证的一键安装或手动安装入口。
awesome-dsh-plugin/dsh-find-plugin★ 216
会话内直接找插件:按关键词/分类搜索本精选 registry,返回描述与可直接执行的安装命令。
bradeGithub/DSH-Plugins-Marketplace★ 199
面向 GitHub dsh-plugin 话题的插件与技能市场:设置页内逛自动收录的全量索引(CI 每 2 小时刷新),一键安装带类型识别、安装脚本与宿主依赖遮蔽安全检查、环境变量密钥管理,并附 STANDARD.md 识别层规范。
Sanqi-normal/dsh-webui-market-plugin★ 103
dsh Web GUI 内的社区插件市场:浏览 awesome-dsh-plugin.com 目录,从 设置 → 插件 → 插件市场 安装/卸载插件到 profile。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。