dsh-ui

DSH PLUGIN浏览器与联网

仓库 seekbuddy/dsh-ui

浏览器与联网 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

dsh-ui 是 seekbuddy 维护的 浏览器与联网 类 DSH 可安装插件, 仓库为 seekbuddy/dsh-ui,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-ui 是浏览器与联网类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 未标注 · 未关闭 issue 未标注
最近更新 2026-10-09 创建于 未标注
README 10.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @seekbuddy/dsh-ui@0.2.0-beta.0
  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 查看包信息

能做什么

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

皮肤主题联网搜索

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

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

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-ui当前 L4 · 沙盒安装通过 低风险 0 未标注 有
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方seekbuddy仓库 dsh-ui · 默认分支 未标注
分类浏览器与联网browser
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 未标注 / 未标注收录时的数值,非实时
创建 / 更新未标注 · 2026-10-09最后推送 未标注
本站收录2026-10-30首次进入本站目录的时间

README 全文

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

@seekbuddy/dsh-ui

English | 中文

基于 DeepSeek Harness(DSH)Web UI 设计系统的 React 组件库,用来搭建围绕 DSH 的产品页面:包含 DSH 的基础组件(--dsw-* 设计 token、明暗主题、基础控件、图标、Markdown 与工具输出渲染器),以及 DSH 没有提供、基于同一套 token 构建的组件,如卡片、标签页、分页、全局提示、上传、日期时间选择。打包成普通 React 18 / 19 与 Next.js 应用可以直接使用的形式。

在线预览:所有组件都可以在 Storybook 里查看。

> 非官方项目。 本项目与 DeepSeek 无关联,未获其认可或赞助,不包含 DeepSeek 的品牌素材(标志与字标)。详见 THIRD_PARTY_NOTICES.md。

为什么有这个包

DSH 的 UI 基础组件(@deepseek-ai/dsh-client-ui-primitives)覆盖的是 DSH Web 壳自己的需要:对话、工具输出、菜单、对话框。围绕 DSH 做产品,还会有控制台、设置页、管理后台,这些页面需要 DSH 没有的组件:卡片、标签页、分页、日期时间输入、上传、全局提示。每个应用各写一套,外观会和 DSH 越走越远;直接加进基础组件的副本里,每次同步上游都要处理合并冲突。

本包提供这些组件,同时让它们和 DSH 保持分离:

  • 扩展组件(@seekbuddy/dsh-ui/seekbuddy)补上缺口。样式只用 DSH 的 token,遵守 DSH 的样式规则,和 DSH 控件放在一起看不出差别;需要 DSH 控件时通过公开入口复用,不重新实现。详见 docs/components。
  • DSH 层是上游基础组件的副本,只做打包相关的修复,每一项都登记在 UPSTREAM.md,因此可以跟随上游 tag 同步。

为了让 DSH 层能在普通应用里使用,本包还解决了官方包在打包上的三个问题:

官方包 @seekbuddy/dsh-ui
单一根入口全量导出,Shiki 与 KaTeX 进首屏 拆分入口;构建期断言根入口不触达 Markdown、Shiki、KaTeX 与代码文件图标素材
主题 token 与主题切换在 Cordis 插件里 提供 tokens.css 与独立的 light / dark / system 主题运行时,附防闪烁的首屏脚本
KaTeX 输出依赖浏览器 DOMParser 转换 服务端渲染安全的 KaTeX;用 React 18 SSR 与 Next.js 16 构建测试覆盖

安装

npm install @seekbuddy/dsh-ui

peer 依赖:react、react-dom ^18.2.0 || ^19.0.0。

快速开始

在应用入口导入一次全局 token 样式;只有渲染数学公式时才导入 katex.css。

import '@seekbuddy/dsh-ui/tokens.css'
import '@seekbuddy/dsh-ui/katex.css'

import { Button, Pill } from '@seekbuddy/dsh-ui'
import { MarkdownText } from '@seekbuddy/dsh-ui/markdown'
import { IconCheckOutlineRegular } from '@seekbuddy/dsh-ui/icons'
import { setThemePreference } from '@seekbuddy/dsh-ui/theme'

const labels = {
code: { copyLabel: 'Copy', copiedLabel: 'Copied' },
footnotes: 'Footnotes',
}

export function Example() {
return (
setThemePreference('dark')}>
Dark theme
Enabled
)
}

组件样式是编译进 JS 的 CSS Modules,组件模块首次加载时注入 `,只注入一次。全局样式只有tokens.css与katex.css`。

组件内不含任何界面文案:所有可见文字与读屏文字都通过 props(通常是带类型的 labels 对象)传入,由应用自己做本地化。

公开入口

只从下列入口导入;dist/ 下的其他文件都是内部实现。

