Skip to content

Releases

SkillHub v0.2.7

Choose a tag to compare

@dialling dialling released this 16 Sep 06:02

v0.2.7

自 v0.2.6 以来的改动(2 项):

  • release: v0.2.7
  • fix: 安装器从不读 supportsSymlink —— 这就是「skill unknown」的根因

安装:下载 SkillHub-0.2.7-arm64.dmg,把 SkillHub 拖进「应用程序」。

未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.6

Choose a tag to compare

@dialling dialling released this 16 Sep 03:19

v0.2.6

自 v0.2.5 以来的改动(2 项):

  • release: v0.2.6
  • fix: 库的技能数比目录多(重复未去重);安装记录从磁盘对账补回

安装:下载下面的 SkillHub-0.2.6-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.5

Choose a tag to compare

@dialling dialling released this 16 Sep 03:07

v0.2.5

自 v0.2.3 以来的改动(4 项):

  • release: v0.2.5
  • fix: 安装记录 250ms 防抖导致进程退出即丢失
  • release: v0.2.4
  • feat: 启动即可用;应用类技能单独标注;安装键覆盖所有技能

安装:下载下面的 SkillHub-0.2.5-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.4

Choose a tag to compare

@dialling dialling released this 16 Sep 03:00

v0.2.4

自 v0.2.3 以来的改动(2 项):

  • release: v0.2.4
  • feat: 启动即可用;应用类技能单独标注;安装键覆盖所有技能

安装:下载 SkillHub-0.2.4-arm64.dmg,把 SkillHub 拖进「应用程序」。

未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.3

Choose a tag to compare

@dialling dialling released this 16 Sep 02:29

v0.2.3

自 v0.2.2 以来的改动(2 项):

  • release: v0.2.3
  • fix(launch): 说清「技能属于某个应用」和「客户端看不到工作区里的技能」

安装:下载下面的 SkillHub-0.2.3-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.2

Choose a tag to compare

@dialling dialling released this 16 Sep 02:08

v0.2.2

自 v0.2.1 以来的改动(2 项):

  • release: v0.2.2
  • fix(update): 关掉的提示在刷新后不再自己回来

安装:下载下面的 SkillHub-0.2.2-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.1

Choose a tag to compare

@dialling dialling released this 16 Sep 01:59

v0.2.1

自 v0.2.0 以来的改动(4 项):

  • release: v0.2.1
  • fix(update): 弹窗关不掉的根因是关闭依赖了一次可能失败的 IPC 调用
  • chore: release.mjs 的 node 候选路径按既有机制豁免并写明理由
  • fix(release): 发布必须自带安装包

安装:下载下面的 SkillHub-0.2.1-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.2.0

Choose a tag to compare

@dialling dialling released this 16 Sep 01:21

v0.2.0

自 v0.1.0 以来的改动(193 项):

  • release: v0.2.0
  • chore: 修正发布脚本的标签检查(rev-parse --verify 在标签不存在时抛出,需捕获)
  • chore: 标签存在性检查改用 rev-parse --verify --quiet,避免无谓报错
  • feat(release): 发布做成一条命令;弹窗不再把日期当版本号
  • docs+fix(security): 写清上传功能的威胁模型,并补上内容扫描与权限预检
  • chore: 安装正式版做成一条命令,并回读校验装上去的就是新的
  • fix(update): 日期转换出 NaN 导致永远检测不到更新;并区分「关掉」与「不再提示」
  • feat: 每次刷新检查更新并弹窗提示;版本比较严格区分先后
  • chore(ui): 隐藏「上传待审」—— 那是本项目收录技能用的开发流程,不是用户功能
  • feat(ui): 商店 Star 移到入库下方;弱化待装数字;库里支持单技能安装
  • data: refresh star counts, history and skill index (2026-09-15)
  • feat(launch): 加入 12 个网页版 AI,并让网页提示词自包含
  • fix(launch): 所有 app 形态的启动都是坏的 —— appName 从未进入启动计划
  • fix(launch): 修 Cursor 打不开的根因,并把形态改为「交互式会话」
  • fix(launch): 逐个核实 60+ 个智能体的提示词传递方式,并修掉生成脚本的根因
  • fix(launch): 提示词传递方式按工具区分,并加一道元数据门禁
  • fix(launch): DSH 是客户端不是终端 —— 启动配置一直指向错的形态
  • fix(launch): 弹窗高过窗口,启动按钮在屏幕外点不到
  • feat(launch): 默认在 ~/.skillhub/sandbox 里运行,每个技能一个文件夹
  • fix(bulk): 默认勾选本机检测到的智能体,而不是只勾已启用的
  • feat(library): 一键安装先选智能体,不再静默装到全部
  • fix(self-test): 自检会卸载用户真实的技能 —— 实际已造成损失
  • fix: 修复启动与安装的五个问题,并补上审计的一个盲区
  • docs: README 补上技能视图、Star、上传待审与共享数据;修正过期的目录数字
  • feat: 库里商店没有的技能可以上传到仓库待审区
  • submission: register africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: register video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: video-shotcraft-local
  • submission: register africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • submission: africa-dropship
  • fix(mac): 修复非 Dock 界面仍显示微信开发者工具图标的问题
  • feat(store): 商店里可以直接给 GitHub 仓库点 star
  • fix: 分片缓存永不过期 + 镜像选择失效,导致新增标注读不到
  • data: refresh star counts, history and skill index (2026-09-15)
  • feat: 标注技能专用哪个智能体,并修掉分片缓存的永不过期
  • data: refresh star counts, history and skill index (2026-09-15)
  • feat(store): 技能模式首屏按仓库轮转,并把提取并入定时任务
  • feat: 把技能从「合集」里抽出来,商店可以直接浏览单个技能
  • data: refresh star counts and history (2026-09-15)
  • fix: 排行榜页白屏 —— 目录里的分类值不在标签表里
  • feat: 刷新时从本项目仓库拉共享星标与增长榜,不需要服务器
  • fix(store): 重排商店卡片,空间让给简介,按钮不再溢出卡外
  • feat(store): 「我要做」折叠 + 目录扩到 147 个仓库 / 11,354 个技能
  • chore: 清理死函数删除后暴露出的 10 个未使用导入
  • chore: 删掉三个已无引用的 CSS 变量与 accentDeep 字段
  • chore: 全库审查 — 清理死代码与历史残留,修复 6 个真实缺陷
  • refactor(ui): 去掉「内置精选目录」相关的界面标签
  • revert(theme): 四套主题的强调色还原为原值,改用 --on-accent 解决对比度
  • fix(library): 启动按钮改回强调色蓝(之前是白色),并真正压低横幅背景
  • feat(nav): 左侧图标的角标改成「有新东西才提示」,点一下消掉
  • fix(theme): 四套深色主题的按钮白字对比度不达标,逐套修掉
  • style(theme): 深空蓝改成靛蓝倾向 #3d5fd9
  • style(theme): 深空蓝的蓝调深一档,更有质感,同时修掉按钮文字不达标
  • fix(library): 重做启动按钮,解决蓝底蓝按钮的糊在一起
  • fix(library): 卡片不再用头像铺满整块,并补上库里缺失的一句话简介
  • refactor: 移除 AI 翻译功能,改为强制人工双语 + 上架门禁
  • chore(release): 发布 v0.1.0 GitHub Release,并补上下载安装说明

