{"id":"28134a0c-0615-445d-9c00-bfa38e201fe8","slug":"dsh-skill-ui","kind":"skill","name":"dsh-skill-ui","summary":"","owner":"xusuyang030218","repoUrl":"https://github.com/xusuyang030218/dsh-skill-ui","license":"BSD-3-Clause","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-09-01T09:34:12.000Z","addedAt":"2026-10-21T12:59:02.134Z","logoUrl":"https://avatars.githubusercontent.com/u/169751863?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["design-media"],"tags":["deepseek","deepseek-harness","dsh","dsh-plugin","skillhub"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T05:37:12.747Z","sample":false,"url":"https://conduits.dev/tools/dsh-skill-ui","language":"TypeScript","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# dsh-skill-ui\n\nDSH（DeepSeek Harness）技能中心插件：浏览/管理本地技能 + 对接 **skillhub.cn** 技能市场 + 向导式创建 + AI 辅助生成。\n\n基于 [zhu1090093659/dsh-web](https://github.com/zhu1090093659/dsh-web) 的 `packages/dsh-skill-explorer`（BSD-3-Clause）二次开发。\n\n## 功能\n\n- **技能 tab**：按来源分组浏览已加载 skill（系统内置 / 项目 / 用户 / 自定义 / 运行时），卡片式展示，支持启用/禁用（改写 frontmatter `disable-model-invocation`）、删除（移入 `.trash` 可恢复）。\n- **市场 tab**：对接 skillhub.cn 技能市场——\n  - 搜索 + **分类页签**浏览（13 个分类，横向可滚动）；\n  - **排序**：推荐 / 星数 / 下载量 / 最新（服务端忽略 sort 参数，客户端本地排序）；\n  - 卡片展示：图标、星数、下载量、作者、分类、来源、付费标记、已安装状态；\n  - 一键安装到 `~/.agents/skills`，含安全审计（zip-slip 防护、扩展名白名单、危险模式扫描、SKILL.md frontmatter 自动修复），冲突时可跳过 / 覆盖 / 另存。\n- **创建 tab**：3 步向导（基本信息 → 7 套内置模板 → 预览校验），实时 kebab-case 校验与重名检测；**AI 辅助生成** SKILL.md 草稿。\n\n## 安装（本地构建）\n\n```sh\npnpm install\npnpm run build\n# 产物在 lib/\n```\n\n部署到 DSH Desktop profile：\n\n```powershell\n# 1. 替换插件 lib（先备份原 lib）\n$target = \"$env:USERPROFILE\\.dsh\\profiles\\desktop\\node_modules\\@xusuyang030218\\dsh-skill-ui\"\nCopy-Item lib\\index.js \"$target\\lib\\index.js\" -Force\nCopy-Item lib\\client.js \"$target\\lib\\client.js\" -Force\nCopy-Item lib\\client.js.map \"$target\\lib\\client.js.map\" -Force\n\n# 2. 重启 DSH Desktop（运行中的进程持有旧模块，必须重启加载）\n```\n\n> 注意：修改 `node_modules` 下插件 `package.json` 时，写入必须使用**无 BOM 的 UTF-8**（Windows PowerShell 5.1 的 `Set-Content -Encoding UTF8` 会写 BOM，导致 DSH `JSON.parse` 失败）。\n\n## AI 辅助生成配置\n\n草稿路由会从 `~/.dsh/settings.yaml` 的 `llm-pi-ai.providers` 自动选择可用的 OpenAI 兼容 provider（`api: openai-completions` 且 `apiKeyEnv` 环境变量已设置），也可用环境变量覆盖：\n\n```\nDSH_AI_DRAFT_BASE_URL=https://.../v1\nDSH_AI_DRAFT_API_KEY=sk-...\nDSH_AI_DRAFT_MODEL=some-model\n```\n\n未配置时面板会禁用 AI 按钮并提示（接口返回 `503 AI_UNAVAILABLE`）。\n\n## 路由\n\n| 路由 | 方法 | 说明 |\n| --- | --- | --- |\n| `/api/dsh-skill-explorer/list` | GET | 分组技能列表 |\n| `/api/dsh-skill-explorer/set-enabled` | POST | 启用/禁用 |\n| `/api/dsh-skill-explorer/create` | POST | 创建（user/agents/project 根） |\n| `/api/dsh-skill-explorer/delete` | POST | 删除（移入 .trash） |\n| `/api/dsh-skill-explorer/health` | GET | 健康检查 |\n| `/api/dsh-skill-explorer/hub/search` | GET | skillhub 搜索（q/category/limit） |\n| `/api/dsh-skill-explorer/hub/categories` | GET | 分类列表 |\n| `/api/dsh-skill-explorer/hub/detail` | GET | 技能详情 |\n| `/api/dsh-skill-explorer/hub/install` | POST | 安装（下载+审计+落盘） |\n| `/api/dsh-skill-explorer/ai-draft` | POST | AI 生成草稿 |\n\n所有路由默认 loopback 围栏（已配对 remote-web-ui 设备 cookie 为额外放行）。\n\n## 安全\n\n- 市场代理仅允许 `https://api.skillhub.cn` 单一主机（SSRF 防护）。\n- zip 安装前审计：zip-slip 拒绝、扩展名白名单、危险模式（eval/child_process/os.system/混淆 base64 等）扫描、SKILL.md 越狱指令扫描。\n- 安装目标固定 `~/.agents/skills/{slug}`，slug 白名单校验，冲突默认拒绝。\n- AI 草稿仅作为文本回填，不自动落盘。\n\n## 测试\n\n```sh\npnpm test   # 90 项（含 zip 解压/审计/frontmatter 修复）\npnpm run typecheck\n```\n\n## License\n\nBSD-3-Clause（上游 dsh-skill-explorer 同款）。\n"}