入口 内容
@seekbuddy/dsh-ui 轻量控件与工具:Button、Input、Pill、Tag、Switch、Checkbox、Menu、MenuSurface、Modal、Tooltip、Toast、HoverCard、SegmentedControl、SegmentedTabs、定位与模态 Hooks,以及 relativeTime、fileSizeText、rankByName 等工具函数
@seekbuddy/dsh-ui/blocks 工具输出渲染器 TerminalBlock、ReadBlock、DiffBlock、SearchBlock、WebBlock、JsonTree;文件 / 链接图标 FileTypeIcon、LinkIconRegular / LinkIconMedium;代码高亮 languageForPath、useCodeHighlighter(会加载 Shiki)
@seekbuddy/dsh-ui/markdown MarkdownText、CodeBlock、JsonBlock、MarkdownDelegateProvider、extractMarkdownPlainText
@seekbuddy/dsh-ui/icons 188 个 Icon*(94 个图形 × Regular / Medium 两档描边)、PermissionIcon*、ReferenceIcon*、PluginArtwork*、GuideArtwork*
@seekbuddy/dsh-ui/theme 主题状态、DOM 应用函数与 React Hooks
@seekbuddy/dsh-ui/theme/bootstrap THEME_BOOTSTRAP_SCRIPT,不依赖 React 的首屏内联脚本
@seekbuddy/dsh-ui/seekbuddy 扩展组件(文档);整个入口是 Client Component
@seekbuddy/dsh-ui/seekbuddy/{card,empty,spinner,timeline} 不含 Hook 的扩展组件,Next.js Server Component 可以引用
@seekbuddy/dsh-ui/seekbuddy/tabs Tabs;与从 /seekbuddy 引用等价
@seekbuddy/dsh-ui/tokens.css 八份 DSH 主题样式,按级联顺序拼接
@seekbuddy/dsh-ui/katex.css 只保留 woff2 字体的 KaTeX 样式

两层结构

层 源码位置 内容
DSH 层 src/ 中除 src/seekbuddy/ 以外的部分 DSH Web UI 基础组件与主题样式的副本,随上游 tag 同步。本地改动逐条列在 UPSTREAM.md,其余与上游代码一致
扩展组件 src/seekbuddy/ DSH 没有提供、为本包编写的组件,样式只用 --dsw-* token

扩展组件:Card、Empty、Mark、MessageProvider + useMessage、Pagination(附纯函数 pageItems)、QrCode、Spinner、StatusBadge、Switch、Tabs、Timeline、Upload、DangerButton、SubtleButton,以及日期时间族 Calendar、DatePicker、DateRangePicker、TimePicker、DateField、DateRangeField、TimeField。每个组件的用法、示例和完整 API 见 docs/components。

扩展组件引用 DSH 组件时只走公开入口 @seekbuddy/dsh-ui,不用相对路径。因此打包器可以把这个入口别名到另一份 DSH 基础组件(例如 DSH Web 壳已经加载的那份),页面里每个控件只保留一份实现。从 /seekbuddy 只引一个组件不会带上其他组件:每个组件连同它的 CSS 各自构建成独立的 chunk。

主题

主题偏好是 light | dark | system,存在 localStorage 的 dsh-ui-primitives.theme-preference 键下(为兼容保留了本包旧名)。

import { initializeTheme, setThemePreference, useIsDark, useThemePreference } from '@seekbuddy/dsh-ui/theme'

initializeTheme()

initializeTheme() 恢复合法的已存值,非法或缺失时回退到 system;localStorage 不可用时仍会应用主题。主题通过 document.documentElement.style.colorScheme 和 body 上的 data-ds-dark-theme 属性生效。

服务端渲染的应用要在页面内容之前执行首屏脚本,避免已保存深色主题的页面先亮后暗。Next.js 写法:

import { THEME_BOOTSTRAP_SCRIPT } from '@seekbuddy/dsh-ui/theme/bootstrap'
import '@seekbuddy/dsh-ui/tokens.css'

export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
)
}

THEME_BOOTSTRAP_SCRIPT 是本包的常量,不得替换成来自用户输入或配置的字符串。

设计 Token

自己的组件用语义 token 写样式,不写颜色字面量:

前缀 用途
--dsw-alias-* 语义颜色:背景、文字、边框、交互与状态色;任何颜色首选
--dsw-font-* 完整的字体角色,写成 font: var(--dsw-font-…)
--dsw-radius-* 圆角:xs 4、sm 8、md 12、lg 16、xl 20、panel 28
--dsw-elevation-* 浮起表面(菜单、面板、对话框);阴影里已包含发丝描边
--dsw-static-* alias 背后的原始色板;组件里不要直接用

要加品牌主题,保留 light / dark / system,在 body 上另设一个属性,并在 tokens.css 之后加载覆盖样式,成对重映射亮色与暗色的 --dsw-alias-*。属性要放在 body 上而不是页面容器上:Modal、Toast、ImageLightbox 通过 Portal 渲染到 body。

从 dsh-ui-primitives 迁移

本包此前以 dsh-ui-primitives 为名开发。

  1. 把导入前缀 dsh-ui-primitives 换成 @seekbuddy/dsh-ui,各入口路径不变。
  2. 删除了 BrandWordmark、FishLogo、FISH_LOGO_PATH、FISH_LOGO_VIEWBOX:它们绘制的是 DeepSeek 的品牌标志,本包不再分发。

开发

需要 Node.js 20.11+。

npm install
npm run verify   # typecheck → unit tests → build → package contents → React 18 SSR → Next.js 16 build

test:package 打出真实的 npm tarball,校验全部导出、token 级联顺序与 KaTeX 字体 URL;test:react18 与 test:next16 把这个 tarball 装进测试应用。根入口触达 Markdown、Shiki 或 KaTeX,或扩展组件没走公开入口而打进了一份 DSH 组件时,构建直接失败。

storybook/ 是组件文档站,也是组件演示(Storybook 10),依赖独立安装,不进发布包:

npm run build               # the site reads dist/tokens.css
cd storybook
bun install
bun run dev                 # http://localhost:9109
bun run check               # typecheck + every public runtime export has a story

许可证

MIT。DSH 层是 DeepSeek 以 MIT 授权的代码;上游归属与依赖许可证见 THIRD_PARTY_NOTICES.md。

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add @seekbuddy/dsh-ui@0.2.0-beta.0` 即可。

dsh-ui 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-ui 安全吗?

低风险。

dsh-ui 装之前要先确认什么?

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

dsh-ui 用的是什么许可证?

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

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

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