安装:下载下面的 SkillHub-0.2.0-arm64.dmg,打开后把 SkillHub 拖进「应用程序」。

本应用未做 Apple 开发者签名。首次打开若被拦截,右键图标 → 打开。

SkillHub v0.1.0

Choose a tag to compare

@dialling dialling released this 15 Sep 09:07

浏览、收藏、安装、直接启动 AI 智能体技能(SKILL.md)的桌面应用。

下载

平台 文件
macOS(Apple 芯片) SkillHub-0.1.0-arm64.dmg
macOS(Intel) SkillHub-0.1.0.dmg
Windows(安装版) SkillHub-0.1.0-x64-setup.exe
Windows(免安装) SkillHub-0.1.0-x64-portable.exe

⚠️ 首次打开会被系统拦下(安装包未做代码签名)

应用本身没问题,按下面操作一次即可,之后不再提示。

macOS — 提示「无法验证开发者」或「已损坏」时:

  • 在「应用程序」里右键点 SkillHub →「打开」→ 再点「打开」
  • 或终端执行:xattr -dr com.apple.quarantine /Applications/SkillHub.app

Windows — SmartScreen 提示时点「更多信息」→「仍要运行」。

运行前提

  • 必须有 git(入库技能时要克隆仓库):Windows 装 Git for Windows,macOS 用 xcode-select --install
  • gh(GitHub CLI)可选,会复用其登录凭据;没有也能用 Personal Access Token

这一版能做什么

  • 商店:101 个精选仓库、9,149 个技能,按功能分 10 类(写代码 / 调试 / 文档 / 设计 / 安全 …),
    另有 13 个「我要做…」场景入口。每个仓库都有中英双语一句话简介,一眼看懂是干什么的
  • 库:Steam 式布局 —— 选中项大横幅 + 胶囊网格。归档、同步、批量安装
  • 我的技能:扫描本机已有技能并匹配回商店来源。每一条都能一键启动
  • 启动:选工作区和智能体,自动建工作目录、把技能装到项目级、写好启动说明,
    并拉起智能体(终端 / 应用 / 网页三种方式,共 67 个智能体)
  • 排行榜:Star 增长榜,数据来自本地快照 + GitHub 事件流,测不出来的仓库直接不列出,不显示假的 +0
  • 智能体:80 个智能体的检测与目录管理,按公司分组
  • 8 套配色、完整中英双语(严格不混杂)、文字可框选复制

目录诚实性

靠「有没有 SKILL.md」判断一个仓库是不是技能来源是不够的 —— 应用会附带描述自己的
SKILL.md,awesome 列表一个技能都没有。所以 101 个仓库都做了分类并给出依据:

类型 数量 界面表现
技能包 66 正常安装
软件项目 26 黄色徽章 + 说明「仓库本身需单独安装或构建」
资料规范 9 「不含技能」徽章,安装按钮禁用

已知限制

  • 未做代码签名,首次打开需按上面的步骤放行。macOS 未公证
  • Windows 版未在真实 Windows 上验证过 —— 打包结构已核对,代码层面的平台差异
    也逐项处理并加了审计脚本(npm run xplat),但没有真机跑过,欢迎反馈
  • Linux 未打包
  • 需要联网才能刷新星标与读取仓库详情;内置目录本身可离线浏览

从源码构建

git clone https://github.com/dialling/skillhub.git
cd skillhub && npm install
npm run app          # 开发运行(注意:此时系统里显示的名字是 Electron)
npm run dist:mac     # 打包 macOS
npm run dist:win     # 打包 Windows