🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

技能管理器 daha1216/dsh-skills-manager

DeepSeek Harness
daha121616 天前有提交已提供中文文档扫描:含敏感能力

在设置页集中管理本地技能并切换调用策略

35/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add daha1216/dsh-skills-manager
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@local/skills-manager(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 00:30:48

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 36 处,展示前 17 条)
  • 读取本地文件
    index.js:144
    if (!existsSync(root.path)) continue;
  • 读取本地文件
    index.js:574
    if (kind === 'bundle' && !existsSync(fileAbs)) {
  • 读取本地文件
    index.js:580
    try { stat = statSync(fileAbs); } catch (error) {
  • 读取本地文件
    index.js:590
    try { text = readFileSync(fileAbs, 'utf8'); } catch (error) {
  • 读取本地文件
    index.js:678
    if (!existsSync(root)) return out;
  • 读取本地文件
    index.js:679
    for (const dirent of readdirSync(root, { withFileTypes: true })) {
  • 写入本地文件
    index.js:796
    mkdirSync(dirname(target), { recursive: true });
  • 写入本地文件
    index.js:800
    mkdirSync(backups, { recursive: true });
  • 写入本地文件
    index.js:806
    copyFileSync(target, join(backups, `${stamp}-${suffix}-${rel}`));
  • 写入本地文件
    index.js:811
    writeFileSync(tmp, content, 'utf8');
  • 写入本地文件
    index.js:812
    renameSync(tmp, target);
  • 删除本地文件
    index.js:816
    try { unlinkSync(tmp); } catch { }
  • 删除本地文件递归
    index.js:831
    try { rmSync(join(dir, entry.name), { recursive: true, force: true }); } catch { }
  • 写入本地文件
    index.js:838
    mkdirSync(dir, { recursive: true });
  • 执行外部命令来自配置/变量
    index.js:986
    child = spawn(command, args, { detached: true, stdio: 'ignore', windowsHide: false });
  • 发起网络请求
    client.js:231
    const response = await fetch(API + path, {
  • 写入剪贴板
    client.js:269
    return navigator.clipboard.writeText(text).catch(() => legacyCopy(text));
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 技能管理插件:设置页列出/查看/新建/编辑/删除本地技能,切换模型调用与用户调用策略,支持一键在文件管理器中打开技能目录

README

由 DeepSeek 最新模型翻译生成
🧩 dsh-skills-manager 中文 · English DeepSeek Harness(DSH)技能管理插件:在设置页集中列出、查看、新建、编辑、删除本地技能,切换模型调用与用户调用策略,并支持一键在文件管理器中打开技能目录。 ✨ 功能 - 技能列表 — 扫描技能目录,显示有效性、描述、whenToUse、调用策略、文件大小与更新时间;搜索框可按名称 / 描述 / 触发场景过滤。 - 查看与编辑 — 展开卡片查看正文;编辑器支持 Esc 取消、Ctrl/Cmd + S 保存,并对未保存修改给出确认。 - 新建 / 重命名 / 删除 — 名称强制 kebab-case;重命名冲突会拒绝;删除是移入 <root>/.trash/,不硬删。 - 调用策略开关 — 直接切换 disable-model-invocation 与 user-invocable,写回时保留未知 frontmatter 键、注释与块标量原文。 - 一键打开目录 — 工具栏按钮打开技能根目录;每张技能卡片的「打开目录」打开该技能的 bundle 目录。 - 中英双语 — 跟随 DSH 界面语言(zh / en),通过 ctx.locale 注册。
展开完整文档(README 剩余 1 节)
🧩 dsh-skills-manager

中文 · English

DeepSeek Harness(DSH)技能管理插件:在设置页集中列出、查看、新建、编辑、删除本地技能,切换模型调用与用户调用策略,并支持一键在文件管理器中打开技能目录。

✨ 功能

- 技能列表 — 扫描技能目录,显示有效性、描述、whenToUse、调用策略、文件大小与更新时间;搜索框可按名称 / 描述 / 触发场景过滤。
- 查看与编辑 — 展开卡片查看正文;编辑器支持 Esc 取消、Ctrl/Cmd + S 保存,并对未保存修改给出确认。
- 新建 / 重命名 / 删除 — 名称强制 kebab-case;重命名冲突会拒绝;删除是移入 <root>/.trash/,不硬删。
- 调用策略开关 — 直接切换 disable-model-invocation 与 user-invocable,写回时保留未知 frontmatter 键、注释与块标量原文。
- 一键打开目录 — 工具栏按钮打开技能根目录;每张技能卡片的「打开目录」打开该技能的 bundle 目录。
- 中英双语 — 跟随 DSH 界面语言(zh / en),通过 ctx.locale 注册。

📦 安装与更新

dsh plugin --profile web add github:daha1216/dsh-skills-manager

开发态(本机 checkout)可直接链接:

dsh plugin --profile desktop add link:D:/dsh work/skills-manager

重新执行同一命令即可更新到最新提交。升级后需重启 DSH 让宿主生效,并刷新页面加载新版客户端。

🚀 使用

打开 设置 → 技能。页面会列出技能根目录下的全部技能;点击卡片展开正文,右侧开关切换调用策略,工具栏可刷新、搜索、新建,或直接打开技能目录。

📁 技能目录与格式

技能根目录默认为 ~/.dsh/skills;设置 $DSH_HOME 时使用 $DSH_HOME/skills。

支持两种布局:

- <name>/SKILL.md(bundle,可带资源文件)
- <name>.md(flat)

SKILL.md 以 YAML frontmatter 开头:

name: my-skill
description: 这个技能做什么 whenToUse: 什么时候触发(可选) disable-model-invocation: false user-invocable: true

正文

符号链接 / junction 会被跟随(与官方 provider 一致);. 开头的条目(.backups、.trash、.system)会被忽略。

🧪 开发与测试

node --test "test/*.test.mjs"

共 21 项测试,覆盖 frontmatter 往返(块标量、注释、未知键、CRLF、空行)、API 信任围栏、请求体上限、重命名冲突、乐观并发冲突、删除进 .trash、符号链接发现,以及打开目录的平台路径编码。

🔌 HTTP API

宿主半(index.js)在插件 Web 服务器上暴露一组 JSON API:

| 方法 | 路径 | 说明 |
| GET | /skills-manager/api | 列出技能(有效性、描述、策略、mtime) |
| GET | /skills-manager/api/get?name=… | 读取单个技能正文,供编辑 |
| POST | /skills-manager/api/save | 新建 / 重命名 / 编辑;保留未知 frontmatter 键;支持 expectedMtimeMs 乐观并发 |
| POST | /skills-manager/api/policy | 切换 disable-model-invocation / user-invocable |
| POST | /skills-manager/api/open | 打开技能根目录;传 {"name":"…"} 打开单个技能目录 |
| POST | /skills-manager/api/delete | 把技能(bundle 目录或 flat 文件)移入 <root>/.trash/ |

客户端半(client.js)注册一个 settings.section 条目,交互对齐内置技能工具卡:技能行、可展开的说明卡、调用策略开关,以及带客户端 + 服务端校验(kebab-case、必填描述)的新建 / 编辑表单,包含未保存守卫、忙碌态和 zh / en 字典。

🔒 安全说明

- 请求必须通过与 DSH 自带 /api 相同的信任围栏:loopback 或受信主机、同源 Origin、非 sec-fetch-site: cross-site,写请求要求 content-type: application/json。额外主机名可通过 DSH_SKILLS_MANAGER_TRUSTED_HOSTS=a,b 放行。
- 写入是原子的(临时文件 + rename);每次写前把旧文件复制到 <root>/.backups/<timestamp>-<path>。
- 未知 frontmatter 键、注释与块标量值在保存时原样保留;旧版键(disableModelInvocation、modelInvocable、userInvocable)会作为问题报告,而不是被静默改写。
- 打开目录是 POST-only 动作,同样在信任围栏之后;目标从扫描结果解析并限制在技能根目录内,宿主以 argv 数组直接 spawn 平台文件管理器(explorer.exe / open / xdg-open),不经过 shell 拼接。

📄 License

MIT
预览分享卡片长什么样 ↓daha1216/dsh-skills-manager
分享 · DeepSeek Harness Hub
daha1216/dsh-skills-manager

在设置页集中管理本地技能并切换调用策略

这是你的仓库?认领条目

回到顶部