Plug/unplug any DeepSeek Harness plugin cleanly — list every mounted layer (bundles + patch rows), remove with full cleanup, disable/enable without deleting, and audit for orphaned/dangling state. CLI + agent-callable unplug tool. Read-only by default; destructive operations require explicit confirmation.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-unplug
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:zoahdev/dsh-unplug
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
让 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
Links
More in this category
yjh051108/dsh-routing-suite★ 6999
One repository, three parts: a runtime injector for DSH plugin packages (inject, hot-reload, unload, promote a dev staging tool to the front, route self-heal, plus a settings-page plugin manager that lists, unloads and drags folders in to internalize), a task-aware reasoning-mode router agent preset (router-standard / router-spec / router-react), and a graded two-level task protocol whose six tools (commit_star, lock_stage, revise_do, edit_plan, mark_task, redteam_verdict) pin task state to disk. The injector implementation ships in-tree, so the install carries its own behaviour rather than a dependency list.
strukto-ai/mirage#dsh★ 3674
Swaps the filesystem and bash providers for a mirage virtual workspace: file tools and shell commands run over mounted resources (RAM, S3, Redis, Slack, Gmail, Notion, Postgres) instead of the host disk, with per-mount read/write/exec modes, per-command sandbox routing (monty, pyodide, quickjs in process; docker, e2b, daytona remote), and installed CLIs (git, gh, slack, linear, ntn, gws, or one you register) as head words in the virtual terminal.
hust-open-atom-club/oh-dsh★ 323
Community distribution: TUI, desktop, and Web UI as one bundle with layered installation.
weijiafu14/pi2dsh★ 212
Pi Host ABI compatibility engine: after one install, unmodified Pi extensions from npm mount as native DSH plugins with `dsh plugin add <pi-package>`. Verified end to end on stock DSH with pi-mcp-adapter (full MCP manager: OAuth, resources, prompts, MCP Apps, elicitation, sampling), @tintinweb/pi-subagents, pi-code, pi-hermes-memory and pi-background-tasks; `pi2dsh inspect` reports a package's compatibility before installing.
Fishquito7/dsh-skill-mcp-panel★ 178
Manages DSH skills and MCP servers from the web settings: skill cards with hot enable/disable, workspace scopes, groups, batch migration and drag-and-drop import, plus stdio/HTTP MCP CRUD with connection tests, secret redaction and the unified dsh-panel CLI.
lire1131/dsh-undo-savepoint★ 175
Undo/redo & rollback system for DSH: every config change is auto-snapshotted; undo/redo/restore to any version from the WebUI or the offline CLI/GUI tools (works even when DSH fails to boot).
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.