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

技能工作台 Stijnus/dsh-skills-studio

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

在设置页查看、编辑并校验智能体技能

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Stijnus/dsh-skills-studio
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 38 处,展示前 27 条)
  • 发起网络请求
    client.js:464
    return fetch(url, opts).then(readJsonResponse)
  • 读取本地文件
    src/api.js:400
    content = await readFile(entry.path, 'utf8')
  • 读取本地文件
    src/mutate.js:103
    info = await lstat(path)
  • 读取本地文件
    src/mutate.js:133
    info = await lstat(current)
  • 写入本地文件
    src/mutate.js:157
    await mkdir(root.path, { recursive: true })
  • 读取本地文件
    src/mutate.js:180
    info = await lstat(current)
  • 写入本地文件
    src/mutate.js:184
    await mkdir(current)
  • 读取本地文件
    src/mutate.js:191
    info = await lstat(current)
  • 写入本地文件
    src/mutate.js:215
    await writeFile(tempPath, content, { mode: 0o644, flag: 'wx' })
  • 写入本地文件
    src/mutate.js:216
    await rename(tempPath, targetPath)
  • 写入本地文件
    src/mutate.js:217
    await chmod(targetPath, 0o644)
  • 删除本地文件
    src/mutate.js:219
    await unlink(tempPath).catch(() => {})
  • 读取本地文件
    src/mutate.js:286
    current = await readFile(targetPath)
  • 读取本地文件
    src/mutate.js:315
    dirents = await readdir(dir, { withFileTypes: true })
  • 删除本地文件递归
    src/mutate.js:383
    await rm(bundleDir, { recursive: true, force: false })
  • 删除本地文件
    src/mutate.js:390
    await unlink(targetPath)
  • 写入本地文件
    src/mutate.js:447
    await mkdir(destinationPath, { recursive: true })
  • 删除本地文件递归
    src/mutate.js:551
    await rm(tempDir, { recursive: true, force: true }).catch(() => {})
  • 读取本地文件
    src/roots.js:77
    return (await stat(path)).isDirectory()
  • 读取本地文件
    src/roots.js:96
    await stat(join(current, '.git'))
  • 读取本地文件
    src/scan.js:74
    for await (const chunk of createReadStream(path)) hash.update(chunk)
  • 读取本地文件
    src/scan.js:105
    dirents = await readdir(root.path, { withFileTypes: true, encoding: 'utf8' })
  • 读取本地文件
    src/scan.js:159
    target = await stat(entryPath)
  • 读取本地文件
    src/scan.js:173
    return (await stat(path)).isFile()
  • 读取本地文件
    src/scan.js:192
    fileStat = await stat(filePath)
  • 读取本地文件
    src/scan.js:208
    buffer = await readFile(filePath)
  • 读取本地文件
    src/validate.js:425
    await lstat(path)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

技能设置页和一套带校验的技能注册表 API,用于 DeepSeek Harness:区分已安装和可用技能,支持增删改、从技能库安装,保存前拦截冲突。

README

由 DeepSeek 最新模型翻译生成
dsh-skills-studio 给 DeepSeek Harness 设置加一个 Skills 页面(原名 dsh-skills-manager,GitHub 会自动重定向):查看每个已安装的智能体技能,查看注册表实际提供给智能体的内容,在磁盘上新增或编辑技能,并在冲突保存发生之前拦住它。 Skills 设置页面 新增了什么 - Installed —— 本地 DSH 技能根目录里发现的每个技能,按根目录分组:项目 .dsh/skills / .agents/skills、自定义目录、~/.dsh/skills、~/.agents/skills。 每行显示名称、描述、bundle 还是 flat、调用标志、rank 和 shadowing;可写根目录(默认 ~/.agents/skills)里的条目带 Edit 和 Delete。 - Available —— 来自已配置技能包库的技能(Install / Update / Installed),外加插件 bundle 贡献给实时注册表的只读技能(「From plugins」)。
展开完整文档(README 剩余 1 节)
dsh-skills-studio

给 DeepSeek Harness 设置加一个 Skills 页面(原名 dsh-skills-manager,GitHub 会自动重定向):查看每个已安装的智能体技能,查看注册表实际提供给智能体的内容,在磁盘上新增或编辑技能,并在冲突保存发生之前拦住它。

Skills 设置页面

新增了什么

