Skip to content

Shkin1/skill_desktop

Repository files navigation

Skill Desktop

统一管理 AI 编程助手技能的桌面应用程序。

项目简介

随着 AI 编程助手(Claude Code、Cursor、Windsurf 等)的普及,开发者安装的技能(Skill/Plugin/Extension)数量激增。Skill Desktop 提供一个统一的管理平台,让你能够像管理应用商店一样,在一个界面上管理所有 AI 编程工具的扩展能力。

核心价值

  • 统一管理:聚合多平台技能,提供一站式管理界面
  • 效率提升:减少工具间切换,降低技能维护成本
  • 安全可靠:内置版本控制,防止误操作导致系统不稳定
  • 可扩展性:模块化架构支持未来扩展更多 AI 工具

功能特性

MVP (v0.1.0)

  • 自动发现 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 install

开发模式

npm run dev

生产构建

npm run build

类型检查

npm run typecheck

使用说明

首次启动

  1. 应用启动时会自动扫描 ~/.claude/skills/ 目录
  2. 发现的技能会显示在主界面列表中
  3. 点击技能卡片上的开关可以启用/禁用技能

技能发现路径

应用会扫描以下目录:

工具 路径
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 通信

主进程与渲染进程通过 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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

MIT License

致谢

About

Skill Desktop 是一个开源桌面应用程序,旨在为开发者提供统一的、可视化的 AI 技能(Skill)管理解决方案。它能够集中管理您在多个 AI 编程助手(如 Claude Code、Cursor、Windsurf 等)中安装的各种技能、插件和扩展,解决多工具环境下的技能碎片化管理难题。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors