DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-prism

Prism

DSH 界面三档模式(原生/整洁/白话):整洁档走产品原版行语言,白话档走大白话,工具调用归组折叠 / Three-tier UI mode (native/tidy/plain) for DeepSeek Harness: the product's own row language or plain speech, with grouped tool calls

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:KhalilYamber/dsh-prism#6e6361ee781555dc79f8de21182affdc60ecbc0e
READMECompatibilityVersions

Compatibility and provenance

Prism is published as dsh-prism and currently resolves to version 1.4.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/18/2026

Versions

1.4.0stable
9/18/2026
1.3.4stable
9/18/2026
1.3.2stable
9/17/2026

Related plugins

Loading related plugins…

Latest
1.4.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/18/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
Prism — DSH Plugin for DeepSeek Harness

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-prism

简体中文 | English

DSH 界面三档模式插件:原生 / 整洁 / 白话一键切换。整洁档保留产品原版的工具行语言,白话档把术语换成大白话,两者都把工具调用收成折叠组。新手看白话,老手要完整,同一套界面三种读法,降低 DeepSeek Harness 的上手门槛。

项目仍在持续迭代:跟进 DSH 接口演进、扩充工具覆盖、打磨白话档体验,欢迎试用与反馈。

为什么做这个

DeepSeek Harness 发布后,社区对它的批评集中在一点:门槛。

  • 界面新闻:「一切皆插件」的设计十分依赖配置(YAML + 插件 + 效果组件 + 服务),「对高级用户而言功能强大,但对于只想快速用上可用智能代理的人来说,上手门槛较高」
  • 极客公园:DSH「对非编程用户不是很友好」,像框架、不像成品,是给开发者的尝鲜版
  • 社区开发者:「这玩意鬼才用,我为什么没事要插拔」

DSH 的毛坯房是刻意为之,但「想省事的人」和「要全功能的人」不该被迫接受同一套界面。dsh-prism 用三档模式回应这个矛盾:

档位适用的人界面表现
白话想先用起来、不想研究术语的人工具调用归组折叠:正式回复前的一串调用收成一行统计,点开展开后每行走白话文案(「正在读取一个文件的内容」),全篇 emoji 图标
整洁想整洁、但不想改变原有信息读法的人同样归组折叠,展开后每一行按产品原版样式呈现:单色线性图标 + 类别标题(Bash / 读取 / 编辑 / 工具调用)+「·」+ 参数摘要,例如 Bash · Run syntax check、工具调用 · get_goal · {};用宿主内置的官方 ui-primitives 组件渲染
原生老手、需要完整信息的人插件零接管,产品原貌原样渲染,一个像素都不改

默认原生档,切换一次即生效,刷新页面回原生档。不想用的时候,卸掉插件,界面回到出厂状态,没有任何残留。

功能

  • 侧栏入口:侧栏底部「设置」上方一枚圆形按钮(官方 sidebar.footer.action 槽,与 WSL / 记忆等入口同排),显示当前档位首字(原 / 整 / 白),点开菜单切换「原生 / 整洁 / 白话」;菜单内含「隐藏复杂工具」开关(仅白话档生效)
  • 整洁档 = 归组折叠 × 原版行:
    • 与白话档共用归组与折叠统计行,差别只在展开后的每一行:用宿主内置的官方 @deepseek-ai/dsh-client-ui-primitives 原语(DisclosureRow / StateDot / 官方图标)渲染,标题与摘要按产品 toolRowModel 的同一套规则推导,视觉与产品原生工具行一致
    • 行结构:状态标识(运行中 / 出错 / 中断,取 StateDot)+ 单色线性图标 + 类别标题 +「·」+ 参数摘要;通用工具按产品的写法带上工具名(如 工具调用 · get_goal · {})
    • 不折叠复杂工具(信息完整度贴近原生);脱敏与详情渲染沿用同一套底线
  • 白话档 = 工具调用折叠组 × 大白话交付文档:
    • 总结档:一次 user turn 内、模型正式回复之前的整串工具调用收成一个折叠组,收起时只显示一行统计「N 个工具 · M 次思考」(M 为组内模型思考次数,按 assistant 输出的 reasoning 块计数;无思考时只显示工具数),行尾带组状态(✓ 完成 / ● 运行中 / ✕ 有出错)
    • 展开面板:点开统计行展开文档化面板——标题区(「本次调用 N 个工具 · M 次思考」)+ 清单区(每个工具一行)+ 说明区;白话档的行是类别图标 + 白话动作/参数摘要 + 状态图标,整洁档的行是官方图标 + 类别标题 + 参数摘要;点单行展开该工具的「交付文档」详情(脱敏结果 Markdown 渲染)
    • 隐藏复杂工具:21 个高级工具(目标 / 计划、子代理编排、后台任务、插件系统)在面板内默认折叠成白话摘要行,点「展开」即展开并打开详情;菜单开关可随时关闭折叠
    • 归组规则:一个 user turn 内的全部工具调用为一组(一行统计,不按回复切段);运行中随新调用累计,刷新重放后按同一规则归组,每个工具恰好显示一次
  • 双语界面:插件全部文案跟随 DSH 界面语言(简体中文 / English),设置里切换语言即时生效,无需刷新;工具白话文案、参数摘要、菜单与状态均有中英双语\n- 数据脱敏(两个折叠档共用同一底线):
    • token / secret / password / api_key / authorization 等敏感参数名永不取值,整洁档的摘要同样过滤;参数里只有敏感键时摘要留空,不回退原始 JSON
    • 结果文本与摘要中的常见密钥形态(sk-xxx、Bearer xxx、?token=xxx、key=xxx)替换为占位符
    • 白话档额外把路径缩成文件名(file_path 等参数用 basename 呈现);整洁档按产品原版规则显示路径,以贴近原版
    • 详情面板只展示脱敏结果,不暴露原始参数
  • 原生档 = 产品原貌:原生档下插件不注册任何工具行渲染器,交还产品原样渲染(含通用卡片);整洁档与白话档才注册折叠组节点(以更低的 priority shadow 产品 tool-call 树),切档时动态注册 / 注销、即时生效
  • 文案规则:33 个工具规则表给出白话文案(如 pwsh → 「正在电脑上执行一条命令」),未进表的工具按参数名自动生成摘要。白话档下折叠组内每一行都按这套规则渲染;整洁档改用产品原版的类别标题与摘要规则(Bash · …、工具调用 · 工具名 · …),只在脱敏底线上保留插件自己的过滤

