dsh-charlotte: DeepSeek Harness Skill Launcher and Unified Skill Library

前言

在 DeepSeek Harness(DSH)里用技能,常见做法是手动记技能名、在输入框敲 /技能名,或到各 Agent 工具各自的技能目录里翻找。Claude Code、Codex、ZCode、Cursor、Gemini 的技能往往分散在 ~/.claude/skills、~/.cursor/skills 等路径,和 DSH 自带的 ~/.dsh/skills 并不在同一套界面里管理。对话进行中,也不容易判断「这一轮该不该用某个技能」。

下面介绍社区插件 dsh-charlotte(维护者 AlpFallen,分类:工作流)。它给 DSH 增加一个侧栏入口,把技能浏览、启用、安装、回收站与「授权后一次点击加载」收进同一套数据驱动界面,并在对话侧做宿主侧实时推荐;同时以只读方式挂载多家 Agent 的技能目录,不改动原文件。

这是什么

dsh-charlotte 是装在 DSH 里的技能启动器与技能库。侧栏只增加「dsh-charlotte」一个入口:首页有紧凑列表、真实功能分类、常用与收藏、右侧详情抽屉;对话输入区上方可在合适时机展示推荐卡。外部 Claude / Codex / ZCode / Cursor / Gemini 技能目录以只读 provider 挂载为 DSH 技能来源;对本地可写目录仍保留启用、安装、删除与回收站能力。

插件当前版本 0.7.3,许可证 MIT。社区目录页:skillhub.cn/plugins/AlpFallen/dsh-charlotte。DSH 生态理念是「一切皆插件」;SkillHub 等为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

单一入口与管理页

作用域、拖拽安装、回收站、刷新和语言切换收在 更多 菜单。列表行内展示名称与版本、描述、可用状态、来源、收藏/置顶,以及 使用、详情;详情在右侧抽屉,含推荐理由、适用/排除场景、触发条件、权限、依赖、版本、来源路径与真实使用记录。

常用、收藏与功能分类

首页顶部顺序为:置顶 → 收藏 → 按真实调用频率补足(最多 4 条);无数据时不渲染该块。分类由技能自身的名称、描述与触发条件计算,包括开发工作、代码质量、项目理解、文档与知识、任务协作、设计与创作、办公文档、邮件沟通、学习教练等;零计数类不显示,不设「其他」类。

搜索、筛选与排序

搜索覆盖名称、描述、用途、关键词、触发条件与分类。可按分类、来源(项目级 / 用户专属 / 插件提供 / 系统内置)、状态筛选。排序支持调用频率、名称、最近使用;不提供「下载时间」排序(索引中没有该字段)。

只读挂载外部技能库

只读 provider 注册例如:

  • ~/.claude/skills、~/.codex/skills、~/.zcode/skills、~/.cursor/skills、~/.gemini/skills(含 ~/.gemini/antigravity/skills)
  • 各工作区下的 .claude|.codex|.zcode|.cursor|.gemini/skills
  • 可通过配置 extraDirs 增加自定义目录

文件留在原处;frontmatter 字段会映射到 DSH 语义,目录变更可热更新。对挂载技能的启停写在 dsh-charlotte 的覆盖表,不写回外部 SKILL.md。

本地技能:安装、启停与回收站

可写根包括全局 ~/.dsh/skills、共享 ~/.agents/skills、以及项目下的 <project>/.dsh/skills / .agents/skills。支持拖拽文件夹或 .zip 安装(先校验 SKILL.md 含 kebab-case name 与 description 并预览)。删除进入 ~/.dsh/charlotte/trash,可恢复或清空。

对话内实时推荐

宿主在 agent/pre-step 根据本轮用户原文与技能元数据做评估;客户端在本轮回答结束(running 由真变假)后,在输入框上方展示推荐卡,不打断生成,也不把「推荐」等同于「加载」。

推荐流程包括:快速排除未启用 / 用户不可调用 / 依赖缺失 → 语义匹配 → 排序 → 权限与依赖检查。寒暄、过短提示默认不推荐;卡片提供 使用 与 忽略,点 使用 与管理页相同的授权加载链路。

「加载」在 DSH 中的含义

DSH 没有「不产生模型回合就注入技能指令」的独立 API。支持的准备方式是官方 /技能名 composer token:点击 使用 后,宿主先校验可见性、启用状态与依赖,再把 /技能名 写入当前或新建对话的输入框并关闭启动器;不会自动发送消息、不会启动 Agent 回合。只有你发送消息后,宿主才把 token 转为技能指令;发送前删掉 token 则技能不生效。加载中再次点击可取消;失败展示宿主返回的真实原因。