- Installed —— 本地 DSH 技能根目录里发现的每个技能,按根目录分组:项目 .dsh/skills / .agents/skills、自定义目录、~/.dsh/skills、~/.agents/skills。
每行显示名称、描述、bundle 还是 flat、调用标志、rank 和 shadowing;可写根目录(默认 ~/.agents/skills)里的条目带 Edit 和 Delete。
- Available —— 来自已配置技能包库的技能(Install / Update / Installed),外加插件 bundle 贡献给实时注册表的只读技能(「From plugins」)。
- Add / Edit —— 一个真正的表单(名称、描述、when-to-use、调用标志、正文),原子写入 <root>/<name>/SKILL.md 或 <root>/<name>.md,带乐观并发(expectedSha256),外部编辑永远不会被悄悄覆盖。
- 保存前查冲突 —— 跨根目录重名、flat 与 bundle 别名碰撞、描述触发词重叠,都在写入之前检测;阻断性冲突返回 409,界面会说明原因。「Force save」只在名称 shadowing 时提供,字段非法或文件过期时绝不提供。
- 实时证明智能体能看到 —— 每次改动后,宿主向 ctx.skills 询问注册表提供的内容,并报告三种状态:visible: true(「Saved · agents can see it now」)、轮询超时未命中时的 visible: false,或宿主作用域注册表视图完全看不到按会话的文件系统服务商时的 checked: false(真实桌面组合就是这样)。最后一种情况下,界面会说明宿主无法从这里验证会话目录,而不是谎报一个假阴性;随附的文件系统服务商会监视写入的根目录,并在智能体下一步时把变更呈现给它们。

不调用模型,不联网,不执行 shell。文件写入限制在配置的可写根目录内,带路径/符号链接包含检查,技能上限 256 KiB、请求上限 1 MiB。

截图

所有截图都来自一个隔离的临时 DSH 0.2.1-rc.5 实例,其中复制了 49 条用户技能根目录以及 deepseek-stack 库;深色框架里唯一的差别是应用主题。图片文件位于 verify/screenshots/。

| Light | Dark |
| 已安装技能 — 浅色主题 | 已安装技能 — 深色主题 |

| 「可用」标签页(技能库 +「来自插件」) | 新增 / 编辑编辑器,带实时校验 |
| 「可用」标签页:技能库与插件提供的技能 | 新增技能表单,带实时校验 |

| 保存前拦截重名 | 宿主作用域目录说明(桌面拓扑) |
| 编辑器显示阻断性重名冲突;保存按钮已禁用 | 「可用」标签页,含插件行与宿主作用域说明 |

更多验证截图(已保存状态、删除确认、深色「可用」标签页)在同一目录下;原始证据与测试装置见 SKILLS-VERIFICATION.md。

安装

从 npm(registry)安装

latest release
dsh plugin --profile <profile> add dsh-skills-studio

pin a version
dsh plugin --profile <profile> add dsh-skills-studio@0.1.3

项目名叫 dsh-skills-studio,但它的 npm 包名是 dsh-skills-studio:不带作用域的 dsh-skills-studio 名字属于一个无关的第三方插件,原先的 @stijnus/... 作用域已停用。GitHub 安装与本地链接安装见下文,仍然可用。

本地开发(web 配置档,隔离环境)

git clone https://github.com/Stijnus/dsh-skills-studio.git
cd dsh-skills-studio
DSH_HOME=/tmp/dsh-skills-dev dsh plugin --profile web add link:$PWD
DSH_HOME=/tmp/dsh-skills-dev dsh --profile web --port 53999 --no-open

也可以直接从本仓库安装到已有配置档:

latest main
dsh plugin --profile <profile> add github:Stijnus/dsh-skills-studio

pin a released version (recommended for stable installs) — see the Releases page
dsh plugin --profile <profile> add github:Stijnus/dsh-skills-studio#v0.1.3

发布版本打 vX.Y.Z 标签(Releases)。升级时用同样方式安装更新的标签;重载配置档即可生效(启用 HMR 时会自动拾取)。

npm 包名说明: 包发布为 dsh-skills-studio,因为 npm 上朴素的
dsh-skills-studio 名字属于一个无关的第三方插件。上面的 GitHub / 链接安装方式是开发检出时的备选。

隔离运行的覆盖配置(agents 主目录、可写根目录与技能库):

skills-studio.overlay.yml — pass with --patch
- id: skills-studio
config:
agentsHome: /tmp/dsh-skills-dev/agents
writableRoot: /tmp/dsh-skills-dev/managed-skills
libraries:
- id: deepseek-stack
label: deepseek-stack
path: /absolute/path/to/ds-stack/skills
- id: deepseek-stack-aliases
label: deepseek-stack aliases
path: /absolute/path/to/ds-stack/aliases

桌面应用

