dsh-plugin-model-filter

DSH PLUGIN模型与账号接入

仓库 eiffelbs/dsh-plugin-model-filter

模型与账号接入 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

为 DSH 聊天输入框的模型选择菜单加上搜索过滤框,支持纯文本与正则匹配,模型再多也能秒速定位。

一句话选型结论

按资料字段整理

dsh-plugin-model-filter 是模型与账号接入类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-24 创建于 2026-09-13
README 10.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-plugin-model-filter:为 DeepSeek Harness 模型菜单加上搜索过滤

  • 模型菜单搜索过滤框
  • 支持正则表达式匹配
  • 实时正则有效性徽标
  • 匹配模型名与提供商
  • 可安全禁用回退原菜单

上游标签

dsh-plugindsh-plugins

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-plugin-model-filter当前 未做沙盒验证 未标注 0 未标注 无
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方eiffelbs仓库 dsh-plugin-model-filter · 默认分支 main
分类模型与账号接入model
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-13 · 2026-09-24最后推送 2026-09-24
本站收录2026-09-19首次进入本站目录的时间

README 全文

10.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-plugin-model-filter

A DSH plugin that adds a search / filter box to the model selection menu in
the DSH chat composer. With many providers and models in your catalog, the
default menu is a long grouped list; this plugin lets you type to filter it
instantly (Search models…) without touching the rest of the selection UX.

> Compatibility: version 0.3.2 is verified against DSH 0.1.7-rc.2
> and retains the DSH 0.1.5-rc.2 icon and selection-result contracts. See
> DSH 0.1.7-rc.2 compatibility for the diagnosis and
> isolated validation procedure.

Search syntax

The filter box supports two modes: plain text and regular expressions.

Plain text

A case-insensitive substring match, exactly as before (e.g. deepseek v4).
Text that merely contains slashes (e.g. a model id like
deepseek-official/deepseek-v4) still searches as plain text.

Regex

Wrap a pattern in slashes to switch to a regular expression: /pattern/,
optionally followed by flags: /pattern/i. The pattern applies to the model
name, model id, provider name, and provider id; an invalid pattern
(e.g. /[/) shows a short "Invalid pattern" hint instead of silently
matching nothing.

As soon as the input starts with a /, a small regex badge appears at
the right end of the field: gray while the pattern is incomplete, green
once it is a valid regular expression, red when it fails to compile.

Flags i, m, s, u are honored; g/y are ignored to keep the
matcher stateless.

Examples (with a typical catalog):

Filter Matches
/^gpt/i models whose name starts with "gpt", any case (GPT-4o, GPT-4o mini, GPT-4 Turbo)
/pro\|flash/ models containing "pro" or "flash" (deepseek-v4-pro, deepseek-v4-flash)
/(v4\|turbo)/ "v4" or "turbo" anywhere (deepseek-v4-pro, deepseek-v4-flash, GPT-4 Turbo)
/mini$/ models ending with "mini" (GPT-4o mini)
/\d+$/ models ending with a digit (deepseek-r1)
/\d\.\d/ version numbers like "x.y" (Claude 3.5 Sonnet for 3.5)
/^claude/i the whole Anthropic provider group (pattern also tests provider name/id)
/\bro\b/ "ro" as a whole word (matches little — "pro" has no word boundary before "ro")

> Regex basics: ^/$ anchor start/end, | means "or", \d/\w are
> character classes, \. escapes a literal dot, \b is a word boundary,
> (...) groups alternatives. A literal / inside a pattern must be
> escaped as \/.

It is the properly-named, distributable successor to the earlier profile-local
name-shadowing fork (@deepseek-ai/dsh-client-ui-model-selection vendored copy).
Instead of shadowing the shipped package name, this plugin is a real
third-party bundle named dsh-plugin-model-filter that:

  1. coexists with the shipped ui-model-selection row (it is not
    disabled), and
  2. inserts its own client row which occupies the public
    conversation.input.model slot with the search-enabled picker.

Because the stock row is kept active, the shipped package remains the single
source of truth for the modelDirectories service (consumed by
@nanmicoder/dsh-agent-teams), the /model popup command, and the model
locale namespace. Disabling or removing this plugin is therefore safe: the
stock picker takes the seat back and boot never loses the service provider.

How it works

The web profile composes its browser module graph from loader rows. A plugin
package that declares dsh.bundle.patch in its package.json becomes a
profile layer when installed through dsh plugin:

// package.json
{
"name": "dsh-plugin-model-filter",
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": { "platform": "web", "inject": [ /* provider packages */ ] }
}
}

cordis.patch.yml is applied as a patch over the composed web profile, in
dsh.profile.bundles order (after dsh-web-app), and only performs one edit:

- insert:                    # our own client row at the root
- id: ui-model-filter
name: 'dsh-plugin-model-filter'

The node half of dsh-client-modules scans the inserted row, resolves the
package by name, serves exports["./client"] (lib/client.js), and the
browser registers the search-enabled ModelSelect on the slot.

Slot ownership

conversation.input.model is a kind: "single", session-scope slot. The stock
ui-model-selection row and this bundle's row both register the seat, but the
native slot registry renders the entry with the lowest priority (its own
error text: "register at a different priority to shadow it (lowest
renders)"
). The stock row registers at the default priority 0; this bundle
registers at priority: -1, so the searchable picker renders while the stock
row stays live. When this bundle is disabled or removed, the stock picker (no
search) takes over automatically.

