爱意满满的作品展示区。
0xtyz

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

  •  1
     
  •   0xtyz ·
    Qsnh · 11h 46m ago · 295 views

    用 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 就更好了 🙏

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   851 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
    ♥ Do have faith in what you're doing.