打开 Settings → Plugins → install bundle,把该目录作为目标(Desktop 外壳会执行包操作并重组应用)。安装完成后,Skills 区块会立即出现在 Settings 中;只有外壳提示 restart-required 时才需要重启。

本机当前的实机安装改用人工维护的配置档路径:一个 node_modules/dsh-skills-studio 符号链接,再加一行配置档补丁(见 SKILLS-VERIFICATION.md §4)。DSH 的配置档 HMR 会把这两部分都加载进运行中的应用,无需重启。持久性提醒:配置档的 package.json 没有声明这个包,所以之后执行插件管理器 / pnpm 操作时可能清掉符号链接;这类操作之后,重新跑一遍桌面插件安装(或补上 link: 依赖)。配置档补丁会保留那一行,因此只要恢复符号链接再重启,该区块就会回来。

配置

所有字段都可选。配置在应用时校验;值格式不对会直接抛错,不会静默回退默认值。

| 字段 | 默认值 | 含义 |
| agentsHome | $DSH_AGENTS_HOME 或 ~/.agents | 用户智能体配置根目录;默认以 skills/ 为可写根 |
| dshHome | $DSH_HOME 或 ~/.dsh | Harness 配置根目录;其中的 skills/ 以只读方式扫描 |
| writableRoot | <agentsHome>/skills | 本插件唯一可写入的根 |
| includeUserDshRoot | true | 扫描 <dshHome>/skills |
| includeProjectRoots | true | API 调用传入 cwd 时扫描项目根 |
| customSkillDirs | [] | 额外的只读技能根(rank 300) |
| libraries | [] | 可安装的技能包:{ id?, label?, path } |
| maxSkillBytes | 262144 | 指令文件 / 正文大小上限 |

Deepseek-stack 说明:把 libraries 指向 ds-stack/skills 和 ds-stack/aliases,29 个捆绑技能和 6 个手势别名就会出现在 Available 中,Installed/Update 状态按可写根计算。由于别名是扁平文件,请把它们作为单独的 library 条目安装。

HTTP API(宿主侧,同源)

前缀 /skills-studio/api,JSON,cache-control: no-store。

| 方法 + 路径 | 用途 |
| GET /state?cwd= | 根、已安装技能、带 installed/update/available 状态的 libraries、实时注册表目录、冲突、统计 |
| GET /skill?rootId=&relPath= | 单个技能及其完整指令文本 |
| POST /validate | 对创建/更新草稿做字段试运行校验 + 冲突/警告 |
| POST /save | 创建/更新(原子写入、乐观 sha、注册表可见性探测) |
| POST /delete | 从可写根删除条目(必须提供预期 sha) |
| POST /install | 把 library 技能复制进可写根(更新需 overwrite + 预期 sha) |
| GET /health | 存活检查 + 解析后的根 |

完整的请求/响应契约、冲突规则和写入格式见 CONTRACT.md。

验证

- 宿主逻辑:node --test → 105 个测试,无依赖,只用临时目录。
- 独立端到端验证:对真实临时 DSH 实例跑 61/61 条宿主 API 断言,28/28 条真实浏览器 GUI 断言(新增/编辑/删除/安装、重复项在保存前拦截、无障碍、浅色+深色),桌面端交付实测生效(HMR,无需重启),并重新审计 49 条已安装技能不变式:SKILLS-VERIFICATION.md。
- 已安装技能根目录与 deepseek-stack 包的基线审计:SKILLS-AUDIT.md。

已知限制

- 每个根目录只向下发现一层,与随附的文件系统服务商一致(<root>/<name>/SKILL.md、<root>/<name>.md);嵌套的技能树不会被发现。
- 项目根目录需要 cwd:客户端可选的 sessions 服务暴露会话工作区时,页面会转发一个;否则只显示它能自行解析的用户范围根目录。根目录发现本身只向下查一层,与随附服务商一致。
- 注册表可见性探测报告的是宿主范围 ctx.skills 视图提供的内容。在真实桌面端组合中,本地文件系统服务商位于每会话智能体预设层,所以探测会如实返回 checked:false,界面提示无法从这里验证会话目录;服务商的监听器仍会在智能体下一步时把变更呈现出来。如果某个服务商从不监听自己的根目录,就需要它自己实现失效处理。
- 插件绝不编辑不属于自己的文件:删除只限于可写根目录下扫描到的条目,并且要求 sha256 与界面读取到的完全一致。
预览分享卡片长什么样 ↓Stijnus/dsh-skills-studio
分享 · DeepSeek Harness Hub
Stijnus/dsh-skills-studio

在设置页查看、编辑并校验智能体技能

这是你的仓库?认领条目

回到顶部