AI Hub Sync
团队共享的 AI 资源(Skills / Rules / MCP),装上插件,3 步同步到你的项目里。

🚀 30 秒快速上手
1. 安装
在 VSCode 扩展商店搜索 AI Hub Sync,点击安装。
2. 初始化
点击左侧活动栏的 🤖 图标 → 点击「初始化」→ 填入你团队的 Git 仓库地址,搞定。
插件会自动克隆仓库、创建你的个人分支 user/你的名字,全程无需手动操作 Git。
3. 选资源、用起来
在侧边栏的「资源浏览器」里浏览所有可用资源,点一下就同步到你的项目里。
资源浏览器
├── 📂 Skills
│ ├── 📁 comm ← 点目录 = 同步整个目录
│ │ ├── coding-skill ← 点资源 = 同步单个
│ │ └── review-skill
│ └── 📁 personal
├── 📂 Rules
│ └── code-style.md
└── 📂 MCP
└── search-config
就这么简单。你的 AI 资源已经准备好了 🎉
✨ 能帮你做什么
| 你想做的事 |
怎么做 |
| 用团队的 Skill / Rule |
资源浏览器里点一下,同步到本地 |
| 改了 Skill 想分享给团队 |
本地改完 → 推送到个人分支 → 合入 Master 面板选择性提 MR |
| 不想手动拉更新 |
默认每 30 分钟自动从 master 同步最新资源 |
| 多个团队有不同的仓库 |
添加副仓库,资源互不干扰 |
| 分支搞乱了 |
一键重置个人分支为 master |
| 想在终端操作 |
用 ai-hub CLI:ai-hub find redis、ai-hub install coding-skill |
📖 日常使用
同步资源
在「资源浏览器」面板里:
- 点击资源名 → 同步单个资源
- 点击目录右侧的 🔄 → 同步整个目录下的所有资源
- 展开目录 → 查看内部文件,点击可预览
同步后的资源会出现在你项目的 .codebuddy/ 目录下(可配置为 .agent、.claude 或自定义目录)。
推送你的修改
你在 .codebuddy/ 里改了文件?插件会自动检测到:
- 侧边栏「本地变更」面板会列出所有改动(有变动时自动展开)
- 点击面板工具栏的 上传图标 → 输入提交信息 → 推送到你的个人分支
推送目标是你的个人分支 user/你的名字,不是 master,放心改。
分享给团队(合入 Master)
你觉得某个 Skill 特别好用,想分享给全团队?
- 打开「合入 Master」面板 → 点击 刷新
- 勾选你想合入的资源(支持按资源粒度选择)
- 点击 创建合入请求 → 插件自动创建新分支 + 推送
- 跳转到 Git 仓库创建 MR → Code Review → 合入
你的个人分支 新分支 (merge/xxx-20260317)
┌────────────────────┐ ┌────────────────────┐
│ ✓ coding-skill │ ──选中──▶ │ coding-skill │
│ ✗ test-skill │ │ │ → MR → master
│ ✓ my-rule.md │ ──选中──▶ │ my-rule.md │
│ ✗ draft-mcp │ │ │
└────────────────────┘ └────────────────────┘
合入不影响你的个人分支,你可以继续开发。
拉取团队最新资源
- 自动:默认每 30 分钟从 master 拉取(可在设置中调整或关闭)
- 手动:点击资源浏览器工具栏的 拉取图标
💻 CLI 命令行
不想开 VSCode?用终端也行:
# 搜索资源
ai-hub find redis
ai-hub find trpc --type skills
# 安装资源(交互式或指定名称)
ai-hub install
ai-hub install coding-skill review-skill
# 查看资源详情
ai-hub info coding-skill
# 交互式浏览
ai-hub browse
ai-hub browse skills
# 列出已安装 / 所有资源
ai-hub list
ai-hub list --all
# 下载到指定目录
ai-hub download coding-skill -o ./my-skills
CLI 的市场命令(find / info / browse / download 等)统一读取本地 cache,首次使用前需要先执行 ai-hub init 初始化缓存仓库。
如果你需要本地同步能力:
ai-hub init git@git.example.com:team/ai-hub.git
ai-hub sync coding-skill
ai-hub push -m "update my skill"
ai-hub pull
ai-hub status
当前 CLI 和插件都不再直接访问公网 Web API,资源和组合信息均来自本地 cache 仓库及其 data 分支镜像。
🔧 进阶功能
缓存管理
AI Hub 使用系统级缓存存储 Git 仓库和配置:
# 查看缓存路径
ai-hub cache path
# 清除全部缓存(下次使用自动重新克隆)
ai-hub cache clean
# 非交互模式
ai-hub cache clean -y
重置个人分支
分支冲突或搞乱了?一键恢复:
- 状态面板工具栏点击 重置图标,或执行命令
AI Hub: 重置个人分支为 master
- 插件会中止合并 → 丢弃未提交修改 → 硬重置为 master → 强制推送 → 重新同步本地资源
⚠️ 会丢弃个人分支上的所有修改(包括已推送的),谨慎使用。
副仓库
团队有多个资源仓库?添加副仓库,资源独立管理:
- 状态面板工具栏点击 + → 输入 Git 地址
- 副仓库资源同步到
.codebuddy/<仓库名>/ 下,与主仓库互不干扰
.codebuddy/
├── skills/ ← 主仓库资源
├── rules/
├── extra-skills/ ← 副仓库资源(独立目录)
│ ├── skills/
│ └── rules/
也可以在设置中批量配置:
{
"aiHubSync.secondaryRepos": [
{
"repoUrl": "git@git.example.com:team/extra-skills.git",
"dirName": "extra-skills",
"enabled": true
}
]
}
多仓库切换
切换仓库地址时,插件会自动暂存当前已同步的资源。切回来时自动还原,不会丢失。
⚙️ 配置项
| 配置项 |
说明 |
默认值 |
aiHubSync.repoUrl |
Git 仓库地址(SSH 或 HTTPS) |
(必填) |
aiHubSync.syncTarget |
同步目标目录 |
.codebuddy |
aiHubSync.customSyncTarget |
自定义同步目录(syncTarget 为 custom 时生效) |
— |
aiHubSync.autoSyncInterval |
自动同步间隔(分钟),0 = 禁用 |
30 |
aiHubSync.autoPushDetect |
自动检测本地变更并提示推送 |
true |
aiHubSync.cloneDepth |
Git 克隆深度,0 = 完整克隆 |
1 |
aiHubSync.customResourceDirs |
资源目录覆盖配置(显示名、图标、扫描策略等) |
[] |
aiHubSync.secondaryRepos |
副仓库列表 |
[] |
自定义资源目录
Hub 仓库中的顶层目录会被自动发现。如果你想覆盖某个目录的显示名称或扫描策略:
{
"aiHubSync.customResourceDirs": [
{
"name": "agents",
"label": "🤖 Agents",
"icon": "robot",
"scanStrategy": "depth",
"scanDepth": 2
},
{
"name": "skills",
"requiredGroups": ["comm"]
}
]
}
| 字段 |
说明 |
name |
目录名,必须与仓库中实际目录名一致 |
label |
显示名称 |
icon |
VSCode ThemeIcon 名称 |
scanStrategy |
marker(递归找标记文件)或 depth(固定深度扫描) |
markerFile |
标记文件名(marker 策略时生效,默认 SKILL.md) |
scanDepth |
扫描深度(depth 策略时生效,默认 1) |
requiredGroups |
必须同步的分组,初始化后自动同步 |
❓ 常见问题
支持私有仓库吗?
支持。只要你本地 Git 有访问权限(SSH 密钥或 HTTPS 凭据)就行。遇到认证问题时插件会给出排查指引。
同步的文件会被提交到我的项目仓库吗?
不会。插件会自动把同步目录和缓存目录加入 .gitignore。
推送变更是推到 master 吗?
不是。推送目标是你的个人分支 user/你的名字。想合入 master 请用「合入 Master」面板。
遇到合并冲突怎么办?
插件会检测冲突并给出指引。最快的方式:使用「重置个人分支为 master」一键恢复干净状态。
切换仓库后资源会丢失吗?
不会。切换时自动暂存,切回时自动还原。
副仓库和主仓库有什么区别?
副仓库资源同步到主目录的子目录下(如 .codebuddy/extra-skills/),拥有独立的 Git 管理,与主仓库互不干扰。
CLI 和 VSCode 插件可以同时用吗?
可以。CLI 和 VSCode 插件统一读取同一个本地缓存;组合等 .data 元数据会从 data 分支镜像到主 cache 中。
自动同步间隔能改吗?
可以。设置 aiHubSync.autoSyncInterval,单位分钟,设为 0 禁用。
🏗️ 整体架构
┌───────────────────────────────┐
│ 远程 Git 仓库 (Origin) │
│ ┌─────────┐ ┌────────────┐ │
│ │ master │ │ user/xxx │ │
│ └────┬────┘ └─────┬──────┘ │
└───────┼─────────────┼─────────┘
fetch│ push│pull
┌────────────┼─────────────┼────────────┐
│ .ai-hub-cache/ (本地缓存仓库) │
│ ┌─────────▼────┐ ┌─────▼──────┐ │
│ │ origin/master│ │ user/xxx │ │
│ │ (远程追踪) │ │ (个人分支) │ │
│ └──────────────┘ └────────────┘ │
└──────────────┬────────────────────────┘
同步 ↓↑ 回写
┌──────────────▼────────────────────────┐
│ .codebuddy/ (同步目标目录) │
│ skills/ | rules/ | mcp/ | ... │
│ ← 你在这里编辑资源 → │
└───────────────────────────────────────┘
工作空间目录结构
your-project/
├── .ai-hub-cache/ # Hub 仓库本地缓存(自动加入 .gitignore)
│ ├── skills/
│ ├── rules/
│ └── mcp/
├── .codebuddy/ # 同步目标目录(可配置)
│ ├── skills/ # 已同步的 Skills
│ ├── rules/ # 已同步的 Rules
│ ├── mcp/ # 已同步的 MCP 配置
│ ├── extra-skills/ # 副仓库资源(按仓库名隔离)
│ ├── .ai-hub-sync.xxxxx.json # 同步清单(按仓库隔离)
│ └── .ai-hub-stash/ # 仓库切换时的暂存目录
├── .gitignore # 自动管理的忽略规则
└── ... 你的项目文件
🔨 开发者指南
环境要求
- Node.js ≥ 18 / npm ≥ 9 / Git / VSCode ≥ 1.85.0
安装依赖 & 编译
npm install
# VSCode 插件
npm run compile # 单次编译
npm run watch # watch 模式(开发推荐)
npm run package # 生产构建
# CLI
npm run build:cli # 单次编译
npm run dev:cli # watch 模式
调试插件
- VSCode 打开项目目录
- 按
F5 → Extension Development Host 窗口自动启动
- 修改代码后
npm run watch 自动重编译,重新加载窗口即可
运行 CLI(开发)
npm run cli -- install
npm run cli -- find redis
npm run cli -- browse
# 或编译后直接运行
node dist-cli/cli/index.js find redis
构建产物
| 命令 |
产物 |
说明 |
npm run compile |
dist/extension.js |
插件开发版 |
npm run package |
dist/extension.js |
插件生产版 |
npm run build:cli |
dist-cli/ |
CLI 编译产物 |
发布
# VSCode 插件
npm install -g @vscode/vsce
vsce package # 打包 .vsix
vsce publish # 发布到 Marketplace
# 手动分发:VSCode → Extensions → ··· → Install from VSIX
项目结构
ai-hub-sync/
├── src/
│ ├── extension.ts # VSCode 插件入口
│ ├── constants.ts # 共享常量
│ ├── types.ts # 共享类型定义
│ ├── config.ts # 配置管理
│ ├── git-manager.ts # Git 操作管理器
│ ├── sync-engine.ts # 核心同步引擎
│ ├── auto-sync.ts # 自动同步调度器
│ ├── file-watcher.ts # 文件变更监控
│ ├── secondary-repo-manager.ts # 副仓库管理器
│ ├── cli/ # CLI 专用代码
│ │ ├── index.ts # CLI 入口
│ │ ├── commands.ts # 基础命令
│ │ ├── market-commands.ts # 本地 cache 市场命令
│ │ └── ...
│ ├── commands/ # VSCode 命令处理
│ ├── git/ # Git 操作层
│ ├── sync/ # 同步引擎
│ └── views/ # VSCode TreeView 面板
├── dist/ # 插件编译产物
├── dist-cli/ # CLI 编译产物
├── webpack.config.js # 插件打包配置
└── package.json
📜 License
MIT