Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

SkillHub — Agent Skills 仓库管理台

深色终端美学的 AI Agent Skills 仓库管理后台:收录 GitHub 高热度 skill 仓库,支持录入、打标、删除、一键导入/克隆、安装到本地各 agent(含更新/diff),数据可通过 git pull/push 在多台电脑间同步

🚀 全新电脑启动

git clone https://github.com/xdlkc/SkillHub.git
cd SkillHub
npm install          # 安装前端依赖
npm run setup:first  # 一键:import(恢复列表+clone 标记)+ clone-all(批量拉取标记仓库)
npm run dev:all      # 同时启动后端(:8787) + 前端(:5173)

打开 http://localhost:5173setup:first 会把另一台机器已 clone 的仓库全部拉到本地(已有目录自动跳过),无需手动一个个点。

🔄 多机同步(pull / push)

设计:data/skills.json 是 git 跟踪的同步载体(共享元数据:名称/Star/描述/语言/标签 + clone 布尔标记,不含本地绝对路径);SQLite(data/skills.db)是本地运行缓存,不入 git;skill 仓库 clone 在 ~/Code/skills-registry/,也不入 git。

本机修改列表后(录入/打标/删除/更新 Star 等)→ 推送到远端:

npm run export                       # db → data/skills.json(含 clone 标记)
git add data/skills.json
git commit -m "sync: 更新列表"
git push

对端电脑拉取更新:

git pull
npm run import                       # skills.json → db(upsert + clone 标记,不删本地)
npm run clone-all                    # 按同步的 clone 标记批量拉取缺失仓库(已存在自动跳过)
# 想完全以远端为准(删除本地多余条目):
npm run import:prune

页面内的列表修改(录入/打标/删除/clone)会立即写入本地 SQLite。列表元数据自动同步默认关闭;可在 #/settings 开启,开启后的管理操作会在约 2.5 秒后执行 export → git commit → git push(commit 作者为 SkillHub Bot)。自动同步只会暂存、提交并推送 data/skills.json,绝不会扫描、提交或推送已 clone 的 skill 源码仓库;若当前分支没有上游、落后于上游或含非 data/skills.json 的待推送提交,则会安全拒绝且不会改动其他暂存/未暂存文件。AUTO_SYNC=on 会强制开启,AUTO_SYNC=off 会强制关闭;环境变量覆盖生效时,设置页面的开关只读。无论是否开启自动同步,仍可按上方流程手动执行 npm run exportgit add data/skills.jsongit commitgit push。页面顶部的「⧉ 批量 clone」按钮等价于 npm run clone-all

技术栈

  • 前端: Vite + React 18 + TypeScript(零 UI 依赖,纯手写 CSS)
  • 后端: Node 原生 node:http + node:sqlite(零 npm 依赖,Node 22.13+)
  • clone: git clone --depth 1,统一存放到 ~/Code/skills-registry/(可用环境变量 SKILLS_REGISTRY 覆盖)

快速开始(开发)

npm install          # 安装依赖(仅前端,后端零依赖)
npm run seed         # (可选)导入内置 115 条种子数据
npm run dev:all      # 前后端一起启动
# 或分开:npm run dev:server(后端 :8787)+ npm run dev(前端 :5173)

环境变量:SKILLS_REGISTRY(clone 目录,默认 ~/Code/skills-registry)、AGENTS_HOME(agent 安装探测基准,测试用)、AUTO_SYNCon 强制开启、off 强制关闭;未设置时读取本地 SQLite,首次使用默认关闭)、PORT(后端端口,默认 8787)

页面导航(Hash 路由)

页面 地址 说明
排行榜 #/ 全部仓库,Stars 降序,搜索/过滤/clone
Skills #/skills skill 级条目(扫描已 clone 仓库内的 SKILL.md),安装到本地各 agent、更新、diff、卸载
Agents #/agents 每个 agent 的 skill 管理:来源/更新/卸载/diff/全部更新
设置 #/settings 保存在本地 SQLite 的列表元数据自动同步开关(默认关闭)
一键导入 Header「⚡ 导入」 输入 owner/repo → 拉取元数据 + 入库 + clone 一条龙
详情 #/skill/:id 安装命令 / Summary / 信息卡 / README 预览(本地 clone)/ 相关仓库 / 操作
Topics #/topics 按领域(8 类标签)浏览,点击进入过滤榜单
Topic #/topic/:tag 某标签下的榜单
Packs #/packs 按作者/组织聚合的仓库包
Pack #/pack/:owner 某作者的全部仓库
Official #/official 官方维护仓库(Anthropic/OpenAI/Google…)
Docs #/docs 用法 / API / FAQ

功能

功能 说明
排行榜 按 Stars 排序,含类型徽章 / 语言 / Star 条形图 / 搜索过滤
录入 owner/repo 可一键从 GitHub 拉取元数据(desc/stars/lang)自动填充
README 预览 已 clone 的仓库在详情页直接预览 README/SKILL.md(手写轻量 Markdown 渲染)
安装到 agent skill 级安装到 Claude Code / Codex / Cursor / Gemini CLI 等 15 个 agent(npx skills 目录约定,copy 模式)
一键安装全部 仓库详情页「⤓ 安装到全部 agents」:仓库内所有 skills × 选定 agents 批量安装(含结果汇总/失败列表)
agent 管理 #/agents:每个 agent 的已安装 skills(来源追溯/更新/卸载/diff/全部更新)
更新 / diff 已安装 skill 可一键 git 同步更新;diff 对比源仓库与已安装的文件级差异(diff -u
打标 8 个内置标签(官方/合集/工具/设计/研究/安全/垂直/中文)+ 自定义标签
编辑 / 删除 行内操作,删除有确认弹窗
clone 管理 每行一键 clone 到本地 registry,支持移除、批量扫描同步状态
统计 仓库总数 / Star 总和 / 官方数 / 中文数 / 已 clone 数

API(后端 :8787)

方法 路径 说明
GET /api/skills 列表(Stars 降序)
GET /api/settings 查询设置;metadata_auto_syncenabled / locked / source
PATCH /api/settings/metadata-auto-sync 请求 JSON {"enabled": true}enabled 非布尔值返回 400,环境变量锁定时返回 409
POST /api/skills 录入 {full_name, desc, stars, lang, url, tags}
PATCH /api/skills/:id 更新(打标/改字段)
DELETE /api/skills/:id 删除
GET /api/skills/:id/clone 查询本地 clone 状态
POST /api/skills/:id/clone clone 到 registry
POST /api/skills/:id/clone/remove 移除本地 clone
POST /api/rescan 扫描 registry 目录同步 clone 状态
GET /api/fetch?repo=owner/repo 从 GitHub 拉取仓库元数据(需 gh CLI 已登录)
GET /api/stats 汇总统计

目录结构

SkillHub/
├── index.html              # Vite 入口
├── server/
│   ├── index.mjs           # 后端(http + sqlite + git)
│   └── seed.mjs            # 初始数据导入
├── data/
│   ├── skills.db           # SQLite 数据库(git 忽略)
│   └── skills-seed.json    # 初始 115 条种子数据
├── src/
│   ├── App.tsx             # 状态管理 + 组件组装
│   ├── api.ts / types.ts
│   └── components/         # Hero/DistCharts/Toolbar/Leaderboard/SkillForm/TagEditor/Modal
└── legacy/                 # 旧的单文件版本备份

注意

  • 删除仓库只移除数据库记录,不会删除本地已 clone 的目录(防止误删代码)
  • gh CLI 需已登录(gh auth login),/api/fetch 依赖它
  • 数据全部存本地 data/skills.db,clone 目录在 ~/Code/skills-registry/

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages