DeepSeek Harness Hub
← 返回列表

winterhuan/dsh-skills-viewer

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

@winterchenhuan/dsh-skills-viewer

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/25 · 已提供中文文档

DeepSeek Harness Web 的只读技能设置页面插件

综合分
29
GitHub 分
29
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add winterhuan/dsh-skills-viewer
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-invariants
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

@winterchenhuan/dsh-skills-viewer

DeepSeek Harness Web 的自定义技能列表设置页。它在 Settings 面板注册一个“技能”页面,通过既有 skill.list wire RPC 获取当前普通 session 的用户可调用技能目录,并以只读列表呈现。

安装

使用 Harness 插件命令安装到 Web profile(dsh 与 pnpm 都需在 PATH 中,dsh plugin 会把参数转发给 pnpm):

dsh plugin --profile web add -w @winterchenhuan/dsh-skills-viewer
dsh web --dump-config     # 确认 skills-viewer 层已生效
dsh web                   # 启动 Web GUI

-w(--workspace-root)标志是必需的:Web profile 目录本身是一个 pnpm workspace 根(pnpm-workspace.yaml 内容为 packages: [.]),不加该标志时 pnpm 会以 ERR_PNPM_ADDING_TO_ROOT 拒绝 add。dsh plugin 会把参数原样转发给 pnpm,因此该标志会直接透传。

该包声明了 dsh.bundle,因此 dsh plugin add 会自动插入 skills-viewer row,不需要手动修改 profile 的 cordis.patch.yml。该包也声明了 dsh.client,Web host 会据此加载预构建的浏览器 bundle lib/client.js。

开发

本仓库独立可构建:所有 @deepseek-ai/* 类型从 npm 上的已发布包解析,typecheck、测试、构建都不需要 DeepSeek Harness 源码 checkout:

pnpm install
pnpm run typecheck
pnpm test
pnpm run build

把本地构建装进 profile:在任何装有 dsh 的机器上执行 dsh plugin --profile web add -w /path/to/dsh-skills-viewer——只有挂载这一步需要 Harness CLI(dsh plugin 把参数转发给 pnpm,-w 是必须的,因为 Web profile 目录本身是 pnpm workspace 根)。

移除方式:

dsh plugin --profile web remove @winterchenhuan/dsh-skills-viewer

组合

这是纯 UI 插件。node half 的 apply 为空;browser half 从 ./client 导出,经 dsh.client manifest 发现,并在 @deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-settings、@deepseek-ai/dsh-client-locale 和 @deepseek-ai/dsh-api-remotes 可用后注入。它注入 slots、locale 和 connection,再通过 ctx.slots.inject('settings.section', ...) 注册一个 settings.section 列表项(id skills,order 90),因此不依赖 declaration 顺序。

页面行为

页面从 useSessions 标准 prop 读取当前 session id 和当前 subagent address。当前导航指向普通 session 时,它调用 connection.api.skills.list({ sessionId }) 获取目录。技能发现按 session 作用域解析:composition、cwd 和 preset layer 都会影响可见技能,因此页面会在当前 session 变化时重新获取。没有当前 session,或当前导航指向 subagent address 时,页面显示空态且不调用 skill.list。如果选中的 session 尚未在 Host 侧连接,页面会短暂自动重试,随后显示重试按钮,而不是直接暴露原始 session-not-found 诊断。

每条技能行展示:

- name — kebab-case 标识符(等宽字体)
- 模型不可调用徽章 — 当 disable-model-invocation: true 时显示
- description — 路由描述
- whenToUse — 可选的额外路由说明(斜体)

列表按技能名升序排列。搜索框按 name、description 或 whenToUse 过滤(不区分大小写);当搜索收窄结果时计数行显示 M of N,无匹配时显示占位提示。

已知限制与后续工作

- 不预览技能正文 — 页面只列出摘要;加载技能正文仍需使用面向模型的 skill 工具。未来的内联预览可以调用新的 preview RPC。
- 没有刷新按钮或推送失效 — 页面会在 session 变化时重新获取,但不会手动刷新,也不会订阅 skills/change。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群