给团队做了个私有 Agent Skills 仓库:部署在自己的 Cloudflare 上,用 npx skills 一条命令安装(开源)

0xtyz 2026-09-24 16:31 1

用 Claude Code / Codex 这类 Agent 久了,团队里会慢慢攒下一堆 Skills:代码评审清单、发版流程、内部接口规范……然后问题就来了:



  • 这些东西不能发到公开的 skills.sh 上

  • 丢进一个 Git 仓库让大家自己 clone 、手动拷到 ~/.claude/skills,每更新一次都要通知一圈,没多久版本就乱了

  • 又不想为这点事再写一个自定义 CLI ,让每个人额外装


所以做了 skillsgist:一个部署在你自己 Cloudflare 账号上的私有 Agent Skills 仓库。技能在网页上传和管理,团队成员用官方的 npx skills add 一条命令就能装。


GitHub: https://github.com/Qsnh/skillsgist ( MIT )


首页


用起来是这样的


# 装实例里的全部技能,私有的也包括在内
npx skills add https://skills.example.com/i/<install_key>

# 只装其中一个
npx skills add https://skills.example.com/i/<install_key>/.well-known/agent-skills/pr-review

# 公开的技能不需要 key
npx skills add https://skills.example.com

登录后每个页面都会显示带你自己 key 的安装命令,复制就能用。


为什么不需要自定义 CLI


npx skills(就是 skills.sh 那个 CLI )本来就支持从一个网址读取 /.well-known/agent-skills/index.json 这套发现协议。skillsgist 直接实现了这套协议,所以在 CLI 看来它就是一个普通的技能源,CLI 支持的 Claude Code 、Cursor 、Codex 等 Agent 都能装。


仓库里有个 npm run verify:cli:它会起一个本地实例,用真实的 npx skills 走一遍"发布 → 安装 → 校验文件",保证协议没有跑偏。


几个设计点



  • 默认私有:新技能只有实例里的账号能看到,要公开得逐个手动打开

  • install key 只能安装:npx skills 不支持自定义请求头,私有安装的凭据只能放在 URL 里。所以这个 key 被设计成只能安装,不能登录、发布或删除,泄露了可以在个人页一键轮换

  • 版本不可变:每次发布都是一个新的版本号,旧版本都能查看和下载;制品按内容摘要寻址,CLI 下载时会校验;回滚就是把旧内容再发布一次

  • 能在 CI 里发布:PUT /api/skills/<name> 是幂等的,内容没变就返回 unchanged: true,所以可以每次 push 都跑一遍,README 里有 GitHub Actions 的示例

  • 网页上直接改 SKILL.md:其他文件自动沿用上一个版本;也可以上传 .zip 、.tar.gz 或单个 SKILL.md

  • 账号管理:分管理员和成员两种角色,账号都在网页上管理


技能详情页


部署:白嫖 Cloudflare 就够了


整个服务就是 1 个 Worker + 1 个 D1 数据库 + 1 个 R2 存储桶,默认限制都是按 Workers 免费套餐来定的。


README 里有 Deploy to Cloudflare 按钮,点一下会把仓库复制到你的 GitHub 、自动创建 D1 和 R2 、让你填一个 SESSION_SECRET,然后跑迁移并部署。部署完打开 /setup 创建第一个管理员,就能用了。不想用按钮的话,用 Wrangler 手动部署也只要几条命令。


先说清楚的限制



  • 为了不超过免费套餐每个请求 10ms 的 CPU 限制,上传限制是 2MB 、解压后 8MB 、最多 200 个文件。换付费套餐的话,改几个常量就能调大

  • install key 放在 URL 里是 CLI 的限制决定的,它会出现在 shell 历史里,所以才把它的权限压到"只能安装"


最后


技术栈是 Hono + Cloudflare Workers + D1 + R2 ,页面全部服务端渲染,关掉 JS 也能用。


欢迎试用、拍砖、提 issue 。觉得有用的话,给个 Star 就更好了 🙏

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回