技能管家 · Skill Curator
Xiaomi MiMo(小米 MiMo)/ DeepSeek(深度求索)/ Qwen(通义千问)/ Gemini / OpenAI 多模型驱动的 AI 技能(skills)管理器。
一个 VS Code 扩展:自动扫描你本机所有 coding agent(Claude Code、Codex、GitHub Copilot、Gemini、OpenCode)下的 skills(技能),调用你配置的大模型做质量诊断(分级 + 跨技能重叠检测),并以只增不删的软链接方式把技能同步到所有 agent。可在多家模型之间一键切换:MiMo、DeepSeek、Qwen(通义千问)、Gemini、OpenAI。
- 🔍 一处总览所有 agent 的全部技能
- 🩺 大模型诊断:用 MiMo / DeepSeek / Qwen / Gemini / OpenAI 评估技能描述与触发词、检测重复重叠
- 🔁 跨 agent 同步技能(只增不删,先 dry-run 预览再确认)
- 🤝 一键把技能交给右侧的 Copilot / Claude Code 去优化
关键词 / keywords:技能管理、skill manager、MiMo、Xiaomi MiMo、小米 MiMo、小米大模型、DeepSeek、深度求索、Qwen、通义千问、Gemini、OpenAI、ChatGPT、Claude Code、Codex、GitHub Copilot、OpenCode、Kimi、大模型、LLM、AI agent、SKILL.md。
诊断用的是你自己配置的大模型 API(OpenAI 兼容端点),API key 只存在本机,不随扩展发布。
Skill Curator (English)
Inventory, LLM-diagnose, and add-only sync the skills installed for your coding
agents — all from one VS Code sidebar. Built to manage a large, multi-agent
skill library and then hand individual skills off to Copilot / Claude Code for
editing.
Features
- Inventory — scans skills across Claude, Codex, Copilot, Gemini, and
OpenCode (user dirs plus Claude/Codex plugin layers), grouped in a sidebar
tree.
- LLM diagnosis — runs your configured OpenAI-compatible model over each
skill and tags it
attention / improve / good with a short note, plus a
whole-library overlap pass that flags duplicate or trigger-conflicting
skills.
- Static health checks — broken symlinks, missing/unparseable
SKILL.md,
name↔directory mismatch, cross-surface drift, stale plugin cache. These work
without any LLM configured.
- Add-only sync — mirrors user-level skills into every enabled agent via
symlinks. It shows a dry-run preview and asks for confirmation, never
overwrites or deletes, and only ever creates missing links.
- Hand-off — open a skill's
SKILL.md, or copy a diagnosis-laden prompt and
send it to your Copilot / Claude Code chat to do the actual editing.
Requirements
- VS Code 1.90+
- For diagnosis: one API key for a built-in or custom OpenAI-compatible /
Anthropic-compatible chat endpoint. Inventory and static health checks work
without it.
Configuration
| Setting |
Description |
skillCurator.llm.baseUrl |
OpenAI-compatible or Anthropic-compatible base URL, e.g. https://…/v1 or https://api.deepseek.com/anthropic |
skillCurator.llm.model |
Model name used for diagnosis |
skillCurator.llm.apiKeyEnv |
Optional env var name to read the API key from if SecretStorage is empty |
skillCurator.llm.providers[].models |
Optional selectable model names for a provider; the chosen value is written back to model |
skillCurator.llm.providers[].apiKeyEnvs |
Optional fallback env var names after apiKeyEnv |
skillCurator.surfaces |
Which agents to scan/sync (default: all five) |
skillCurator.diagnose.concurrency |
Max concurrent diagnosis calls (default 4) |
The API key is not a setting. Store it with the "Skill Curator: Set LLM
API Key" command (kept in VS Code SecretStorage), or point
skillCurator.llm.apiKeyEnv at an environment variable.
If skillCurator.llm.providers is empty, the settings panel shows a built-in
catalog:
| Provider |
Default endpoint |
Default model |
Env fallback |
| Qwen Token Plan |
https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic |
qwen3.6-flash |
TOKEN_PLAN_API_KEY, BAILIAN_TOKEN_PLAN_API_KEY, QWEN_TOKEN_PLAN_API_KEY, QWEN_API_KEY |
| DeepSeek |
https://api.deepseek.com/anthropic |
deepseek-v4-flash |
DEEPSEEK_API_KEY |
| MiMo Token Plan |
https://token-plan-cn.xiaomimimo.com/anthropic |
mimo-v2.5 |
MIMO_API_KEY |
| Gemini |
https://generativelanguage.googleapis.com/v1beta/openai |
gemini-3.5-flash |
GEMINI_API_KEY, GOOGLE_API_KEY |
| OpenAI |
https://api.openai.com/v1 |
gpt-5.5 |
OPENAI_API_KEY |
The extension auto-routes /anthropic endpoints to /v1/messages; OpenAI and
Gemini use /chat/completions.
Example custom provider with selectable models:
{
"skillCurator.llm.providers": [
{
"id": "deepseek-pro",
"label": "DeepSeek Pro",
"baseUrl": "https://api.deepseek.com/anthropic",
"model": "deepseek-v4-pro",
"models": ["deepseek-v4-pro", "deepseek-v4-flash"],
"apiKeyEnv": "DEEPSEEK_API_KEY"
}
],
"skillCurator.llm.activeProvider": "deepseek-pro"
}
Commands
- Skill Curator: Refresh — re-scan skills
- Skill Curator: Diagnose All Skills — run LLM diagnosis + overlap
- Skill Curator: Diagnose This Skill — diagnose one (picks from a list)
- Skill Curator: Sync Skills to All Agents — dry-run preview, then add-only sync
- Skill Curator: Set LLM API Key — store the key in SecretStorage
- Skill Curator: Select Diagnosis Provider — switch the endpoint/key used for diagnosis
- Skill Curator: Select Diagnosis Model — switch the model under the active provider, including custom names
Privacy
Diagnosis sends each skill's name, description, trigger phrases, and a truncated
body excerpt to the LLM endpoint you configure. Nothing is sent anywhere
else. Sync only touches your local filesystem.
Development
npm install
npm run build # esbuild bundle → dist/extension.js
npm test # vitest (core / llm / sync)
npm run typecheck # tsc --noEmit
Press F5 to launch the Extension Development Host.
License
MIT