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

技能使用统计 HLhhh/dsh-skill-stats

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

查看每个已装技能的使用次数与占比,找出从未用过的技能

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

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

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

状态速览

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

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 11 条)
  • 发起网络请求
    client.js:668
    const response = await window.fetch(API + '?window=' + encodeURIComponent(windowKey), {
  • 写入本地文件
    lib/counter.js:65
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/counter.js:67
    writeFileSync(temp, JSON.stringify(value))
  • 写入本地文件
    lib/counter.js:68
    renameSync(temp, file)
  • 读取本地文件
    lib/counter.js:100
    parsed = JSON.parse(readFileSync(file, 'utf8'))
  • 读取本地文件
    lib/inventory.js:29
    manifest = JSON.parse(readFileSync(join(profileDir, 'package.json'), 'utf8'))
  • 读取本地文件
    lib/inventory.js:41
    entries = readdirSync(local, { withFileTypes: true })
  • 读取本地文件
    lib/inventory.js:63
    entries = readdirSync(dir, { withFileTypes: true })
  • 读取本地文件
    lib/inventory.js:87
    if (statSync(join(dir, 'SKILL.md')).isFile()) files.push(join(dir, 'SKILL.md'))
  • 读取本地文件
    lib/inventory.js:129
    text = readFileSync(file, 'utf8')
  • 读取本地文件
    lib/inventory.js:171
    entries = readdirSync(root.dir)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DeepSeek Harness 的技能使用统计面板:列出每个已安装技能的使用次数、会话覆盖率和占全部技能使用的比例。

README

由 DeepSeek 最新模型翻译生成
dsh-skill-stats 哪些技能真的在用,哪些装了之后就忘了。 这是 DeepSeek Harness 的左侧栏面板,列出每个已安装技能的使用次数、出现在多少个会话里,以及它在全部技能使用中的占比。 技能统计面板,浅色主题 截图使用示例数据;面板读取自己的计数文件,从不读会话日志。 为什么做这个 Harness 告诉你有哪些技能,却不告诉你你在用哪些技能。这带来两个问题: - 几个月前装好、从没碰过的技能,看起来和你最常用的技能一模一样。 - 你天天依赖的技能,拿不出任何能摆出来的证据。 这个面板用最小也最诚实的数据集回答这两个问题:技能真正被使用的两个时刻。 什么算一次使用 从插件启用的那一刻开始计数,全程不读任何会话日志。一次用户请求(一轮对话)对某个技能最多计一次使用,只要这一轮里出现下面任一信号: 1. 智能体加载了该技能(skill 工具); 2. 你以 /name 形式调用它; 3. 你在后续轮次里再次提到它,前提是本会话早前已经加载过它——code-review、code review、codereview 和 CodeReview 都算匹配。 其他情况一律不计:技能只是出现在提示词里、智能体读了 SKILL.md、或者你打开了面板。
展开完整文档(README 剩余 1 节)
dsh-skill-stats

哪些技能真的在用,哪些装了之后就忘了。 这是 DeepSeek Harness 的左侧栏面板,列出每个已安装技能的使用次数、出现在多少个会话里,以及它在全部技能使用中的占比。

技能统计面板,浅色主题

截图使用示例数据;面板读取自己的计数文件,从不读会话日志。

为什么做这个

Harness 告诉你有哪些技能,却不告诉你你在用哪些技能。这带来两个问题:

- 几个月前装好、从没碰过的技能,看起来和你最常用的技能一模一样。
- 你天天依赖的技能,拿不出任何能摆出来的证据。

这个面板用最小也最诚实的数据集回答这两个问题:技能真正被使用的两个时刻。

什么算一次使用

从插件启用的那一刻开始计数,全程不读任何会话日志。一次用户请求(一轮对话)对某个技能最多计一次使用,只要这一轮里出现下面任一信号:

1. 智能体加载了该技能(skill 工具);
2. 你以 /name 形式调用它;
3. 你在后续轮次里再次提到它,前提是本会话早前已经加载过它——code-review、code review、codereview 和 CodeReview 都算匹配。

其他情况一律不计:技能只是出现在提示词里、智能体读了 SKILL.md、或者你打开了面板。

| 列 | 含义 |
| Calls | 所选时间窗口内使用该技能的轮次数 |
| Sessions | 使用过该技能的不同会话数 |
| Share | 该技能的调用次数 ÷ 当前筛选下所有计入的调用次数 |
| Last used | 最近一次使用的时间 |
| Source dot | 技能来源:你自己、插件、Harness 自带、项目,或已卸载 |

功能

- 实时计数,不解析日志。 计数来自宿主提交的会话事件,按用户请求去重,防抖写入一个小 JSON 文件,重启后依然保留。打开面板只读一次文件。
- 列出每个已安装技能,包括只能以 /name 调用的技能(带一个小 manual 标签)和插件提供的技能。
- 来源标签如实标注。 技能服务里的 bundled 只表示「来自某个自带技能根目录」,所以来源按文件真实位置判定:插件自己的 skill/、skills/ 目录,标成该插件的包名。
- 时间窗口与筛选:全部时间、今天、7 天、30 天;按来源筛选;搜索;「只看从未使用」;可选显示已不再安装的技能。
- 仅本地运行。 计数文件保存在你自己的 DSH home 目录里。不发网络请求,不上报遥测。

安装

这个包是纯 JavaScript,不需要构建步骤。

从 GitHub 安装(npm 发布前推荐这种方式)

dsh plugin --profile web add github:HLhhh/dsh-skill-stats

如果你的配置档名字不是 web,换成你自己的。

从本地检出或 tarball 安装

npm pack # produces dsh-skill-stats-0.1.0.tgz
dsh plugin --profile web add ./dsh-skill-stats-0.1.0.tgz

从智能体会话安装

让插件管理器指向包目录:

plugin_manager install_bundle target=/absolute/path/to/dsh-skill-stats

安装完成后刷新一次页面,侧边栏图标会出现在其他面板图标旁边。

更新 / 移除

dsh plugin --profile web update github:HLhhh/dsh-skill-stats
dsh plugin --profile web remove dsh-skill-stats

用法

| 入口 | 作用 |
| 侧边栏柱状图图标 | 打开技能使用面板 |
| 面板头部 | 已安装 / 已使用 / 从未使用 / 总调用次数 / 会话数 |
| 筛选栏 | 时间范围、来源、搜索、只看从未使用、包含未安装 |
| 表头 | 点任意列排序,再点一次反向 |

除此之外不注册任何东西:没有工具,没有斜杠命令,也不改动其他面板。

兼容性

| 层面 | 状态 |
| DeepSeek Harness | 0.2.x(基于 0.2.1-rc.3 Desktop 和 Web 构建并测试) |
| Node | ^22.19.0 \|\| >=24.0.0(用到 zlib.zstdDecompressSync) |
| 平台 | 带技能功能的 Desktop 和 Web 配置档 |

技能清单怎么构建

ctx.skills.list() 只报告宿主插件自身作用域能看到的层,而桌面配置档把 ~/.dsh/skills 挂载在智能体预设的常驻组合里。所以面板合并四个来源,再按名字去重:

1. ctx.skills.list() —— 全局作用域能看到的全部;
2. 磁盘上的技能根目录 —— $DSH_HOME/skills、~/.agents/skills、$DSH_BUNDLED_SKILL_DIR,以及默认工作目录下的 .dsh/skills / .agents/skills,解析 SKILL.md 的 frontmatter(兼容 CRLF 和 BOM,尊重 disable-model-invocation);
3. 已安装插件包内附带的技能(skill/、skills/、assets/),正是这一步让插件的技能显示为 plugin:<package>,而不是笼统的 bundled;
4. 每个智能体预设的作用域,这样预设挂载的技能也能出现。

结果缓存一分钟,由 skills/change 事件失效。

已知限制

- 没有历史记录。 计数从插件首次启用时开始;在此之前的一律不算 —— 这是有意为之,因为要统计就得读旧的会话日志。
- 一次提及只对本次会话已经加载过的技能计数;插件重启后,这个集合会从新的加载重新构建。
- 名称匹配刻意放宽,所以顺带提到的技能在那一轮里仍计一次;短名称(pr、tdd)必须作为完整 token 出现。
- 删除 $DSH_HOME/storages/dsh-skill-stats/usage.json 会重置基线;之后重新加载插件,新文件才会在那一刻创建。
- 某个技能被使用,但任何清单来源都发现不了它,就会出现在「未安装」下(在筛选栏里切换)。
- 重名技能解析为生效的那一个;被遮蔽的副本不显示。
- 失败标记只认宿主为技能工具上报的 isError 结果。

开发

npm test # node --test test/ — 27 tests, no dependencies
npm pack --dry-run

宿主那一半是注入了依赖的模块,所以测试跑在临时目录和假时钟上;不会碰你真实的 ~/.dsh。

仓库结构:

index.js adapter: wires host events and /dsh-skill-stats/api
lib/counter.js counting: record / snapshot / flush
lib/inventory.js installed skills: list / invalidate
lib/payload.js pure row shaping for the API response
lib/window.js day and window maths
lib/skills-md.js frontmatter parsing + origin classification (pure)
lib/diagnostics.js bounded record of swallowed failures
lib/usage-tracker.js turn-scoped counting over session events
lib/mentions.js forgiving skill-name matching (pure)
client.js browser half: sidebar icon + panel (plain JS, no build)
cordis.patch.yml one Loader row
locale/ plugin-manager title/description (en, zh)
icon.svg plugin and sidebar icon
docs/ screenshots
test/*.test.mjs 27 dependency-free tests (npm test)

改动怎么落地

这个仓库有一位维护者和一个 AI 智能体在协作。改代码之前,智能体要先问走哪条路——它从不自己决定:

| 路径 | 何时 |
| Pull request | 行为变更、版本号提升、UI 变更、任何涉及计数的改动——以及任何时候想要评审 |
| 直接推送到 main | 仅当维护者明确要求 |

main 故意不设分支保护:每次改动由维护者选择路径,而不是靠平台强制。Pull request 使用 ./.github/pull_request_template.md。

许可证

MIT——见 LICENSE。
预览分享卡片长什么样 ↓HLhhh/dsh-skill-stats
分享 · DeepSeek Harness Hub
HLhhh/dsh-skill-stats

查看每个已装技能的使用次数与占比,找出从未用过的技能

这是你的仓库?认领条目

回到顶部