插件自带技能与中文界面

由 DSH 插件或 bundled provider 注册的技能以只读「插件」卡片出现在同一网格,技能站只负责展示与加载,不能启停或删除。界面可中英切换;列表有一句通俗中文简介,详情展示官方描述与中文专业版概述(优先技能自带的 simple-zh / professional-zh,其次 locale/skills.zh.json 中与原文哈希匹配的条目)。

安装与启用

桌面应用

设置 → 插件 → 添加插件 → 安装第三方插件,填写:

https://github.com/AlpFallen/dsh-charlotte

该入口同样接受 npm 包名和本地目录。安装完成后重启应用,侧边栏「设置」按钮上方会出现 dsh-charlotte 入口。

说明:桌面 profile 由 Electron 应用托管,CLI 的 dsh plugin --profile desktop add 会被拒绝(profile "desktop" is managed exclusively by the Electron application)。从 GitHub 安装时仓库已包含编译好的 client/client.js,无需本地构建。

命令行(web profile)

dsh plugin --profile web add github:AlpFallen/dsh-charlotte

README 记载:作者在桌面 App 内置 DSH 0.2.1-rc.3(Node 24.21.0)上验证;另用 CLI 安装的 DSH 0.1.5-rc.2 做过宿主接口比对。更新的 0.2.x 未在文档中全部验证。

可选配置

配置写在 profile 补丁层 plugins.dsh-charlotte 下;未知键启动即报错。示例(均可选):

plugins:
  dsh-charlotte:
    sources:
      claude: true
      codex: { project: false }
      zcode: true
      cursor: true
      gemini: true
    extraDirs:
      - { path: ~/my-skills, label: mine, rank: 300 }
    watch: true
    slugifyNames: true
    synthesizeDescription: true
    recommend:
      enabled: true
      maxItems: 3
      threshold: 0.18
      minIntentChars: 10
      minValueScore: 0.2
      cooldownMs: 45000
      maxPerSession: 8
      dedupeJaccard: 0.6
      sameTaskJaccard: 0.55
      comboRatio: 0.75

典型用法

  1. 安装并重启 DSH 后,从侧栏打开 dsh-charlotte,在首页或「全部技能」中搜索、按分类或来源筛选,打开详情抽屉审阅触发条件与权限依赖。
  2. 需要在本轮对话使用某技能时,点击 使用;确认输入框出现 /技能名 后,补充任务描述并发送。不要期望插件替你在未发送的情况下执行技能。
  3. 对话进行中,若宿主判定有合适技能,回答结束后输入框上方会出现推荐卡;可 使用 或 忽略(忽略后同一任务内不再重复推同一技能,直到需求实质变化)。
  4. 要把 Claude / Cursor 等目录里的技能纳入列表且不改原文件,保持 sources 中对应项为 true;仅需部分目录时按 README 细项开关或 extraDirs 调整。
  5. 安装新技能:通过 更多 菜单进入安装面板,拖拽技能文件夹或 .zip,预览确认后写入可写根目录。

适用场景与注意

适合谁:长期在 DSH 里用技能、同时还在 Claude Code / Codex / ZCode / Cursor / Gemini 生态积累技能目录的开发者;希望在一个界面里浏览、启停、安装,并在对话中收到基于上下文的推荐,而不是每次手动回忆技能名。

安全与权限:插件以当前 DSH 进程权限运行;挂载与上传的技能均为第三方内容,启用前请自行审阅源码与 SKILL.md。技能「使用」授权不等于删除文件、发消息等高风险操作——这些仍由 DSH 工具权限与审批独立校验。变更类 HTTP 接口拒绝跨源请求。运行状态位于 ~/.dsh/charlotte/(如 state.json、overrides.json、trash/),不进插件仓库。

停用语义:对模型停用但用户仍可调用的技能会标记为「仅用户」,仍可使用;用户不可调用的技能不能使用。

结尾

dsh-charlotte 把 DSH 里的技能管理、多 Agent 技能目录只读汇总、对话侧推荐与 /name 加载链路接到一起,侧栏一个入口即可完成「发现 → 授权 → 加载 → 发送后执行」的准备步骤。安装前建议在 GitHub 阅读 README 与安全模型说明。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye