skill-hub
AI Agent 技能的包管理器
把 Agent 技能当作有版本、可安装的包来管理的包管理器。
- 活跃开发中
- 2026
- Go · CLI · AI Agent · Developer Tools
Why
编程 Agent 进入了日常开发,每一个都学会了加载可复用的技能(Skill)。可技能本身还是被复制来复制去的文件夹:散在仓库里、家目录里,以及四种不同的运行时目录结构里。
技能一旦被复制,就没人说得清正在运行的是哪个版本、从哪来的、改坏了怎么撤回。skill-hub 要做的,是给技能补上代码包早就有的生命周期。
Problem
没有唯一来源:同一个技能在 Codex、Claude、Gemini、Hermes 的目录里各自漂移。
没有版本和历史:一次更新直接覆盖文件夹,出了问题无处回滚。
无法发现:想找一个技能,得事先知道它的仓库路径。
默认不安全:直接写进 Agent 的运行时目录,会立刻改变它的行为。
System
skill-hub 把「技能在哪里被管理」和「Agent 从哪里加载」拆开。三层,每层只负责一件事。
Registry 索引
本地或 Git 托管的索引(
skillhub.index.json,schema v2),描述有哪些技能可以安装。托管存储
安装在
$SKILLHUB_HOME下的包,由skillhub.lock锁定版本、校验和、来源与历史。更新和回滚都发生在这一层。运行时副本
显式部署到 Codex、Claude、Gemini 或 Hermes 的技能目录,这是 Agent 真正读取的唯一一层。
Implementation
一个 Go 二进制,外加 TUI
初始化、索引、发现、生命周期、部署、发布和审计都在同一个 CLI 里,上面再加一个交互式的
skillhub tui。包格式
skill.yaml声明名称、命名空间、版本、入口和目标运行时。只有SKILL.md的旧文件夹也能安装,skill-hub 会为它生成元数据。锁文件与历史
skillhub.lock记录校验和与来源引用,安装可复现,rollback永远有地方可退。静态目录
catalog export导出index.html和catalog.json,不用跑服务就能浏览一个索引。分发
通过 Homebrew、npm 和
go install发布,每个 tag 版本还附带 npm tarball,方便锁定或镜像。
Decisions
- D1
更新永远不碰运行时
skillhub update只修改托管存储。要替换 Agent 实际加载的副本,必须显式执行deploy … --force,升级不会悄悄改变 Agent 的行为。 - D2
语义化版本是强制的,不是建议
patch 和 minor 更新自动应用;major 升级和标记了
compatibility.breaking的版本会被跳过,直到你传入--major。requires.skillhub会拒绝当前 CLI 无法支持的安装。 - D3
被发现不等于被接管
项目目录里已有的技能会出现在
list和 TUI 里,但绝不会被偷偷纳入托管存储。 - D4
Registry 就是文件
一个目录或一个 Git 仓库里的索引文件就够了,团队内部共享技能不需要任何托管服务。
Result
- v1.4.x
- Codex · Claude · Gemini · Hermes
- Homebrew · npm · Go
v1.4 版本线加入了发布能力(含 fork-and-PR 流程)、兼容性约束、major 更新确认策略和本地审计日志。官方技能目录放在 skill-hub-registry。
Registry 签名与信任策略留给 v1.5。