DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Phone Ui — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-phone-ui

Phone Ui

DeepSeek Harness 移动端 UI 适配插件(纯 Client):动态 Cordis 代码片段 + 正式 client 插件两种形态。窄屏下侧边栏全宽抽屉 + 复刻 DeepSeek 网页版式顶栏。各区域拆分为独立 feature,可在 DSH 设置页单独开关,改动即时生效。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-phone-ui@1.1.0
README兼容性版本

兼容性与来源证明

Phone Ui 以 dsh-phone-ui 发布,当前版本为 1.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/23

版本

1.1.0stable
2026/8/16
1.0.0stable
2026/8/15

相关插件

正在加载相关插件…

最新版
1.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
43.9 kB
文件数
11
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
30
最近提交
2026/8/30
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航Deepseek Idesigndeepseek-idesign作为原生 DeepSeek Harness 对话视图的 iPolloWork Design Studio 及其精选设计模板。Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。Dafeiyudsh-dafeiyu由 DeepSeek Harness 会话事件驱动的原生桌面端 BigFish companion。

README

DSH Phone UI

DeepSeek Harness 移动端 UI 适配插件(纯 Client 为主,host 半仅注册设置)。

窄屏(< 768px)下把 DSH 界面适配成手机友好布局,复刻 DeepSeek 网页版的做法。 所有区域改动都是独立 feature,可在 DSH 设置页(设置 → 插件 → 插件配置 → dsh-phone-ui)单独开关,改动即时生效、无需刷新页面。

功能

区域(feature)默认说明
侧边栏全宽抽屉(sidebar)开窄屏下侧边栏改为全宽抽屉:默认隐藏(0 宽),聊天区全宽;点左上角汉堡滑入(280px 覆盖层),点遮罩 / 收起按钮关闭
顶栏复刻 DeepSeek 网页版(topbar)开窄屏下左汉堡、左对齐标题(不设宽度上限)、标题下模式徽章、Session log 仅图标

桌面端(≥768px)不受任何 feature 影响。

架构

lib/index.js          host(node)半:注册设置命名空间 phone-ui(schema 由 feature 注册表生成)
lib/client.js         浏览器半主入口:读设置 → 按开关挂载/卸载各 feature(构建生成)
lib/features/index.js feature 注册表:新增区域在这里登记一行
lib/features/sidebar.js  侧边栏抽屉:样式 + 汉堡/遮罩 UI
lib/features/topbar.js   顶栏样式(纯 CSS)
client.js             动态插件形态(形态 A)源码(构建生成)
lib/snippet.js        形态 A 的字符串导出(构建生成)
scripts/build.mjs     构建:内联 features → 生成 client.js / lib/client.js / lib/snippet.js
cordis.patch.yml      bundle 补丁层:把插件插入浏览器名册
  • 一个 npm 包 = 一个插件:主入口(lib/client.js)读取 phone-ui 设置,只挂载开启的 feature;每个 feature 挂载独立 try/catch,一个区域出错不影响其他区域。
  • 设置开关:host 半用 settings.register('phone-ui', ...) 注册(持久化到 settings.yaml);浏览器半用 settingsScope 订阅,开关一拨即实时生效/失效。设置系统缺席时自动降级为全部开启。

如何新增一个页面区域

  1. 复制 lib/features/sidebar.js 为 lib/features/<key>.js,改成你的样式 / UI:
    • key:唯一标识(同时成为设置项的字段名);
    • title / description:设置页卡片里显示的文案;
    • defaultEnabled:默认开关;
    • css:该区域的样式;
    • mount(ctx, api):挂载逻辑,必须返回卸载函数;只允许使用 api(api.React、api.insertStyle(tagId, css)、api.registerOverlay(id, component)、api.toggleSidebar()),不要直接依赖浏览器全局或环境符号。
  2. 在 lib/features/index.js 顶部 import 并加入 features 数组(一行)——key / 标题 / 默认开关会自动进入设置 schema 和设置页卡片。
  3. pnpm build 重新生成两个形态,发布即可。

两种使用形态

形态 A:动态 Cordis 插件(代码片段)

把 client.js 内容作为 cordis_define 的 code.client 函数体,运行时加载,临时、进程内(DSH 重启即失效)。适合快速试用。

import { codeClient } from 'dsh-phone-ui/snippet';
// cordis_define({ ..., code: { client: codeClient } })
  • 定义插件:idPrefix 建议用 mnav(3–6 位小写英文字母)。
  • 运行:首次 mode: "run";同插件升级 mode: "update"。
  • 动态形态没有持久设置页:默认全部开启;想临时关掉某个区域,改 client.js 顶部的 ENABLED 对象(构建后生效)。

形态 B:正式 client 插件(持久、可安装)

作为 npm 包经 dsh plugin 装进 profile,随 profile 长期存续、跨重启可用。

