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

技能仓库管理 hello-heyongping/dsh-helloai-skills

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

扫描本机各工具技能并注册为可调用技能

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

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

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

状态速览

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

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

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

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

展开查看检查明细 ↓

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:35:58

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

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

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 42 处,展示前 22 条)
  • 读取本地文件
    lib/index.js:55
    for (const entry of await readdir(homedir(), { withFileTypes: true })) {
  • 读取本地文件
    lib/index.js:64
    for (const vendor of await readdir(cache, { withFileTypes: true })) {
  • 读取本地文件
    lib/index.js:66
    for (const plugin of await readdir(join(cache, vendor.name), { withFileTypes: true })) {
  • 读取本地文件
    lib/index.js:82
    const entries = await readdir(path, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:94
    return Boolean(await stat(path).catch(() => null));
  • 读取本地文件
    lib/index.js:107
    return JSON.parse(await readFile(path, "utf8"));
  • 写入本地文件
    lib/index.js:113
    await mkdir(dirname(path), { recursive: true });
  • 写入本地文件
    lib/index.js:114
    await writeFile(path, JSON.stringify(value, null, 2), "utf8");
  • 读取密钥环境变量
    lib/index.js:388
    return process.env.DSH_HELLOAI_GITHUB_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN || "";
  • 发起网络请求
    lib/index.js:400
    const response = await fetch(url, { redirect: "follow", signal: AbortSignal.timeout(timeout), headers });
  • 写入本地文件
    lib/index.js:682
    await mkdir(root.path, { recursive: true });
  • 写入本地文件
    lib/index.js:684
    await mkdir(stage, { recursive: true });
  • 写入本地文件
    lib/index.js:699
    await mkdir(dirname(destination), { recursive: true });
  • 写入本地文件
    lib/index.js:700
    await writeFile(destination, buffer);
  • 删除本地文件递归
    lib/index.js:707
    if (existing) await rm(target, { recursive: true, force: true });
  • 删除本地文件递归
    lib/index.js:711
    await rm(stage, { recursive: true, force: true }).catch(() => void 0);
  • 删除本地文件递归
    lib/index.js:853
    await rm(stage, { recursive: true, force: true }).catch(() => void 0);
  • 删除本地文件递归
    lib/index.js:952
    await rm(guard.target, { recursive: true, force: true });
  • 删除本地文件
    lib/index.js:1010
    await rm(catalogCacheFile(String(input.id)), { force: true }).catch(() => void 0);
  • 删除本地文件
    lib/index.js:1054
    await rm(catalogCacheFile(String(current.id)), { force: true }).catch(() => void 0);
  • 请求外部主机github.com
    lib/client.js:132
    `,j={refresh:"\u21BB",add:"+"},xe={skills:["M665.6 934.4a38.4 38.4 0 0 1 5.222 76.442l-5.222 0.358H358.4a38.4 38.4 0 0 1-5.222-76.442l5.222-0.358h307.
  • 发起网络请求
    lib/client.js:132
    `,j={refresh:"\u21BB",add:"+"},xe={skills:["M665.6 934.4a38.4 38.4 0 0 1 5.222 76.442l-5.222 0.358H358.4a38.4 38.4 0 0 1-5.222-76.442l5.222-0.358h307.
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:github.com

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-skill
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 扫描本机Agent技能
  • 注册为可调用技能
  • GitHub仓库一键安装

DeepSeek Harness 技能与仓库管理:扫描本机所有 Agent 技能并注册成 DSH 可调用技能,支持从 GitHub 仓库一键安装

README

由 DeepSeek 最新模型翻译生成
HelloAI Skills · DeepSeek Harness 技能与仓库管理 把散落在十几个 AI 工具里的技能,收进一个能管的面板。 扫描本机所有 Agent 的技能目录,列出、搜索、备注、启停、删除;把列表里的每一个技能都注册成 DSH 可调用技能,在对话里直接 /名称 调用;还能登记 GitHub 仓库,从仓库里直接挑技能安装。 技能管理面板 设置 → 技能管理:按来源分组(DSH / CODEX / Claude / Trae…),每条都能注、删、启停;下方是登记过的仓库。 它能做什么 - 一处看全:自动扫描 DSH、CODEX、Claude、Gemini、OpenCode、Cursor、Copilot、Windsurf、Trae、Qoder、OpenClaw、Roo、CodeBuddy 等工具的技能目录,家目录下任何 <工具>/skills 也会被自动发现。 - 变成 DSH 技能:不只是在面板里列出来——每个技能都会被注册进 DSH,对话里 /gotoweb、/dengmi 这样直接调用,模型目录里也能看到。 - 不依赖宿主加载器:DSH 自带的 skill-filesystem 在某些 profile 里是停用的($DSH_HOME/skills 于是谁都读不到)。本插件自己注册这些目录,不靠它。
展开完整文档(README 剩余 1 节)
HelloAI Skills · DeepSeek Harness 技能与仓库管理

把散落在十几个 AI 工具里的技能,收进一个能管的面板。 扫描本机所有 Agent 的技能目录,列出、搜索、备注、启停、删除;把列表里的每一个技能都注册成 DSH 可调用技能,在对话里直接 /名称 调用;还能登记 GitHub 仓库,从仓库里直接挑技能安装。

技能管理面板

设置 → 技能管理:按来源分组(DSH / CODEX / Claude / Trae…),每条都能注、删、启停;下方是登记过的仓库。

它能做什么

- 一处看全:自动扫描 DSH、CODEX、Claude、Gemini、OpenCode、Cursor、Copilot、Windsurf、Trae、Qoder、OpenClaw、Roo、CodeBuddy 等工具的技能目录,家目录下任何 <工具>/skills 也会被自动发现。
- 变成 DSH 技能:不只是在面板里列出来——每个技能都会被注册进 DSH,对话里 /gotoweb、/dengmi 这样直接调用,模型目录里也能看到。
- 不依赖宿主加载器:DSH 自带的 skill-filesystem 在某些 profile 里是停用的($DSH_HOME/skills 于是谁都读不到)。本插件自己注册这些目录,不靠它。
- 仓库 → 技能 → 安装:登记一个 GitHub 仓库,卡片里直接列出里面的技能,点「安装」就落到 $DSH_HOME/skills/。
- 省配额:列表默认读本地缓存,只有点「刷新」才回源 GitHub,用的是不消耗 API 配额的 tree-list + raw 路径。断网时旧清单照样能看能装。
- 三种导入方式:填路径(由 DSH 进程直接读盘)/ 浏览文件夹(适合 DSH 跑在别的机器或容器里)/ 选 ZIP(宿主自己解压,支持 GBK 文件名)。
- 搜索、备注、启停、删除:外部目录的技能只能停用,不会被删;只有 DSH 自己的技能目录支持删除。

点击看「导入本地技能」和「常用仓库」界面

导入本地技能常用仓库快捷填入

安装

dsh plugin --profile desktop add github:hello-heyongping/dsh-helloai-skills

或者 clone 到本地再装(想改代码就用这个):

git clone https://github.com/hello-heyongping/dsh-helloai-skills.git
cd dsh-helloai-skills
dsh plugin --profile desktop add .

把 desktop 换成你自己的 profile 名。仓库里已经带上构建好的 lib/,不需要先 npm install。

装完在 设置 侧栏会出现「技能管理」。数据存在 $DSH_HOME/helloai-skills/,接口前缀 /api/dsh-helloai-skills。

快速上手

1. 打开 设置 → 技能管理,插件已经在扫描了;
2. 「技能」标签页里按来源分组,右上角搜索框可以全局搜技能名和说明;
3. 想从网上加技能 → 切到「仓库」标签页 → 添加仓库 → 填 https://github.com/owner/repo;
4. 「常用仓库」菜单里预置了几个常见技能库(Anthropic 官方技能库、中文技能商店等),点一下自动填表;
5. 在仓库卡片里点 安装 → 技能落到 $DSH_HOME/skills/,回到对话框就能 /名称 调用。

私有仓库 / 想提高 API 配额? 设置环境变量 DSH_HELLOAI_GITHUB_TOKEN(或 GITHUB_TOKEN / GH_TOKEN),只有 github.com 和 githubusercontent.com 的请求会带上它。

常见问题

面板里能看到技能,但对话里 /名称 出不来? 技能名会被统一转成 kebab-case(TRAE-computer-use → /trae-computer-use),这样才能通过 DSH 的技能名校验。按转好的名字试。

同一个技能在好几个目录里都有? 按来源优先级去重:DSH > 公共 Agent > CODEX > Claude > … > Qoder > 自动发现。

改了代码但界面没变? 客户端产物每次请求现读磁盘,npm run build 后刷新页面即可。Host 侧改动需要重启 DSH。$DSH_HOME/helloai-skills/apply.log 每次启动会追加一行,用来确认"跑起来的到底是哪份代码"。

下面是完整的实现说明,写给想改代码、或想搞清"为什么这么设计"的人。

- 在「设置」侧栏新增「技能管理」页面(settings.section 槽位)
- 扫描本机各 Agent 的技能目录,把列表里的每一个技能都注册成 DSH 可调用技能 (对话里 /gotoweb、/dengmi 这样直接调用,模型目录里也能看到)
- 技能与仓库分栏展示;仓库添加后直接列出内部技能,逐条「安装」到 DSH
- 全局技能搜索、备注、详情、删除和启停
- 数据保存在 $DSH_HOME/helloai-skills/
- 接口前缀:/api/dsh-helloai-skills

技能来源

| 来源 | 目录 | DSH 可调用 |
| DSH | $DSH_HOME/skills | 是(宿主加载器不注册该目录时由本插件注册) |
| 公共 Agent | $DSH_AGENTS_HOME 或 ~/.agents/skills | 是 |
| CODEX | ~/.codex/skills | 是 |
| Claude / Gemini / OpenCode / Cursor / Copilot / Windsurf | ~/.claude/skills、~/.gemini/skills、~/.config/opencode/skills、~/.cursor/skills、~/.copilot/skills、~/.codeium/windsurf/skills | 是 |
| Trae / Trae CN | ~/.trae/skills、~/.trae-cn/skills | 是 |
| Qoder | ~/.qoder/skills,以及 ~/.qoder/plugins/cache///skills | 是 |
| OpenClaw / Roo / CodeBuddy / CC Switch | ~/.openclaw/skills、~/.clawdbot/skills、~/.roo/skills、~/.codebuddy/skills、~/.cc-switch/skills | 是 |
| 自动发现 | 家目录下任何 <工具>/skills,且里面确实有技能 | 是 |

DSH 自带的加载器是 @deepseek-ai/dsh-skill-filesystem。它在某些 profile(例如桌面 profile)里是停用的,这时 $DSH_HOME/skills 里的技能谁也读不到;本插件现在会自己注册这些目录,不再依赖宿主加载器是否开启。
想恢复宿主自己加载,也可以在插件管理里把 skill-filesystem 打开,两者同时开启不会冲突(按 rank 去重)。

各来源都可以用环境变量覆盖(DSH_CODEX_HOME、DSH_TRAE_CN_HOME、DSH_QODER_HOME……)。

- 技能名统一转成 kebab-case(TRAE-computer-use → /trae-computer-use),这样才通过 DSH 的技能名校验。
- 同名技能按来源优先级去重:DSH > 公共 Agent > CODEX > Claude > … > Qoder > 自动发现。
- 列表里的每个技能都会注册给 DSH($DSH_HOME/skills 也一样),所以都能用 /名称 调用;如果宿主自己的加载器也注册了同一个目录,注册表按 rank 自行裁决,重复注册不会出错。
- 外部目录里的技能只能停用(开关),不会被删除;只有 DSH 技能目录支持删除。
- 开关、备注、安装、删除后都会让 DSH 的技能目录立即刷新(provider 失效 + commands/change)。

导入本地技能

「技能」标签页的「导入」弹窗有三种填法,装的是同一个东西:

| 方式 | 说明 |
| 直接填路径 | 例如 C:\Users\me\skills\web-search,由 DSH 进程直接读盘,不经过浏览器 |
| 浏览文件夹… | 调系统目录选择器,选中的整个文件夹上传给 DSH 再落盘(适合 DSH 跑在另一台机器 / 容器里) |
| 选择 ZIP… | 选一个 .zip,宿主自己解压后安装(ZIP64 除外;文件名按 UTF-8,未标 UTF-8 时按 GBK 解码) |

- 三种方式都只认 SKILL.md:ZIP 里可以直接是技能目录,也可以是「装着技能目录的压缩包」;按最浅那一层 SKILL.md 定位技能根,同一层出现多个技能会明确拒绝(一次只导入一个)。
- 导入名称留空时取文件夹(或 ZIP 内技能目录)的名字,必须是英文、数字、点、下划线、短横线。
- 同名技能不会被覆盖:先删掉旧的,或换个名字。
- 落盘走同卷暂存目录 + rename,中途失败不会留下半个技能;成功后写入 .helloai-import.json 记录来源与导入时间。
- 上限:浏览器上传 24MB / 宿主接收 48MB;单文件 12MB、单技能总计 64MB、压缩包内最多 5000 个成员。
超限会直接报错,不会静默截断。

仓库 → 技能 → 安装

「仓库」标签页里登记一个 GitHub 仓库地址后,卡片里直接列出仓库中的技能。列表默认读本地,只有「刷新」才回源 GitHub,所以不会触发防刷/配额,网络不稳或断网时旧清单照样能看能装:

1. 添加仓库时同步一次:读取文件清单(https://github.com/<owner>/<repo>/tree-list/<commit>,与 GitHub 自己的文件查找器同源,不占用 API 配额;失败时依次回退到 GitHub API、 jsDelivr),把每个含 SKILL.md 的目录识别成一个技能,并把清单落盘到 $DSH_HOME/helloai-skills/cache/catalog-<仓库 id>.json。响应只等文件清单(约 2 秒);技能说明由后台按 ref@commit 逐条抓取、边抓边写回缓存(只读 raw,不占 API 配额),前端在没补完时每 3 秒静默刷新一次,列表可以先看先用。
2. 平时打开页面只读这份缓存(命中缓存时一次网络请求都不发,卡片上会标注「本地缓存(同步于 …)」),仓库列表本身也把技能数与同步时间记在 repositories.json 里,不打开卡片就能看到。
3. 点「刷新」才回源:重新解析 ref、重取文件清单并覆盖缓存;失败会保留旧缓存并在卡片上提示错误。
4. SKILL.md 的 frontmatter 提供说明文字(description,支持 > / | 块标量)。
5. 「安装」会把该目录下的所有文件下载到 $DSH_HOME/skills/<名称>/,并写入 .helloai-source.json 记录来源仓库、ref 与 commit;「重新安装」覆盖同名目录。
6. 安装/删除后「技能」标签页与对话里的技能目录都会立即出现或消失对应的技能。

支持的地址写法:https://github.com/owner/repo、https://github.com/owner/repo/tree/<分支>、 https://github.com/owner/repo/tree/<分支>/<子目录>(只列出该子目录下的技能)。

常用仓库快捷填入

「添加技能仓库 / 修改仓库」弹窗里,「仓库地址」标签右侧有一个常用仓库菜单:点一下弹出列表,选中就把仓库地址填进表单(「仓库名称」当时为空的话,顺手补一个建议名;已经填过的不覆盖)。
列表里就是平时反复手打的那几个仓库:

| 菜单项 | 地址 | 内容 |
| Claude 官方技能库 | https://github.com/anthropics/skills | Anthropic 官方 Agent Skills(文档、设计、MCP 等) |
| UI/UX Pro Max | https://github.com/nextlevelbuilder/ui-ux-pro-max-skill | UI/UX 设计智能:设计系统、品牌、图标与配色 |
| 中文技能商店 | https://github.com/kevin0315/-skill/tree/main | 按分类收录的中文技能商店(文档、创作、开发、自动化) |
| Awesome Claude Skills | https://github.com/ComposioHQ/awesome-claude-skills | Composio 精选技能合集 + 大量自动化技能 |

列表是客户端里的常量 REPO_PRESETS(src/client.tsx 顶部):想增删就往那个数组里改一条,再重新 node scripts/build.mjs;菜单只是「填表」,登记与去重仍走原来的 /repositories/add(同一个地址重复添加依旧会被拒绝)。

约束:单个技能最多 400 个文件、单文件 12MB、总计 64MB;同名技能默认不覆盖。
Git 子模块目录(仓库里只存了一个指针)不会被列出。

网络与配额

- tree-list、raw.githubusercontent.com、cdn.jsdelivr.net 都不消耗 GitHub API 配额;每个请求失败会重试,ref 解析依次尝试仓库页面、commits.atom、GitHub API。
- 如需提高 API 回退路径或私有仓库的配额,可设置 DSH_HELLOAI_GITHUB_TOKEN (或 GITHUB_TOKEN / GH_TOKEN)环境变量,只有 github.com / githubusercontent.com 的请求会带上它。

配色

关键控件(创建 / 安装 / 打开开关 / 当前标签 / 聚焦描边)统一使用主题里的高亮色,即对话中链接与行内代码用的那支颜色,全部从 --dsw-* 令牌取值,所以亮暗主题各自成立、写死的颜色只做兜底。
例外的只有技能名后那个 /名称 调用提示:它照旧加框,但字色用正文那一档(--dsw-alias-label-secondary),不高亮——一屏几十个技能时,满排彩色斜杠名会把真正需要点的按钮和开关淹掉。分组标题上的「DSH 可调用」是分组级说明,仍然用高亮色:

| 用途 | 令牌 | 亮色 | 暗色 |
| 高亮前景(文字、描边、图标) | --dsw-alias-link | #4176e6 | #7aaaff |
| 实心按钮底色 / 开关开启 | --dsw-alias-button-info-fill | #4176e6 | #7aaaff |
| 实心按钮悬停 | --dsw-alias-button-info-hover | #7aaaff | #4176e6 |
| 实心按钮上的文字 | --dsw-alias-label-primary-foreground | 近白 | 近黑 |
| 淡底 / 描边(徽标、聚焦环) | 由高亮色 color-mix 派生 | — | — |

次要但重要的动作(如「重新安装」)用同一支高亮色的描边样式,中性按钮保持次要层级。

自测

node scripts/build.mjs # 构建 lib/index.js 与 lib/client.js
node scripts/selftest.mjs # 离线:重复 apply、删除保护、技能提供者契约
node scripts/selftest-client.mjs # 无浏览器:装载 client bundle、校验注册与导出
node scripts/selftest-catalog.mjs # 联网:仓库解析、缓存、安装、重复安装拒绝
node scripts/preview-panel.mjs # 配色自查:渲染明/暗两套面板 PNG(需本机 Chrome/Chromium)

开发提示

- 客户端半边(lib/client.js)必须导出 inject = ["slots"]:客户端 Loader 只给声明过的插件注入服务,缺少这行时 apply 里的 ctx.slots 不可用,注册会被静默吞掉,表现为「插件已启动但设置里没有入口」。
- 主机半边(lib/index.js)在 DSH 主进程里 import 一次后常驻,改完代码需要重载插件才生效:在插件市场里点「立即重启」,或重启 DSH 后刷新页面。若点过「立即重启」而行为没变化,说明宿主仍持有旧模块(ESM 缓存),此时需要完整重启 DSH。
- 每次 apply 会往 $DSH_HOME/helloai-skills/apply.log 追加一行(<时间> <BUILD_TAG> …),用来确认「跑起来的到底是哪份代码」:改完代码重载后看着这个文件末尾有没有新标记,比看界面更容易判断。BUILD_TAG 定义在 src/index.ts 顶部。
- 设置页标题「技能管理」的右上角有一个版本角标(例如 V1.1.1),它显示的是客户端版本,构建时由 scripts/build.mjs 从 package.json 的 version 注入 define。升级时只改 package.json 再重新构建即可,不需要手改界面代码;BUILD_TAG 与它保持同一个版本号,这样界面和 apply.log 不会互相打架。
预览分享卡片长什么样 ↓hello-heyongping/dsh-helloai-skills
分享 · DeepSeek Harness Hub
hello-heyongping/dsh-helloai-skills

扫描本机各工具技能并注册为可调用技能

这是你的仓库?认领条目

回到顶部