🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

masquerator-coder/dsh-preset-composer

DeepSeek 客户端兼容 / 相关生态spec-screened扫描:中风险在 GitHub 查看 ↗
⚠ 装前注意

一个 DeepSeek Harness 插件,通过 /preset-composer 斜杠命令编辑每个自定义…

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/10 · 已提供中文文档
综合分
29.3
GitHub 分
29.3
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/masquerator-coder/dsh-preset-composer.git
信任档位:需留意实装验证未通过
是什么
生态插件(可安装,未声明 dsh 能力)
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 16 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

⚠︎ 实装验证未通过(unknown · 2026/9/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-preset-composer(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 21:27:38

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-preset-composer

一个 DeepSeek Harness 插件,通过 /preset-composer 斜杠命令编辑每个自定义 agent 预设——其名称、描述、预设提示词(预设提示词)、技能和插件。

这是一个仅 Host 端插件:该命令通过 DSH 的纯 Node commands 服务在 Host 上运行,因此不需要浏览器(client)bundle,可以作为独立的 npm/git 包安装和分发,并立即生效。

客户端 UI 状态。 最初的设计通过 settings.section.agentPreset.cardAction 子插槽将“⚙ 配置”配置按钮渲染到 Agent 预设卡片中,并由浏览器端支持。该浏览器端(src/client/)被保留,但不属于本次构建的一部分:DSH(尚)未为树外插件暴露客户端 bundle 构建通道,而声明了 dsh.client 却没有构建好的 ./client bundle 会在加载时被拒绝。Host 仍会将每个可编辑预设镜像到 preset-composer 设置命名空间中,因此一旦 DSH 发展出该通道,未来的客户端端便可复用相同的结构。src/client/ 下的源代码被保留为未来 UI 的权威参考,但被排除在当前类型/构建范围之外。

快速安装

从你运行的 profile 中安装(一个普通的 npm/git 包,安装时构建)
dsh plugin --profile web add ./path/to/dsh-preset-composer
或者从 git URL 安装,前提是该包在安装时构建(prepare → tsdown)
dsh plugin --profile web add "https://github.com//dsh-preset-composer.git"
重启 profile(bundle 成员变更仅在重启后生效)

然后,在 Web UI 或会话中,输入:

/preset-composer                                   列出可编辑的预设
/preset-composer                               显示某个预设的配置
/preset-composer  name               重命名
/preset-composer  prompt           设置预设提示词
/preset-composer  skill  on|off          启用/禁用某个技能
/preset-composer  plugin  on|off         启用/禁用某个插件
/preset-composer  plugin add:     添加一个插件行

它编辑什么

每个自定义预设都是 $DSH_HOME/.agent-presets// 下的一个目录,包含两个文件以及一个可选的 skills/ 文件夹。此插件会编辑全部三项:

| 命令界面 | 它映射到的文件 |
|---|---|
| (列出/显示)/ name / prompt | preset.yml(保留 order)+ agent.cordis.yml persona 行的 config.prefix |
| skill  on\|off | skills//SKILL.md frontmatter 中的 disable-model-invocation |
| plugin  on\|off\|add: | agent.cordis.yml 中的非结构性行;切换 disabled / 添加行 |

结构性行(dsh-persona、dsh-skill-filesystem、dsh-tool-skill)由插件管理,不作为用户插件列出。每次保存时,它都会确保 dsh-skill-filesystem(其 customSkillDirs 指向 /skills)以及
dsh-tool-skill 存在,将提示镜像到 dsh-persona.config.prefix,
移除已删除的插件,添加新插件,并逐字节保留其他所有行(包括
group/isolate 结构),除了 disabled 键之外。

设计

- 文件是唯一事实来源。 该插件直接编辑预设文件。它还会在启动时将每个可编辑预设镜像到 preset-composer 设置命名空间中,并在每次命令编辑后刷新镜像,以便未来的客户端部分可以通过内置的 ctx.remote.settings 接口读取相同的结构(无需新的 Remote API)。
- 只有 trust === 'user' 的预设可编辑。 随附的预设永远不会被触碰。
- !!js 表达式在往返过程中得以保留。 组合 YAML 使用自包含的 tag:yaml.org,2002:js 类型(仅 js-yaml)进行解析和写回,与 Loader 自身的 entryListSchema 方言相匹配。disabled 为 !!js 表达式的行被视为已启用,并且仅当你显式切换它时才会被重写(通过 delete row.disabled / row.disabled = true)。
- 启动安全性。 一切都在 ctx.inject(['commands','agentPresets','settings'], …) 内运行;没有这些服务的部署永远不会激活该插件。文件 I/O 受到限制并记录日志(logger.warn),并且没有任何命令处理程序会抛出异常。

布局

package.json            # bundle declaration; no dsh.client (Host-only)
cordis.patch.yml        # inserts the single preset-composer row
tsconfig.json           # Host type surface; src/client excluded (reserved)
tsdown.config.ts        # builds lib/index.mjs (Host)
src/types.ts            # shared wire types
src/presets.ts          # pure file-logic (parses/reconciles composition + skills)
src/command.ts          # pure /preset-composer command parsing + rendering
src/index.ts            # HOST: namespace mirror + command + file management
src/client/             # RESERVED future browser half (not built, kept as reference)
tests/presets.spec.ts   # pure file-logic tests
tests/command.spec.ts   # pure command parsing/rendering tests

单个 cordis 行(cordis.patch.yml)挂载 Host 部分
(lib/index.mjs)。这里刻意没有浏览器部分:DSH 尚未
为树外插件暴露客户端 bundle 构建通道,因此该包
在该通道存在之前仅提供 Host 部分。

构建

pnpm install        # js-yaml + vitest + tsdown + typescript + @types/node
pnpm bundle         # tsdown → lib/index.mjs (+ lib/index.d.mts)
pnpm test           # tests/presets.spec.ts + tests/command.spec.ts (pure logic)

主机 bundle 已验证:lib/index.mjs 仅导入 Node 内置模块和
@deepseek-ai/schemastery(唯一的运行时框架导入;它从
dsh 安装中解析),并将 js-yaml 内联打包。所有其他
@deepseek-ai/* 导入均为 import type,会被省略。

(未来)客户端部分

当 DSH 支持树外客户端 bundle 时,恢复浏览器部分:
在 package.json 中重新声明 dsh.client,使用 DSH 自有的
clientBundle 工具链重新构建 src/client/(生成 lib/client.js),并添加 ./client 导出。
src/client/ 下的保留源文件以及镜像的 preset-composer
设置命名空间是起点。

可编辑 / 不可编辑

- 可编辑:trust === 'user' 的预设(通过 duplicate / new 创建)。
- 在运行中的宿主启动之后创建的预设尚未进入命名空间
镜像——show 会重新读取文件,但镜像本身会在
下一次 seed 时刷新;重启以将新创建的预设纳入镜像。

限制

- 在客户端部分变得可构建之前,仅支持斜杠命令交互(无图形表单)。
- 由 !!js 门控的平台行(例如 tool-bash/tool-pwsh)在你切换它之前会显示为已启用,
因为该表达式被视为“已启用”。
- 插件管理顶层行的启用/禁用/添加;嵌套的 group 子项
会被保留,但不会单独列出。
- 每次写入按命名空间修订原子执行;路径编辑会失败关闭
而不是部分应用。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群