Rendered vs. owned responsibilities

Concern Owner
modelDirectories service (directoryFor) stock ui-model-selection
/model popup command stock ui-model-selection
model locale namespace dictionaries stock ui-model-selection
conversation.input.model seat rendering (with search) this bundle
search-only dictionary keys (menu.filterPlaceholder, menu.clear, empty.noMatch) this bundle, in-render fallback (the stock dictionaries do not define them)

Requirements

  • DSH with the web profile (@deepseek-ai/dsh-web-app bundle).
  • Verified on DSH 0.1.7-rc.2; the compatibility adapter also supports the
    0.1.5-rc.2 browser primitive names and model-selection result contract.
  • pnpm available on PATH (used by dsh plugin).
  • React / @deepseek-ai/cordis peer dependency (provided by the web bundle).
  • Node.js and npm only when running the repository compatibility tests.

Install

From a local checkout (no registry needed):

dsh plugin --profile web add link:/path/to/dsh-plugin-model-filter

From a git URL:

dsh plugin --profile web add git+https://github.com/EiffelBS/dsh-plugin-model-filter.git

dsh plugin runs pnpm add in the profile directory, then reconciles
dsh.profile.bundles: because this package declares dsh.bundle.patch, it is
auto-appended as a profile layer. Restart the target web instance after an
install, update, disable, or re-enable, then open a fresh browser session. A
page refresh alone is not a substitute for restarting bundle composition.

Verify installation:

dsh web --profile web --no-open   # then check the model menu includes the search box

Compatibility tests

The tracked gate uses the exact DSH 0.1.7-rc.2 client contracts while also
retaining the older browser API surface:

# Example with npm; pnpm works as well.
npm install --no-package-lock
npm test

The repository does not commit a package-manager lockfile; the exact DSH
0.1.7-rc.2 versions are pinned in devDependencies. The test verifies that
the patch is exactly one inserted row, stock-shaped and plugin slot
registrations coexist at priorities 0 and -1, disposal/remount removes only
the plugin entry, both modern and legacy primitive-shaped module surfaces
render, search preserves provider/model identity, and both legacy void and
rc2 RemoteResult selection outcomes are handled. The target package
declarations are dev-only pins; they are not runtime dependencies of the
published plugin.

Update

Stop the target web instance before updating it. Package-manager reconciliation
may replace parts of node_modules, and a live server can hold native packages
open on Windows.

After pulling a newer revision of this repository (or a published release):

dsh plugin --profile web update dsh-plugin-model-filter

then start the web instance again and use a fresh browser session.

Uninstall / disable

dsh plugin --profile web remove dsh-plugin-model-filter

Reconciliation removes the bundle from dsh.profile.bundles; the stock
ui-model-selection row was never disabled, so the model picker and the
modelDirectories service are restored untouched on the next start.

> Because the stock row is never disabled by this plugin, a profile-level
> disable of the bundle row is also safe: modelDirectories stays provided
> by the stock row, so consumers of that service keep their native provider.
> Only do not disable the stock ui-model-selection row in addition to
> removing this plugin; that combination would leave the service without a
> provider.

Layout

package.json          name dsh-plugin-model-filter, dsh.bundle.patch, dsh.client
cordis.patch.yml      inserts the client row (stock row left active)
lib/index.js          host half (empty apply - pure UI plugin)
lib/client.js         browser half: search filter, ModelSelect on the slot
test/compatibility.test.mjs  DSH rc2 contract and behavior gate
docs/dsh-0.1.7-rc2.md      compatibility diagnosis and validation record

Under the hood

  • The picker occupies the public slot conversation.input.model
    (kind: "single", session scope). This bundle registers it at
    priority: -1 while the stock row stays at 0, and the registry renders the
    lowest-priority entry — so the searchable picker wins the single-slot
    election while the stock package keeps providing the service, command, and
    dictionary keys.
  • Removing this bundle cannot starve modelDirectories: the provider is the
    stock row, not this bundle. A DSH 0.1.5-era audit of the first-generation
    design observed @nanmicoder/dsh-agent-teams waiting for that service when
    the stock provider had been disabled. This is historical motivation for the
    ownership split, not a claim about every DSH 0.1.7 consumer.
  • DSH 0.1.5 completed a successful model selection with void; DSH
    0.1.7-rc.2 returns RemoteResult. The injected face normalizes both
    contracts so a resolved { ok: false } is surfaced as a failure rather than
    mistaken for success.

Limitations

  • Requires the stock ui-model-selection row to stay enabled (its default
    state). This plugin deliberately does not provide the modelDirectories
    service, so it cannot replace the stock row entirely.
  • Search is client-side over the loaded catalog; the catalog itself still comes
    from the Host generation snapshot.

License

MIT

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-plugin-model-filter 怎么安装?

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

dsh-plugin-model-filter 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-plugin-model-filter 安全吗?

未标注。

dsh-plugin-model-filter 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-plugin-model-filter 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-plugin-model-filter 有哪些功能?

模型菜单搜索过滤框、支持正则表达式匹配、实时正则有效性徽标、匹配模型名与提供商、可安全禁用回退原菜单。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

eiffelbs 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。