DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
C

dsh-capability-toggle-plugin

Capability Toggle Plugin

DSH WebUI 在会话、项目和全局级别控制技能、MCP 服务器、工具、提示注入、审批和安全防护。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:lifeopsgo/dsh-capability-toggle-plugin#668775020a2e9894070e5050908cec18595a53ff
README兼容性版本
Capability controls for Skills, MCP, Tools, Prompt, and Security

兼容性与来源证明

Capability Toggle Plugin 以 dsh-capability-toggle-plugin 发布,当前版本为 2.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/11/3

版本

2.1.0stable
2026/11/3
2.0.1stable
2026/10/18
2.0.0stable
2026/9/29
查看其余 10 个版本收起版本
1.5.0stable
2026/9/19
1.3.2stable
2026/9/12
1.3.1stable
2026/9/12
1.3.0stable
2026/9/10
1.2.1stable
2026/9/8
1.2.0stable
2026/9/8
1.1.0stable
2026/9/2
1.0.3stable
2026/9/1
1.0.2stable
2026/8/27
0.1.0stable
2026/8/22

相关插件

正在加载相关插件…

最新版
2.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 3
周下载
0
最近提交
2026/11/3
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 security-access 分类下经过校验的插件。

Experimental Auto Review@deepseek-ai/dsh-experimental-auto-review针对每个工具的 LLM 授权审查,适用于 DeepSeek Harness Auto 权限预设Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Doctor@linxin666/dsh-doctorDSH 配置档案的事务性救援模式,配备受监督的启动器、隔离的恢复容器、确定性修复、健康监控以及本地 Web 恢复控制台Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。

README

dsh-capability-toggle-plugin

Control agent capabilities from the DSH WebUI — with real runtime enforcement.

English · 简体中文

Capability controls for Skills, MCP, Tools, Prompt, and Security

Session · Project · Global — blue check = on, red cross = off, dashed dash = unset.

What it is

A DeepSeek Harness (DSH) WebUI plugin for controlling skills, MCP servers, tools, prompt injections, approval escalation, and safety guards at session, project, or global scope. Depending on the family, disabling removes, suppresses, rejects, or intercepts the capability on the agent's next step.

Compatible DSH versions

This release targets DSH 0.2.0-rc.1 and 0.2.1-rc.2 (peer range 0.2.0-rc.1 || 0.2.1-rc.2; both verified in a real environment). The Host uses the agent/created lifecycle, persistent configEditor edits, and Loader volatile-config updates; each committed change reconciles every live agent binding.

DSH versionStatusHow it was checked
0.2.0-rc.1supportedHost and Client typechecks, production build, framework-link validation, composed-profile inspection, browser verification, and the full automated suite run green under 0.2.0-rc.1 dependencies at v2.0.1 (380 tests)
0.2.1-rc.2supportedThe same gates against the live 0.2.1-rc.2 runtime, plus end-to-end browser verification of the capability panel and its live preference toggling

This release makes no compatibility claim for other DSH versions.

Quick start

Requires Node.js ^22.19.0 or ≥ 24.0.0 (same as DSH 0.2.x).

dsh plugin --profile web add github:lifeopsgo/dsh-capability-toggle-plugin#v2.1.0

Restart the existing DSH Web GUI process, then refresh the page. Start it with the command below when it is stopped:

dsh --profile web web

Open the control beside the ➕ button while the agent is idle. Replace web with another profile name when needed.

Upgrade or remove
# Upgrade or downgrade: use any tag listed on the releases page
dsh plugin --profile web add github:lifeopsgo/dsh-capability-toggle-plugin#v2.1.0

# Remove
dsh plugin --profile web remove dsh-capability-toggle-plugin

Features

Three-level resolution

Each capability has three independent levels:

session  ›  project  ›  global  ›  default (enabled)

The nearest explicit value wins. Unset defers to the next level; with every level unset, the capability remains enabled. The row badge always shows the resolved result.

The button displays only its current state: click to toggle on ↔ off, or use its small clear badge to return to unset.

Capability families

TabControls
SkillsIndividual model-invocable skills, including project-level skills discovered from the session's workspace (.dsh/skills, .agents/skills)
MCPMCP servers; expand a row to inspect member tools
ToolsIndividual model-visible tools and their guidance sections
PromptA safe, presence-checked allowlist of prompt injections
SecurityApproval escalation and five opt-in safety guards

Enforcement

Every mechanism is scoped to the current agent; global registrations are not mutated.