设计原则

  • 纯展示层:只改界面呈现,模型输入输出零改动,不影响 agent 的任何工作
  • 原生零接管:原生档不注册任何卡片,产品原貌完整回归;白话档把工具调用收成折叠组,组内工具行统一按白话规则渲染,官方工具卡片本身不被改动,原生档下保持原版
  • 内存态切换:刷新回原生档,简单、干净、无配置污染
  • 跟随主题:全部使用官方 --dsw-alias-* 设计变量,明暗主题自适应

安装

需要先装好 DeepSeek Harness(Node.js 22.19+ 或 24+)。

当前通过 GitHub 发布,克隆本仓库后以本地路径安装:

npx -y @deepseek-ai/dsh plugin --profile web add <本仓库目录>

也可以直接从 Releases 下载打包产物。启动 Web UI 后,侧栏底部「设置」上方会出现档位入口。

使用

  1. 启动后点击侧栏底部「设置」上方的档位入口(显示当前模式)
  2. 选择「白话」:一次任务里的工具调用归成折叠组,收起是一行统计,点开展开面板看每个工具的白话行与交付文档详情
  3. 菜单里可开关「隐藏复杂工具」(仅白话档生效)
  4. 选择「原生」:恢复完整原生界面
  5. 刷新页面回到原生档

常见问题

为什么刷新后回到原生档? 档位存在内存里,这是刻意设计:白话档是临时辅助,不想用的时候刷新即消失,不留任何状态。

为什么有些工具卡片看起来没变? read、write、web_search 等工具官方已有产品级原生卡片,插件不为它们注册替代卡片(原生档完全原版);白话档把它们与其他工具一起收进折叠组,以统一的白话行展示,不改变官方卡片本身。

白话档会影响 agent 干活吗? 不会。插件只改界面显示,模型收到的输入输出与原生完全一致。

