dsh-skill-mimo:把 MiMo Desktop / MiMoCode 的 skill 同步进 DSH 会话技能目录

前言

DeepSeek Harness(DSH)里,模型能调用的能力往往写在会话技能目录里。若你同时在小米 MiMo(MiMo Desktop 或 MiMoCode)里维护一套 skill,两套目录各写各的,Harness 侧看不到 MiMo 里已有的 SKILL.md,就要重复登记或手工拷贝。

下面介绍社区插件 dsh-skill-mimo(维护者 sbVAN,分类:工作流):只读扫描 MiMo 侧 skill 来源,注册到 DSH 的技能目录;不修改 MiMo 任何文件,写入仅限 DSH 自己的缓存目录。

这是什么

dsh-skill-mimo 是一个 DSH 插件(npm 包名 dsh-skill-mimo,当前资料中版本 0.1.0,MIT 许可证)。它把 MiMo Desktop / MiMoCode 以及引擎、扩展、兼容路径下的 skill 读入 DeepSeek Harness 会话技能目录,使新会话里可以直接使用已在 MiMo 生态里定义的技能。

仓库:https://github.com/sbVAN/dsh-skill-mimo
社区目录页:https://www.skillhub.cn/plugins/sbVAN/dsh-skill-mimo

核心功能

扫描范围

插件按固定规则收集 skill 根目录,再递归读取符合约定的条目:

  1. MiMoCode 全局:~/.config/mimocode/skills/
  2. 项目级:<项目>/.mimocode/skills/、<项目>/.mimocode/skill/(最多向下三层)
  3. 引擎内置:engine-config/skills/(通常由 MiMo 同步;若为空,会从 MiMo 安装包内解出技能到 DSH 缓存,见下文)
  4. 扩展:extensions.json 里各扩展的 placements.skillDirs
  5. 品牌兼容路径:~/.agents、~/.claude、~/.codex、~/.opencode 下的 skills/,仅当 MiMo 的 preferences.json 里 skillPathCompat 为对应项开启时扫描(默认只有 agents)

配置里还可通过 extraSkillDirs 追加目录;各 include* 开关可单独关闭某类来源。

引擎 skill 与 references

引擎内置 skill 一般在 MiMo 的 engine-config/skills。该目录为空时,插件会从 <MiMo 安装目录>/resources/app.asar 解压 /electron/lib/engine/skills 到 <DSH_HOME>/cache/dsh-skill-mimo/。skill 正文中引用的相对路径(例如 references/xxx.md)必须在磁盘上真实存在,模型才能读到。

格式与校验

  • 支持一层目录包 <name>/SKILL.md 与扁平文件 <name>.md
  • 名称须为 kebab-case,描述不能为空;不符合的条目会跳过
  • 正文在注册时读入;变更后由监听或轮询触发重新注册

文件监听

对每个 skill 根目录递归监听:修改 SKILL.md 正文或 frontmatter、增删 skill 目录时,约一秒内重新注册,事件合并间隔 120ms。根目录尚不存在时(例如项目首次创建 .mimocode/skills)无法立即挂监听,靠 3 秒轮询补齐。

Linux 注意:fs.watch 不支持递归,仅根目录的直接增删能被察觉;子目录内变更需重启 DSH 后才会刷新。Windows 与 macOS 无此限制。

配置项 watch: false 可关闭监听。

只读与缓存

插件不写入 MiMo 侧任何字节,仅在 DSH 缓存目录写入:

  • mounted.json:是否已成功 apply
  • last-list.json:本次注册的 skill 列表
  • last-error.json:出错时才有

安装与启用

官方安装命令如下(资料原文):

dsh plugin add github:sbVAN/dsh-skill-mimo

本地开发可将当前目录链进 profile:

dsh plugin add "file:$PWD"

改完配置后重载即可;HMR 开启时改配置立即生效。更换插件包版本需重启 DSH;模块监听默认跳过 node_modules。收录进插件市场后,也可在 SkillHub 等社区目录中搜索安装(与 DeepSeek / 幻方无官方从属关系,属独立生态站点)。

插件要求 DSH 引擎版本 >=0.1.0(见 package.json 中 dsh.engines)。

配置

配置文件路径:~/.dsh/skill-mimo.json。示例(字段以 README 为准):

{
  "includeEngineSkills": true,
  "includeUserSkills": true,
  "includeProjectSkills": true,
  "includeBrandRoots": true,
  "includeExtensions": true,
  "ignoreSkillPathCompatibility": false,
  "extraSkillDirs": [],
  "mimoDataDir": "C:\\Users\\你\\AppData\\Roaming\\Xiaomi MiMo",
  "mimoAppDir": "Z:\\MimoPlatform\\Xiaomi MiMo",
  "watch": true
}

mimoDataDir、mimoAppDir 需按本机 MiMo 数据目录与安装目录填写。ignoreSkillPathCompatibility: true 时会忽略 skillPathCompat 限制(与默认行为相反,按 README 字段名理解即可)。

典型用法

  1. 安装插件并完成 skill-mimo.json 中的 MiMo 路径配置。
  2. 在 MiMo 或 MiMoCode 惯用位置维护 skill(例如项目 .mimocode/skills/ 或全局 ~/.config/mimocode/skills/)。
  3. 开启 DSH 新会话,向模型询问可用 skill,例如:「你有哪些 skill 可用」,核对是否出现预期条目。

不依赖完整 DSH 进程的冒烟测试:

node test/smoke.mjs

该脚本会挂载插件、列出注册到的 skill 并检查字段。

适用场景与注意

适合:已在 MiMo Desktop / MiMoCode 沉淀 skill,希望在 DSH 会话里复用同一套定义、减少双份维护的开发者。

运行权限:插件以当前 DSH 进程的用户权限读取本机 MiMo 配置、项目目录与安装包;安装前应自行查看 GitHub 源码 与 MIT 许可证,确认路径与数据访问范围可接受。

卸载:在 plugin_manager 中移除该 bundle,或删除 cordis.patch.yml 里与 skill-mimo 相关的行后再卸依赖。

结尾

dsh-skill-mimo 把 MiMo 侧只读扫描、监听刷新和引擎 skill 解压缓存串成一条工作流,让 DSH 技能目录与 MiMo 生态对齐。需要细节时以 README 与仓库为准:

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

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

Xiaoye