dsh plugin --profile <name> add dsh-phone-ui   # 首次安装
dsh plugin --profile <name> update dsh-phone-ui # 升级到新版本

本包通过 package.json 的 dsh.client 声明浏览器半(exports["./client"] → lib/client.js),通过 dsh.bundle.patch(cordis.patch.yml)把自己插入浏览器插件名册;host 半(lib/index.js)注册设置命名空间。设置开关仅在形态 B 下可用。

注意:正式插件路径会随 DSH 的 client 服务/槽位 API 演进。首次启用前建议先用 cordis_inspect_list 核对当前 DSH 版本的 slots / layout / settingsScope 服务与 shell.overlay、settings.plugin.item 槽位;若类名哈希(见「关键选择器」)随 DSH 升级变化,CSS 选择器需同步更新。

文件

文件作用
lib/features/*.jsfeature 定义(单一事实来源,样式/UI 改这里)
lib/index.js正式插件 host 半:注册 phone-ui 设置命名空间
lib/client.js正式插件浏览器半(构建生成:features 内联 + 设置开关 + 设置卡片)
client.js动态插件源码(构建生成,code.client 函数体)
lib/snippet.js形态 A 的字符串导出(构建生成)
cordis.patch.ymlbundle 补丁层:把 client 插件插入名册
package.json项目元信息 + dsh.client / dsh.bundle 声明

实现原理

  • 背景:DSH 三列 grid(sidebar / center / details)由 dsh-client-ui-layout 渲染,用内联 grid-template-columns。关闭的侧边栏在源码 computeColumns 里被硬编码成 56px(sidebar === 0 ? 56 : clamp(...)),断点 SIDEBAR_AUTO_COLLAPSE = 1024,因此窄屏下侧边栏不会归零。
  • 本插件:< 768px 用 !important 把三列强制为 0px 1fr 0px,把侧边栏抽离 grid 流改为 position: absolute 离屏抽屉;同时显式给 center/details 指定 grid-column: 2 / 3,避免侧边栏脱离流后自动重排(初版 bug)。
  • 开合状态:完全复用 DSH 自身的 layout.toggleSidebar()(窄屏下翻转 narrowExpanded),CSS 以 frame 上的 data-sidebar-collapsed 属性作为开合开关。因此汉堡 / 遮罩 / 侧边栏内部收起按钮三个入口行为一致,无额外状态、无同步问题。
  • UI 注册:shell.overlay(list 槽,自有 id)注册汉堡按钮 + 遮罩层,不替换任何既有条目。
  • 设置开关:host 半 settings.register('phone-ui', z.object({...})) 注册命名空间(settings.yaml 持久化);浏览器半 settingsScope.bind({ namespace: 'phone-ui' }) 订阅,按 value.<key> !== false 判断是否挂载对应 feature,拨开关即实时挂载/卸载。
  • 颜色:全部使用主题变量(--dsw-alias-*、--ds-*),自动适配明暗主题。

关键选择器(当前 DSH 版本)

选择器作用
.pI_x6G_frame三列 grid 框架
.pI_x6G_sidebarCol / _centerCol / _detailsCol侧 / 中 / 详情三列
[data-sidebar-collapsed]侧边栏折叠标记(frame 属性)
.wSkVaW_header / _titleCluster / _crumbs / _crumb会话顶栏
.wSkVaW_headerUtilities顶栏右侧工具区
.SVAs4q_label模式徽章(Agent preset)
.nL4_yW_sessionLogButtonSession log 按钮

这些类名是当前版本的构建产物哈希,升级 DSH 后可能变化。更稳的备选选择器:用 div:has(> [data-shell-overlay]) 定位 frame;用 [data-shell-overlay] 定位浮层。

断点

区间行为
< 768px抽屉 + 手机顶栏(本插件生效)
768 – 1024px保留原 56px 图标栏
> 1024px原 280px 侧边栏

断点常量:@media (max-width: 767px) 中的 767px,改它即可调整阈值。

开发

pnpm build   # 改完 lib/features/ 或主入口骨架后重新生成 client.js / lib/client.js / lib/snippet.js

主入口骨架(client.js 与 lib/client.js 中 BEGIN/END FEATURES 标记之外的部分)可直接手改;标记区间由构建脚本从 lib/features/ 重新内联,不要手改。

版本历史

  • 1.1.0:拆分为 feature 模块(lib/features/)+ 设置开关(host 半注册 phone-ui 命名空间,设置页独立开关每个区域,实时生效)。
  • 1.0.0:正式 client 插件(形态 B)+ 代码片段导出(形态 A)。
  • 动态插件阶段:pkg-1 初版抽屉(bug:侧边栏脱离 grid 流后 center 顶到第 1 列变 0 宽);pkg-2 显式 grid-column: 2 / 3 修复;pkg-3 顶栏适配初版(居中 + 标题 220px 上限 + 顶栏 94px,被否);pkg-4 左对齐、标题不设上限、顶栏回落 82px。

License

MIT