FamilyEnforcement
toolRemoved with ctx.tools.restrict({ deny }); forced calls are refused, and the tool's tool:<name> guidance section is shadowed out of the prompt
mcpMember tools removed with ctx.tools.restrict({ deny }); the server's mcp:<server> instructions section (its ### MCP server: <name> block, including directives like "call kb.recall first") is shadowed out of the prompt, and shared resource calls (list_mcp_resources / list_mcp_resource_templates / read_mcp_resource) naming the switched-off server are refused
skillShadowed by a same-named modelInvocable:false runtime skill
promptShadowed with empty text, or suppressed with suppressRuntimeContext()
approvalScoped approval requests resolve to rejected
guardtools/pre-execute blocks or requests confirmation for matching calls

Security controls

Turning off Approval escalation rejects every approval request from that agent without changing the system /permission setting.

Safety guards are opt-in:

GuardAction
Read-only modeBlock file writes, creates, and edits
Protect secretsBlock access to common secret files and credentials
Dangerous shellConfirm high-risk shell commands
Destructive gitConfirm history- or work-losing git commands
Outbound networkConfirm network tools and outbound shell actions

Usage stats

Skills, MCP servers, and tools carry a small badge showing how many times the model called them this session (called 7). Counts update when a turn ends while the panel is open, live for one agent's lifetime, and are never persisted — the same retention as a safety guard's matched N badge.

The tally counts requests, not successful runs: a call a guard blocked or sent to confirmation still counts, because the model asking for a capability is the signal worth seeing. Guards are matched against rather than called, so they keep their own badge and show no usage count; prompt and approval rows show none either.

Panel preferences

A disclosure arrow beside the panel title opens three display preferences, stored in localStorage so they survive page reloads and restarts:

PreferenceEffect
Show “enabled / total” on tabsRenders each tab badge as a fraction (67/106) instead of a bare total, so the strip reports how much of each family is active at a glance. The tooltip states both numbers in words either way.
Show call statsHides or shows the per-row usage badge described above.
Level columns to showNarrows the grid to Session, Session + Project, or all three columns.

The fraction counts a guard as enabled only while it is active. A guard row reuses the same disabled field to mean ACTIVE — the inverse of every default-on family — so a Security tab with the approval gate open and all five guards inactive reads 1/6, not 6/6.

Narrowing the level columns is display-only: the three-level resolution keeps running exactly as before, so a hidden project or global override still applies. Each row's badge and level switches always reflect the resolved state — a default-on family reads Active/Disabled, a guard reads Guarding/Inactive — which is why hiding a column cannot hide an effect. The name column absorbs the freed width, and the layout is driven by CSS variables so it stays aligned with the narrow-screen adaptation.

Additional behavior: while the agent runs, the controls that write a stance lock — each row's level switches, their clear badges, and the bulk menus — but browsing stays open, so the search box, the level-column selector, the tabs, and a row's expand still work. State survives popup close and turn boundaries, and the UI follows the WebUI language.

Roadmap

Planned, not yet implemented:

  • Cross-project config sync — copy or link project-level settings from another project instead of configuring each project from scratch.
  • Capability invocation stats — shipped in v1.2.0: skills, MCP servers, and tools badge how many times the model called them this session.
  • Fraction-format tab counts — shipped in v1.3.0: each tab badge renders as enabled / total, and the panel's disclosure arrow holds three display preferences. A guard counts as enabled only while active, so its inverted disabled flag never inflates the Security numerator.
  • Settings menu for customizable defaults — expose the plugin's own options in a settings menu, such as the default stance for newly discovered capabilities (today a capability with all three levels unset resolves to enabled, except the opt-in safety guards, which stay inactive).
  • Show only enabled / only disabled — add a state filter next to the search box, which today matches names and descriptions only. Guards need the same care the fraction counts need: a guard reuses disabled to mean ACTIVE, so "only disabled" must not list a guard that is actually enforcing. The filter would also narrow what bulk actions apply to, since they act on every currently visible row.
  • Filter and select-all — shipped in v1.1.0: the toolbar's search box filters rows, and each level's bulk menu applies enable/disable/clear to every currently visible row.
  • Bulk actions on a filtered selection — shipped in v1.1.0 together with the filter (search narrows, bulk acts on what's shown).
  • WebUI sidebar chrome toggles — shipped in the companion plugin dsh-ui-toggle-plugin (its own Settings section, "UI toggle"): hide the sidebar brand area, keep only the Settings button at the sidebar foot, lay the global panel icons out horizontally, hide the New Session and collapse-sidebar buttons, and hide the composer placeholder — all applied live and migrated from this plugin's stored values on first start.

MIT — see LICENSE