DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Workspace Switch — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
W

dsh-workspace-switch

Workspace Switch

DeepSeek Harness 的按工作区激活控制:通过工作区行上的对话框,为每个工作区单独开启或关闭技能、MCP 服务器和插件。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:liaoyuqing/dsh_workspace_switch#361f9c2b7d6eeb19498715c2dd3979fa8413bfa9
README兼容性版本

兼容性与来源证明

Workspace Switch 以 dsh-workspace-switch 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.2.0stable
2026/9/27

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航Remotedsh-remoteDeepSeek Harness 的远程工作助手:连接 SSH(密码/密钥/代理/键盘交互/代理跳转),选择远程工作区,使用 22 个 rw_* 工具操作该工作区(包括 rw_edit/rw_stat/rw_mkdir/rw_remove/rw_move/rw_forward),具备冲突感知的镜像 sy

README

dsh-workspace-switch

Per-workspace activation control for DeepSeek Harness: each workspace decides which plugins, MCP servers, and skills its sessions may use, and a dialog on the workspace row edits that decision.

English | 中文

What it does

Two halves, one plugin:

  • Host half (index.js, built to lib/index.js) reads the per-workspace configuration when an Agent is created and applies it to that Agent's own Cordis scope, so two Agents in two workspaces inside one harness process see different capabilities:
    • a disabled skill is shadowed in that scope by a same-name non-invocable registration, which removes it from the model's skill catalog;
    • a disabled MCP server has every mcp__<serverName>__* tool denied in that scope;
    • a disabled plugin has the tool names its entry declares denied in that scope. The same half serves the configuration routes the dialog uses.
  • Browser half (src/client/, built to lib/client.js) adds one row to a workspace's ... menu. It opens a dialog listing what the running composition offers under each category, with a switch per capability.

A workspace with no entry inherits the deployment's composition unchanged, so the plugin changes nothing until a workspace is configured.

Configuration

Two sources describe one workspace, in increasing precedence:

  1. <DSH_HOME>/workspace-switch.json, whose workspaces map is keyed by workspace directory;
  2. <workspace>/.dsh/workspace-switch.json, which replaces the shared entry for that workspace when it exists.
{
  "workspaces": {
    "E:\\my_project\\godot-game": {
      "plugins": { "mcp-godot-ai": { "enabled": false, "tools": ["mcp__godot-ai__run"] } },
      "mcp": { "godot-ai": { "enabled": false } },
      "skills": { "godot-scene-authoring": { "enabled": false } }
    }
  }
}

enabled: false switches a capability off for that workspace; an absent entry means enabled. A plugin entry also declares the tool names the plugin registers — the gate denies tools by name, so a plugin without tools has nothing to deny.

The dialog writes the document that currently answers for the workspace: the project file while one exists, the shared store otherwise. Output is published through a temp-file rename, so a reader never sees a half-written document.

Install

The plugin is a DSH bundle: add it to a profile and select it.

dsh plugin add link:/path/to/dsh_workspace_switch

then add dsh-workspace-switch to the profile's dsh.profile.bundles. A new bundle row loads at the next harness start.

Build

The browser half is a DSH client bundle and must be built; the repository toolchain is required (the plugin vendors its copy of the client build preset at scripts/tsdown.client.ts, which resolves the harness sources from the checkout it sits in).

# from a deepseek-harness checkout
pnpm exec tsdown --config dsh_workspace_switch/tsdown.config.ts   # or, inside the plugin: pnpm build
pnpm exec tsc -p dsh_workspace_switch/tsconfig.typecheck.json     # typecheck the browser half
node --test "tests/**/*.test.js"                                  # unit tests

lib/ is committed. The package's main and ./client both point into it, and a clone has neither the harness sources nor a build toolchain, so a build-from-source install (dsh plugin add github:…) would otherwise install a package with no entry points. Commit the rebuilt files with any change that alters them.

A standalone clone cannot run the build: the vendored preset imports the harness sources (../../packages/…, ../../scripts/…) that only exist inside a checkout. Build inside the checkout, then commit lib/ here.

Known limitations

  • Skills are gated, not unloaded — a disabled skill keeps its files on disk; only its catalog entry and loading are removed for that workspace.
  • A plugin needs declared tools — the gate denies tools by name, so switching a plugin off only removes what its entry names in tools.
  • The dialog lists what the Host can address — plugin rows come from the profile's plugin manager (or the read-only inventory); a capability the composition does not expose cannot be configured.

Licence

MIT.