Skip to content

dsh-skills-manager-plus

Verified

dsh-skills-manager-plus · v0.1.1 · MIT · Web UI

Skills & commands manager settings page for DeepSeek Harness: view, enable/disable, edit, delete and add skills, plus save reusable prompts as /commands — all from the browser.

Install

dsh plugin add dsh-skills-manager-plus

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

dsh-skills-manager-plus

English | 中文 | 更新日志

技能与命令管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「技能与命令」页面, 可直接查看、启用/停用、编辑、删除与添加技能,还能把常用的提示词保存为命令, 在输入框输入 / 即可快速调用。

截图

技能列表 添加技能
技能列表 添加技能
编辑技能 命令管理 编辑命令
编辑技能 命令管理 编辑命令

功能

能力 说明
列表 展示技能目录中的全部技能,按「全局 / 项目」作用域切换
展开预览 点开一行查看该技能正文的 Markdown 预览
启用 / 停用 改写技能 frontmatter(模型可调用 / 用户可调用),目录监视器约一秒内热生效,无需重启
编辑 名称、描述、何时使用、两个调用开关与正文,改名即重命名目录
删除 移除技能的 SKILL.md(目录形式连同资源目录一起删除)
添加 创建一个新的 kebab-case 技能,保存到全局或某个项目
搜索 / 分页 按名称或描述搜索,每页 10 条
命令 把常用提示词保存为 /命令,选中后即以用户消息发送给模型
导入设置 一键启用 / 停用 .agents 技能目录(用户级与项目级),恢复时只还原本页停用的技能
多语言 中文 / English,跟随界面语言,页面右上角可随时切换并记住选择

安装说明

版本要求: DeepSeek Harness(DSH)≥ 0.1.5-rc.1(在 0.1.6-alpha.1 上开发并测试)。DSH 自身依赖 Node.js ≥ 24.2.0 与 Git ≥ 2.31.0。

插件市场一键安装

已安装 https://github.com/dsh-market/dsh-market 的话,打开 设置 → 插件市场, 搜索 dsh-skills-manager-plus,点一下安装即可。

命令安装

# 本地目录(以 link 方式安装,改动即时生效,适合开发调试)
dsh plugin --profile web add <本仓库目录>

# 之后重启 dsh(或等待 profile 热重载),在「设置 → 技能与命令」即可看到页面

验证

打开 dsh web,进入 设置 → 技能与命令(侧边栏火花图标的那一项)。 页面没有出现时的排查顺序:

  1. 换最新版 Chrome/Edge —— 部分插件的 bundle 在旧内核会加载失败;
  2. 确认装进了正在使用的 profile(dsh plugin --profile web ls 查看清单);
  3. 浏览器控制台有报错时,附上报错内容提交 issue。

更新与卸载

dsh plugin --profile web ls                          # 查看已装插件
dsh plugin --profile web add <本仓库目录>             # 更新(重新 add 即覆盖)
dsh plugin --profile web remove dsh-skills-manager-plus # 卸载

配置写在哪里

技能的「唯一真相」是技能文件系统本身 —— 与 DSH 的技能提供者扫描的根目录完全一致:

~/.dsh/skills                           用户级技能
~/.agents/skills                        用户级 .agents 技能
<项目>/.dsh/skills                      项目级技能
<项目>/.agents/skills                   项目级 .agents 技能

每个技能是一个 <name>/SKILL.md(或扁平 <name>.md),带 YAML frontmatter。 启用 / 停用开关就是改写 disable-model-invocationuser-invocable 两个键, 其它字段(包括未建模的嵌套字段)在改写时逐字节保留。

命令保存在:

$DSH_HOME/commands/<name>.md

每个命令一个 Markdown 文件,frontmatter 带 namedescription 与可选的 argument-hint,正文即保存的提示词。文件会被监视,增删改后约一秒内重新注册到 DSH 的命令注册表,无需重启。

插件自身仅持有一个状态文件($DSH_HOME/skills-manager-plus.json),记录导入开关、 被停用的命令名,以及哪些技能是本页批量停用的 —— 切换回「启用 .agents 技能目录」时 只会恢复这些技能,手工停用的不受影响。

安全约定

  • 只响应本机请求。 API 挂在同一个 loopback web server 上,非 loopback 来源直接 403。
  • 写入被限定在本插件管理的目录内。 提交的路径越过技能根目录会被拒绝。
  • 状态文件原子改写,加载时校验,损坏则重置为默认值。
  • 命令以用户消息下发。 调用 /命令 时,提示词通过 agent.followup 作为普通 用户消息发送,权限与日志行为与用户本人输入一致。

开发

node test/run.mjs          # 全部测试(31 项,共三个套件)
套件 覆盖范围
test/store.test.mjs skills.jscommands.js 的纯逻辑:frontmatter 解析 / 改写、技能与命令的增删改、校验、根目录解析
test/host.test.mjs 宿主端全部 HTTP 路由,用假的 Cordis 上下文驱动真实 apply(),覆盖 loopback 限制、.agents 开关
test/client.test.mjs 浏览器 bundle 能否被 shell 加载并注册 settings.section 设置页面

测试不依赖任何测试框架,只用 Node 内置的 node:test

结构

文件 作用
lib/index.js 宿主端:loopback HTTP API、状态文件、.agents 导入开关
lib/skills.js 技能文件模型:frontmatter 解析 / 改写、技能增删改查、根目录解析
lib/commands.js 命令存储:命令文件读写、文件监视、注册到 DSH 命令注册表
lib/client.js 浏览器端:设置页面 UI(手写 lazy-CJS bundle,无构建步骤)
cordis.patch.yml bundle 补丁,把本插件插入 profile 的层栈

License

MIT