dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh-skill-mcp-panel (local build): 技能与 MCP 管理改为设置窗口分栏,不再占用侧栏与中央主区。基于上游 2.1.0。
本地改版快照 · Local fork snapshot
这不是上游官方仓库,而是我在本机使用的改版快照:基于上游
Fishquito7/dsh-skill-mcp-panel2.1.0(MIT)。 与上游的差异只有一处行为变化:lib/client.js把「技能」「MCP」的管理入口从 侧栏行 + 中央主区(sidebar.panellist/main)改为设置窗口里的两个独立分栏 (settings.section),并相应新增设置分栏外壳样式、去掉只服务于「返回对话」按钮的layout硬依赖(避免设置模态框环境下 layout 缺席导致整个插件不装载);另加tests/settings-sections-probe.mjs探针。上游版权归 Fishquito7,本仓库不是上游的发布渠道。
拥有:
settings.section:技能与 MCP 管理从侧栏 + 中央主区搬进设置分栏。 冲突时:与上游同 entry id,不能并存;已去掉对layout服务的硬依赖。 回滚:整包替换回上游版本(README 顶部记录了两者的全部差异)。
English | 简体中文
DSH 插件,在 Web 主页左侧栏「插件」下方提供「技能」与「MCP」两个管理面板(点击即在中央主区打开,不是弹窗),并随包提供统一终端命令 dsh-panel(skill / mcp 两个子命令族)。
注意:本项目提供的参考命令默认指定profile为默认的--profile web,需要更改profile的请自行注意。
安装本包(bundle 层自动挂载,无需编辑配置文件),二选一:
方式一:GitHub Release tarball
dsh plugin --profile web add https://github.com/Fishquito7/dsh-skill-mcp-panel/releases/download/v2.1.0/dsh-skill-mcp-panel-2.1.0.tgz
方式二:npm(预构建,插件市场同款通道)
dsh plugin --profile web add dsh-skill-mcp-panel
两种方式都安装预构建产物,无需本地构建。也可以从 Git 安装(Git 来源的依赖默认禁止运行 prepare 构建脚本;若报 "git-hosted plugins build on install...",把 pnpm 在上面打印的 key 加到 profile 目录
pnpm-workspace.yaml的allowBuilds下再重跑):dsh plugin --profile web add github:Fishquito7/dsh-skill-mcp-panel
重启网关
重启后刷新页面:左侧栏从「插件」往下依次是「技能」「MCP」,点击哪一个,中央主区就切换成哪一个面板。
两个面板与宿主自带的「插件」页一样,是侧边栏全局面板:点击左栏的「技能」/「MCP」直接把中央主区切过去(不是设置页那种弹窗)。两个页面左上角各有一个「← 返回会话」箭头,点它立刻回到进面板之前那个会话;点会话列表里的任意会话或「插件」也能切走。
.md / .zip),或把文件、压缩包、
技能文件夹直接拖进页面——自动识别目录束/单文件/压缩包结构,不合规内容会被拒绝并提示原因~/.dsh/skills,限定工作区在该工作区的 .dsh/skills。页面“技能列表”下方
有一条工作区选择器(折叠式下拉,全局 + 各工作区,最多显示 11 项、其余滚动),选中即只显示该工作区下的技能。~/.dsh/skills/.system/skill-viewer/groups.json),不修改技能目录。--global / --project / --workspace 显式指定。cordis.patch.yml 中的 MCP 服务器受管块;env / headers 密钥在 RPC 与页面中脱敏,编辑时缺省 key 保留旧值;cordis.patch.yml 面板块外的用户内容逐字节保留。sidebar.panellist 列表槽位 + main 键控槽位),点击左栏「技能」/「MCP」直接在
中央主区切页,设置页不再有这两个 tab;面板自带整页外壳(滚动与页边距)。
需要宿主提供上述两个槽位,本机 DSH 0.1.6-alpha.2 已实测。ctx.layout.selectPanel(null),不改变当前会话)。0.1.6-alpha.2 起的 TypertCodec create() 工厂契约 —— 该改动会让仍写
schema: 的插件在注册阶段直接抛错、整个插件树加载失败(网关起不来)。同一份构建
同时兼容 0.1.5-rc.2 及更早(读 schema)与 0.1.6-alpha.2 及以后(读 create),
无需按版本探测或分开维护分支。统一父命令为 dsh-panel。
dsh-panel skill --help
dsh-panel skill list # 列出技能(含工作区:全局 / 工作区)
dsh-panel skill add <path> # 添加到全局(.md 文件、目录束或 .zip 压缩包)
dsh-panel skill add <path> --workspace D:\项目A # 直接添加到指定工作区
dsh-panel skill scope <name> --global # 迁移单个技能到全局
dsh-panel skill scope <name> --workspace D:\项目A # 迁移单个技能到指定工作区(--copy 复制)
dsh-panel skill migrate <name...|--all> --from <全局|路径> --to <全局|路径> [--copy] [--yes]
dsh-panel skill update [--profile <name>] # 检查并更新插件(默认 web 配置)
# 批量迁移(复制/移动)
dsh-panel skill disable <name> # 停用
dsh-panel skill enable <name> # 启用
dsh-panel skill delete <name> # 删除(需确认)
dsh-panel mcp list [--profile <name>]
dsh-panel mcp add --name <serverName> --stdio --command <cmd> [--args <arg> ...] [--env KEY=VALUE ...] [--cwd <path>] [--profile <name>]
dsh-panel mcp add --name <serverName> --http --url <url> [--header KEY=VALUE ...] [--profile <name>]
dsh-panel mcp enable|disable <serverName> [--profile <name>]
dsh-panel mcp remove <serverName> [--yes] [--profile <name>]
dsh-panel mcp test <serverName> [--profile <name>]
dsh-panel mcp update [--yes] [--profile <name>]
dsh-panel update [--yes] [--profile <name>] # 更新整个 dsh-skill-mcp-panel
MCP 配置写入目标 profile 的 cordis.patch.yml 受管块;网关在线时自动热加载。面板块由
# >>> dsh-skill-mcp-panel:mcp:begin / # <<< ...end 标记,请勿手改块内内容。
CLI 只扫描当前目录锚定的项目根与用户根;管理其他工作区的技能请加 --cwd <工作区路径>。
同名技能存在于多个作用域时,enable/disable/delete 需加 --global/--project/--workspace 指定操作哪一份。
页面和 dsh-panel skill 命令的每次操作,最终都是对磁盘上技能文件(SKILL.md)的改动,DSH 自带的文件监听器立刻发现变化——所以启用/停用、增删、迁移都热生效,无需重启网关。
~/.dsh/skills,工作区 = <工作区>/.dsh/skills,没有隐藏存储或联接点——卸载插件后技能仍是普通文件,照常被 DSH 发现SKILL.md 改名为 SKILL.md.disabled,启用 = 改回来源码为 TypeScript,位于 src/;编译产物 lib/*.js 随仓库一起提交(保证 Git 直装可用)。
改完源码后运行 pnpm build:tsc 编译到 lib/ 并剥离浏览器束的多余模块标记。
发布时 npm pack 会通过 prepack 自动重新构建,无需手工编译。
dsh plugin --profile web remove dsh-skill-mcp-panel
MIT
如果 dsh-skill-mcp-panel 对你的研究与测试有所帮助,欢迎请作者喝杯咖啡 ☕
给项目点个 Star ⭐ 同样是对开发者最大的鼓励!