市场:三个来源和 CLI 抓取
条目来自哪里
Section titled “条目来自哪里”skill、MCP server 和 Agent-first CLI 分别列在不同的地方。Smithery 列出 skill 和 MCP server,skills.sh 列出并安装 skill,为 agent 打造的 CLI 则分散在各自的 GitHub 仓库中。每个来源统计热度的方式也不相同。
HarnessKit 怎么做
Section titled “HarnessKit 怎么做”每个标签页打开时显示一份默认列表,另有一个搜索框。输入至少 2 个字符后才开始搜索。应用会把每个标签页的默认列表缓存 5 分钟。离线或加载出错时,标签页显示上一次加载的列表。
- 默认列表。来自 Smithery 的
/skillsAPI,每页 10 个 skill。页码按当天是一年中的第几天,在 1 到 5 之间轮换,因此列表每天都不同。Smithery 官方账号smithery-ai名下的 skill 不会列出。显示的数字是 Smithery 的激活次数。 - 搜索。使用 skills.sh 的搜索 API。显示的数字是 skills.sh 的安装次数。skills.sh 不返回描述,因此搜索结果中没有描述。
- 预览。HarnessKit 从 raw.githubusercontent.com 下载这个 skill 的
SKILL.md。 - 第三方审计。HarnessKit 向 add-skill.vercel.sh 上的审计服务查询,最多显示 3 条结果,分别来自合作方
ath、Socket 和 Snyk。预览和审计结果缓存 5 分钟。 - 安装。HarnessKit 对 skill 的 GitHub 仓库运行
git clone --depth 1,只获取最新的 commit。然后按下文「找到指定名字的 skill」中的方法找到 skill 文件夹,复制到你选择的 agent 中,把该仓库记为来源,再审计新副本。
默认列表中的 skill 没有 skills.sh id。安装这类 skill 前,HarnessKit 会先按名称在 skills.sh 上搜索。若没有匹配的结果,会提示你直接搜索该 skill。
MCP server
Section titled “MCP server”默认列表和搜索都用 Smithery 的 /servers API。默认列表与 skill 相同,按天轮换页码。显示的数字是 Smithery 的使用次数。
HarnessKit 不从这个标签页安装 MCP server。每个条目都有一个在 Smithery 上配置链接,指向该 server 在 smithery.ai 上的页面。如需把已有的 server 复制到另一个 agent,请使用扩展页面上的安装到智能体。
Agent-first CLI
Section titled “Agent-first CLI”清单是公开仓库 RealZST/harnesskit-resources 中的 cli-registry/registry.json。HarnessKit 从 GitHub 下载这份清单,缓存 5 分钟;下载失败时,改用应用中内置的清单。HarnessKit 还会向 GitHub API 查询每个仓库的 star 数,缓存 1 小时,并按 star 数排序。搜索在本机执行,按名称和描述过滤这份清单。
条目中显示的是该工具 README 中介绍安装的那一节,安装命令需要你自行运行。标为已验证的条目拥有 skill 仓库且其中的 skill 定义有效,安装命令经过测试,并已通过维护者审核。
同一仓库中有一个 GitHub Actions workflow,负责寻找新的候选。
- 定时。每月从 1 日起每 3 天一次(1 日、4 日、7 日……直到 31 日),时间为 UTC 00:00(cron
0 0 */3 * *)。 - 搜索。运行 10 次 GitHub 搜索,例如
"agent-first" in:readme,description和topic:agent-cli,每次取 30 个结果。 - 过滤。排除已在清单中或在拒绝名单上的仓库,也排除 fork、已归档或空的仓库,以及 star 少于 3 个的仓库。README 中必须包含安装命令(例如
npm install -g或brew install)。README 或仓库简介(description)中还必须包含与 agent 相关的关键词(例如「agent」或「llm」)。 - 打分。有
SKILL.md文件或.skill/文件夹加 3 分,有mcp.json或.mcp.json文件加 2 分。star 数最多加 3 分,最近 180 天内有过 push 加 2 分,README 中有--json或--output加 1 分,最新 release 里有预编译的二进制文件加 2 分。 - 报告。创建一个带
cli-discovery标签的 issue,列出得分最高的 20 个仓库。该 workflow 对仓库只有读权限,因此无法修改清单。
维护者逐个手动审核这些 issue。接受的工具加入 registry.json;拒绝的工具连同理由记入 excluded.json,之后的抓取都会跳过它们。
从 Git 或本地文件夹安装
Section titled “从 Git 或本地文件夹安装”市场页面上的从 Git 安装和从本地安装按钮,分别接受一个 URL 和一个文件夹。
- Git。HarnessKit 运行
git clone --depth 1,然后找出 4 层以内所有含SKILL.md的文件夹。只有一个 skill 时直接安装;有多个时,会列出供你选择,默认全选。 - 找到指定名字的 skill。从市场安装时,HarnessKit 已知该 skill 的 id。它依次尝试
skills/<id>/、<id>/,再尝试仓库根目录(前提是仓库只有根目录这一个 skill)。若均未找到,则在 4 层以内查找名为<id>的文件夹。 - 本地文件夹。文件夹顶层必须有
SKILL.md,HarnessKit 会复制整个文件夹。
每次安装都会记录安装方式:marketplace、git 或 local,可在 hk info --json 中查看。
crates/hk-core/src/marketplace.rs调用 Smithery、skills.sh、审计服务和 GitHub,并存放内置的 CLI 清单。src/stores/marketplace-store.ts缓存每个标签页,并在安装前到 skills.sh 上查找默认列表中 skill 的对应条目。crates/hk-core/src/manager.rs克隆仓库,并找到 skill 文件夹。RealZST/harnesskit-resources: .github/workflows/discover-cli.yml定时运行 CLI 抓取。RealZST/harnesskit-resources: .github/scripts/discover_cli.py负责搜索、过滤、打分和创建 issue。