点开详情后表格 / 代码块是什么效果? 结果文本先脱敏,再按 Markdown 子集渲染:| a | b | 表格、``` 代码块、# 标题、- 列表、**粗体**、行内代码与 commit 哈希高亮;任何解析失败都退化为纯文本。

Roadmap

  • 跟进 DSH 官方接口演进,保持新版本兼容
  • 扩充工具规则表,让更多工具自动获得白话文案与文档化呈现
  • 打磨白话档体验:时间线行、交付文档渲染、脱敏粒度
  • 按社区反馈补充适配说明与常见问题

有想法或遇到不适配的工具,欢迎开 issue 讨论。

更新日志

v1.4.0(2026-09-18)

  • 入口迁移:档位切换按钮从浮动层搬进左栏底部——官方 sidebar.footer.action 槽,与 WSL / 记忆等入口同排、位于「设置」上方;按钮显示当前档位首字(原 / 整 / 白;英文 N / T / P),宽栏 28px、窄栏 36px,与同排其它插件一致
  • 随之删掉整套浮动定位逻辑(含手机端专门的角落定位):入口住在侧栏里,宽屏窄屏都自然就位,不再与输入框上方的控件争地方
  • 回归脚本的入口选择器同步更新(26 个)

v1.3.4(2026-09-18)

  • 手机(窄屏)适配:宽度不足 560px 时,悬浮入口贴屏幕左下角,不再与输入框上方那一行的控件争位;入口触控高度 31→39px,菜单与面板不溢出视口。宽屏行为不变

v1.3.3(2026-09-17)

  • 修复:工具收起不彻底。一个 user turn 里的调用原先按「正式回复」切段,而模型边写边调时,回复之间夹着的调用会各自单独成行——看起来就是「收了一半、漏了一半」。现在一个 turn 的全部工具调用收成一行统计,不再切段
  • 顺带校准:思考计数从「正式回复之前的 reasoning」改为「本 turn 的全部 reasoning」,与工具数口径一致
  • 回归:组逻辑 26/26(新增「回复后调用仍并入同一组」用例)、等价性全过、红队单元 29/29、红队浏览器 20/20

v1.3.2(2026-09-17)

收尾复审(只动确会影响后续的地方):

  • 修复:折叠组的展开态此前只按 turn 编号记账,两个会话里同号 turn 会互相串档(在会话 A 展开的组,切到会话 B 也显示展开)。改为按「会话 + turn」记账——跨会话隔离,同会话内记忆照旧
  • 清理:dsh.client.inject 里长期挂着一个宿主并不存在的包名(@deepseek-ai/dsh-client-runtime),已清空;对官方 ui-primitives 的依赖补进 peerDependencies
  • 文档:装配说明与脱敏章节跟上了三档现状(白话档把路径缩成文件名,整洁档照原版显示路径;两档共用同一套敏感键过滤)

v1.3.1(2026-09-17)

  • 档位定名:原生 / 整洁 / 白话(原名「原生 / 中级 / 简化」)。三个词各指一处可感知的差别——原生讲保真度、整洁讲排布、白话讲语言;「中级」是程度词,与另外两项不在同一根轴上。英文同步为 Native / Tidy / Plain
  • 修复:选「整洁」档后左下角悬浮按钮仍显示「原生」(档位名分派漏了第三档;全项目仅此一处,已逐点审计确认)
  • 安全(红队发现并修复):整洁档照产品规则取参数摘要时,补上脱敏底线——敏感键名(token / secret / password / api_key / authorization 等)永不取值;参数里只有敏感键时不再回退原始 JSON 文本(否则键名与结构会出现在摘要里);URL 查询串里的 ?token= / &api_key= / &sig= 等凭据形态纳入脱敏
  • 移除摘要上的 title 属性(产品没有),避免超长参数在悬停时弹出整段 JSON
  • 三档语义不变,功能与数据零改动

v1.3.0(2026-09-17)

  • 新增「中级」档:三档结构为原生 / 中级 / 简化。中级档与简化档共用归组折叠,差别在展开后的行——改用宿主内置的官方 ui-primitives 原语(DisclosureRow、StateDot、官方图标组件)渲染,标题与摘要照产品 toolRowModel 的规则推导,行语言与产品原生工具行一致(Bash · Run syntax check、工具调用 · get_goal · {})
  • 官方包通过宿主模块表的平台单例取得(seed.ts 里已登记 @deepseek-ai/dsh-client-ui-primitives),插件 require 即得,零打包、零安装、零依赖;取不到时自动降级为普通布局,功能不丢
  • 中间面板行的度量值照抄产品的 ToolRow.module.css(标题字重、2px 圆点分隔、摘要字号与省略),主题令牌沿用 --dsw-alias-*,明暗主题自适应

v1.2.1(2026-09-17)

  • 适配 DSH 0.1.5:Chat 视图快照改从运行时注入的 useChat 取用(新版把它从 SessionSnapshot.chat 挪到了 SessionStandardProps.useChat),旧版路径保留为回退,同一份代码在两代产品上都能正常归组
  • 新增诊断开关:控制台执行 window.__PRISM_DEBUG__ = true 后刷新,会输出首个组节点的分组上下文(turn / 节点数 / 工具数 / 边界判定),产品升级后定位问题不必再猜
  • 配套回归脚本同步:新增「新版 ChatSnapshot 直取」用例,25 项全通过

v1.2.0(2026-08-18)

  • 界面双语适配:全部文案跟随 DSH 界面语言(zh/en),切换即时生效;33 工具规则、参数摘要、菜单、组状态均有英文

v1.1.1(2026-08-18)

  • 修复:简化档归组在真实浏览器完全失效(ToolGroupNode 裸用 framework hook useSession,每次渲染抛错导致槽位条目退出、回退产品原版渲染,两档看起来一样);改为从组件 props 取运行时注入的 hook
  • 组状态升级为三态 + 混合计数:全对显示 ✓、全错显示 ✕、对错混合显示警示符号 + 「✓ n · ✕ m」计数(对在前);组内还有调用在跑时只显示 ● 运行中,跑完才给对错总结
  • 状态计数按根工具调用计算,与组内行数口径一致

v1.1.0(2026-08-18)

  • 简化档工具调用归组折叠:一次 user turn 内、正式回复之前的整串工具调用收成一个折叠组
    • 总结档:收起时一行统计「N 个工具 · M 次思考」(M 按 assistant 输出的 reasoning 块计数,无思考时只显工具数),行尾带组状态
    • 中间档:点开统计行展开文档化面板(标题区 + 每工具一行 + 说明区),每行复用白话卡片样式,点行看脱敏交付文档详情
    • 归组在运行中随新调用累计、刷新重放按同一规则归组;每工具恰好显示一次
    • 行推导提取为共享函数 toolRowMeta,时间线卡片与折叠组面板共用,文案与状态完全一致
  • 折叠组统计行的开合状态按组独立存内存 store(每个 turn 一组),刷新回默认收起
  • 修复:简化档的 tool-call 节点渲染器与产品 ToolCallTree 同 key 注册冲突(keyed 槽同 key 同 priority 会抛错),改为以 priority: -1 shadow 产品渲染;白话卡片不再注册到 tool.call.toolview(该槽在简化档无消费方),折叠组面板内直接渲染

v1.0.0(2026-08-18)

  • 架构:规则表 + 参数名规则驱动(33 工具白话文案、接管名单自动推导),新增工具只需加一行
  • 原生档零注册:产品原貌完整回归,切换即时生效
  • 简化档:时间线行(类别图标 + 白话动作 + 状态图标)+ 交付文档详情(Markdown 子集渲染:表格 / 代码块 / 标题 / commit 高亮)
  • 新增「隐藏复杂工具」开关(默认开启):21 个高级工具折叠成一行
  • 数据脱敏加严:敏感参数名永不展示、密钥形态替换、详情先脱敏后渲染

早期版本

  • 初版:简化 / 原生两档切换,33 工具白话文案,接管 19 个无原生卡片的工具

贡献

  • 发现工具适配问题:开 issue,附上工具名与界面截图即可
  • 想补充白话文案或新工具规则:按「新增一个工具」一节改 TOOL_RULES,提 PR
  • 代码风格:与 lib/client.js 保持一致(零依赖、React.createElement、中文注释)

架构(全部实现位于 lib/client.js)

TOOL_RULES        规则表:33 个工具 → 白话文案与参数摘要声明
ARG_NAME_RULES    参数名规则:无显式声明的工具按参数名自动生成摘要
SENSITIVE_KEY     敏感参数名(任何情况下不展示其值)

注册是动态的:conversation.chat.node 的 tool-call 渲染器仅在简化档注册(以 priority: -1 shadow 产品 ToolCallTree;keyed 槽同 key 同 priority 的注册会抛错,更低 priority 者胜出),原生档零注册,产品界面原样呈现。折叠组面板内的工具行直接渲染白话卡片,不经 tool.call.toolview 槽分发(该槽的消费方是产品 ToolCallTree,简化档下已被 shadow)。

规则表字段

字段含义
tools工具名(数组);多个工具共用一条规则
doing / done进行中 / 完成的白话文案;缺省时自动生成通用文案
complex标记复杂工具:简化档默认折叠成一行,点击可展开
noArgs不显示参数摘要(保持原有行为)
arg.pick候选参数键,按序取第一个非空字符串
arg.mode呈现方式:file=路径只留文件名 / raw=原文 / short=截断(配 max)/ count=数组计数(配 unit)/ wrap=(值)包裹 / fixed=固定文案
arg.prefix摘要前缀
arg.fallback参数缺省时的文案;不填则不显示摘要

新增一个工具

  1. 在 TOOL_RULES 加一行,只写工具名即可:doing/done 自动生成通用白话文案,参数摘要由 ARG_NAME_RULES 按参数名自动生成(如 file_path → 「文件:xxx」、url → 「链接:xxx」),简化档折叠组面板自动按规则渲染该工具行。
  2. 想更精准时再补 doing / done / arg;想让它默认折叠则加 complex: true。
  3. 简化档折叠组面板会把组内所有工具(含产品有原生卡片的 read / write 等)按规则渲染成白话行;原生档下它们仍是产品原版卡片,无需特殊处理。

装配

  • cordis.patch.yml:bundle patch 注入(insert prism)。
  • package.json:dsh.client.external: ["@deepseek-ai/dsh-client-ui-primitives"](宿主模块表的平台单例,运行时 require 即得,无需安装或打包),浏览器半体经 exports["./client"] 加载。
  • 经 web profile 的 node_modules/dsh-prism junction 直接指向工作树装配;修改 lib/client.js 后刷新页面即生效(无需同步副本)。

License

MIT