统一管理 AI 编程助手技能的桌面应用程序。
随着 AI 编程助手(Claude Code、Cursor、Windsurf 等)的普及,开发者安装的技能(Skill/Plugin/Extension)数量激增。Skill Desktop 提供一个统一的管理平台,让你能够像管理应用商店一样,在一个界面上管理所有 AI 编程工具的扩展能力。
- 统一管理:聚合多平台技能,提供一站式管理界面
- 效率提升:减少工具间切换,降低技能维护成本
- 安全可靠:内置版本控制,防止误操作导致系统不稳定
- 可扩展性:模块化架构支持未来扩展更多 AI 工具
- 自动发现 Claude Code 技能目录
- 技能列表展示(名称、描述、版本、状态)
- 技能启用/禁用切换
- 搜索和按工具筛选
- 打开技能所在目录
- 数据持久化存储
- Cursor 技能支持
- 版本快照与回滚
- 批量操作
- 技能配置编辑器
- 使用统计分析
- 导出/导入技能配置
- 文件系统实时监听
| 类别 | 技术 |
|---|---|
| 框架 | Electron + React |
| 构建 | electron-vite |
| 语言 | TypeScript |
| 样式 | Tailwind CSS |
| 状态管理 | Zustand |
| 数据库 | better-sqlite3 |
| 文件监听 | chokidar |
skill-desktop/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── index.ts # 应用入口
│ │ ├── services/
│ │ │ └── Database.ts # SQLite 数据库操作
│ │ ├── adapters/
│ │ │ └── claude-code.ts # Claude Code 技能适配器
│ │ └── ipc/
│ │ │ ├── channels.ts # IPC 通道定义
│ │ │ └── handlers.ts # IPC 处理器
│ ├── preload/ # 预加载脚本
│ │ ├── index.ts # IPC 桥接
│ │ └── index.d.ts # 类型声明
│ └── renderer/ # React 渲染进程
│ │ ├── src/
│ │ │ ├── App.tsx # 根组件
│ │ │ ├── components/ # UI 组件
│ │ │ ├── stores/ # Zustand 状态管理
│ │ │ └── types/ # 类型定义
│ │ └── index.html
├── electron.vite.config.ts # 构建配置
├── electron-builder.yml # 打包配置
└── package.json
- Node.js 18+
- npm 或 pnpm
npm installnpm run devnpm run buildnpm run typecheck- 应用启动时会自动扫描
~/.claude/skills/目录 - 发现的技能会显示在主界面列表中
- 点击技能卡片上的开关可以启用/禁用技能
应用会扫描以下目录:
| 工具 | 路径 |
|---|---|
| Claude Code Skills | ~/.claude/skills/ |
| Claude Code Commands | ~/.claude/commands/ |
技能目录中的 skill.md 文件会被解析:
---
name: My Skill
description: 技能描述
version: 1.0.0
---
# 技能内容...每个 AI 工具通过适配器(Adapter)接入系统:
interface IToolAdapter {
name: string
version: string
scanSkills(): Promise<Skill[]>
enableSkill(skill: Skill): Promise<void>
disableSkill(skill: Skill): Promise<void>
}主进程与渲染进程通过 IPC 通道通信:
| 通道 | 功能 |
|---|---|
skill:list |
获取技能列表 |
skill:get |
获取单个技能详情 |
skill:toggle |
切换技能启用状态 |
skill:scan |
手动触发扫描 |
skill:open-folder |
打开技能目录 |
interface Skill {
id: string
name: string
description: string
tool: 'claude' | 'cursor' | string
enabled: boolean
version: string
path: string
config: Record<string, unknown>
lastModified: string
createdAt: string
}| 阶段 | 目标 | 时间 |
|---|---|---|
| Phase 1 | MVP - Claude Code 技能管理 | 4 周 |
| Phase 2 | Cursor 支持 + 版本快照 | 4 周 |
| Phase 3 | 配置编辑器 + 使用统计 | 4 周 |
| Phase 4 | 更多工具适配 + 云同步 | 持续 |
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
MIT License
- electron-vite - Electron 构建工具
- better-sqlite3 - SQLite 绑定
- Tailwind CSS - CSS 框架
- Zustand - 状态管理
- lucide-react - 图标库