dsh-unplug
zoahdev/dsh-unplug
Plug/unplug any DeepSeek Harness plugin cleanly: list every mounted layer, disable/enable without deleting, remove bundles + patch rows + dependencies in one pass, and audit for orphaned/dangling plugin state. Zero runtime dependencies; read-only by defau
Installation
dsh plugin --profile web add github:zoahdev/dsh-unplugREADME
dsh-unplug
让 DeepSeek Harness(dsh)的插件装得容易、拔得干净——所有插件都能插拔自如。 Plug/unplug any DeepSeek Harness plugin cleanly. 简体中文 · English
中文说明
为什么需要它? 官方 dsh plugin remove 只处理 profile 里 dsh.profile.bundles 列表中的 bundle:
- 不会清理 profile/home 的
cordis.patch.yml里残留的插件行 - 没有"禁用但保留配置"的能力(插拔自如)
- 没有审计接口,拔完也不知道有没有残留
dsh-unplug 补上这三个缺口。
快速开始
dsh plugin add dsh-unplug
命令行
dsh-unplug # 什么都不输:直接给你中文菜单
dsh-unplug list # 列出所有已挂载插件(bundles + 补丁行)
dsh-unplug remove <插件> --yes # 完整卸载(bundle + 补丁行 + 依赖)
dsh-unplug remove --yes # 忘写插件名?自动列出已装插件
dsh-unplug disable <插件> # 禁用但不删除(保留依赖,可随时启用)
dsh-unplug enable <插件> # 重新启用
dsh-unplug audit # 检测孤立行 / 悬空 bundle
dsh-unplug fix --yes # 一键修复(reconcile 的傻瓜版)
dsh-unplug list --all # 一次看所有 profile
选项:--profile <名>(找不到会自动找)、--home <路径>、--json、--yes、--dry-run。
Agent 可调用工具
安装后 agent 获得 unplug 工具:
list/audit— 只读,任何时候可用remove/reconcile— 需要force: true显式确认disable/enable— 可逆操作,无需确认
返回 dsh-unplug/v1 报告。
工作原理
- bundle 列表(
dsh.profile.bundles)— 移出列表 + pnpm remove - 禁用列表(
dsh.profile.disabledBundles)— 在 bundles/disabled 之间移动 - profile 的
cordis.patch.yml— 删除插件行或切换disabled: true - home 的
cordis.patch.yml— 同上 - 孤立/悬空状态 — audit 发现,reconcile 修复
安全
默认只读;remove / reconcile 需要显式 --yes(CLI)或 force: true(工具)。
English
Why? The official dsh plugin remove only handles bundles in the profile's
dsh.profile.bundles list. It does not:
- Remove patch rows from
cordis.patch.yml(profile or home level) - Disable/enable without deleting
- Audit for orphaned rows or dangling bundle references
dsh-unplug fills all three gaps.
Quick start
dsh plugin add dsh-unplug
CLI
dsh-unplug list # show every mounted plugin row
dsh-unplug # no args → friendly menu
dsh-unplug remove <plugin> --yes # fully unplug (bundle + patch + deps)
dsh-unplug remove --yes # forgot the name? we list installed ones
dsh-unplug disable <plugin> # disable without deleting
dsh-unplug enable <plugin> # re-enable
dsh-unplug audit # detect orphaned/dangling state
dsh-unplug fix --yes # one-command fix (alias for reconcile)
dsh-unplug list --all # scan every profile
Options: --profile <name> (auto-falls back), --home <path>, --json, --yes, --dry-run.
Agent-callable tool
Once installed, the agent gains the unplug tool:
list/audit— always allowed (read-only)remove/reconcile— requireforce: truedisable/enable— reversible, no confirmation needed
Returns a dsh-unplug/v1 report.
How it works
- Bundle list (
dsh.profile.bundles) — remove entry + pnpm remove - Disabled list (
dsh.profile.disabledBundles) — move between bundles/disabled lists - Profile
cordis.patch.yml— delete entry or toggledisabled: true - Home
cordis.patch.yml— same as above - Orphaned rows — detect via audit, fix via reconcile
Security
Read-only by default; remove / reconcile require explicit --yes (CLI) or force: true (tool).
License
MIT
Ähnliche Plugins
api-relay-audit
toby-bridges/api-relay-audit
dsh-auto-review
perrylink/dsh-auto-review
dsh-claude-ux
eri64/dsh-claude-ux
dsh-remote
xgone/dsh-remote